questions from a java programmer

B

Ben Turner

Hi,

I currently work as a freelance Java programmer doing contracts in
Europe and am very interested in Ruby.

I have a couple of questions:

a) What is the current corporate distribution of the language? Is the
language being adopted at all for commercial projects?
b) What is the status of available IDE's/debuggers for platforms such
as MacOS or Linux? Is there anything comparable to i.e. Eclipse?
c) My expertise lies in the telecommunications world - is Ruby at all
suited for large concurrent network applications in the way other
languages like Erlang are?


I know these questions might be more commercially oriented, but a guy
has to earn a living and if I can do so with a language that seems
like good fun...

Thanks,

Ben
 
J

James Gray

Hi,
Hello.

I currently work as a freelance Java programmer doing contracts in
Europe and am very interested in Ruby.

Great. Glad to have you.
I have a couple of questions:

a) What is the current corporate distribution of the language? Is the
language being adopted at all for commercial projects?

I don't have any statistics to give, but I'm pretty confident in
saying that Ruby's penetration into the world of big business is much
smaller than Java's. That's not because Ruby is a less capable
language per say, but more because it currently lacks a lot of the
traits the corporations favor (certifications, support contracts,
etc.). This is completely my opinion though, not facts.
b) What is the status of available IDE's/debuggers for platforms such
as MacOS or Linux? Is there anything comparable to i.e. Eclipse?

Most Rubyists I know tend to favor powerful text editors more than
IDEs. I believe that's because Java gets a lot more out of an IDE
than Ruby typically does, but that's more guesswork on my part.

As text editors go, there are many great choices: emacs, vi, and
TextMate (Mac OS X only) are all popular.

The IDEs have started to roll out the Ruby support now though, so you
can find one. I believe NetBeans is pretty far along, but I'm passing
on what I've heard there, not actual experience.
c) My expertise lies in the telecommunications world - is Ruby at all
suited for large concurrent network applications in the way other
languages like Erlang are?

Erlang was built from the ground up with concurrent programming as a
major focus. Ruby was not. Obviously, that gives Erlang some
advantages.

Do I think you could use Ruby for at least medium size networking
applications? Sure. But it won't be Erlang simple, no.

Check out the EventMachine library. It works well for the networking
trials I've thrown at it so far and is gaining some Erlang-like
features.

Welcome to Ruby.

James Edward Gray II
 
R

Rick DeNatale

On Jan 3, 2008, at 10:45 AM, Ben Turner wrote:

The IDEs have started to roll out the Ruby support now though, so you
can find one. I believe NetBeans is pretty far along, but I'm passing
on what I've heard there, not actual experience.

For those familiar with Eclipse, there's an Eclipse based Ruby IDE
called Aptana Studio which supports ruby/rails. It started out as an
Eclipse plugin called Radrails, which I beleive is still available.

On the other hand the recent releases of NetBeans have been quite
impressive in their ruby support. Sun seems to be quite interested in
Ruby with NetBeans, JRuby, and their help to other Ruby
implementations as evidence. Even some of my former colleagues at IBM
who were Eclipse developers have told me (somewhat off the record)
that they are impressed with NetBeans.
 
G

Giles Bowkett

a) What is the current corporate distribution of the language? Is the
language being adopted at all for commercial projects?

Ruby's being used quite a lot for commercial projects, at least in the
Web space, thanks to Rails.
b) What is the status of available IDE's/debuggers for platforms such
as MacOS or Linux? Is there anything comparable to i.e. Eclipse?

This is a hot topic but I **think** it only comes up because people
who work in languages where tool support is vital assume tool support
matters in Ruby. There's much less tool support in Ruby but I really
think it's a supply/demand thing. It's very easy to build stuff for
and in Ruby. If people really needed IDEs, we would probably have
more. As far as I can tell the payoff for IDEs in Ruby is pretty
marginal. I could be wrong. But there's a gazillion projects underway
to make Ruby run faster and maybe one-and-a-half IDE projects. I think
the only demand for tool support in Ruby comes from people who got
used to it in other languages. Force of habit rather than actual
necessity.
c) My expertise lies in the telecommunications world - is Ruby at all
suited for large concurrent network applications in the way other
languages like Erlang are?

The way Erlang is, no. But "at all?" Sure at all. Check out
Adhearsion, it's a telephony framework in Ruby. I haven't played with
it but it sounds cool, and the guy who made it creates these really
wild/weird language tricks about once every six months.
I know these questions might be more commercially oriented, but a guy
has to earn a living and if I can do so with a language that seems
like good fun...

If you want a guaranteed living from Ruby, get good at Rails. (It gets
boring, though.)

--
Giles Bowkett

Podcast: http://hollywoodgrit.blogspot.com
Blog: http://gilesbowkett.blogspot.com
Portfolio: http://www.gilesgoatboy.org
Tumblelog: http://giles.tumblr.com
 
K

khaines

The way Erlang is, no. But "at all?" Sure at all. Check out
Adhearsion, it's a telephony framework in Ruby. I haven't played with
it but it sounds cool, and the guy who made it creates these really
wild/weird language tricks about once every six months.

Just an FYI. EventMachine has Erlang inspired lightweight concurrency.
The implementation is not complete, but what has been written is very
usable and can readily handle very large numbers of concurrent lightweight
processes (on an epoll or, with the code recently checked into trunk,
kqueue capable platform).


Kirk Haines
 
G

Giles Bowkett

c) My expertise lies in the telecommunications world - is Ruby at all
Just an FYI. EventMachine has Erlang inspired lightweight concurrency.
The implementation is not complete, but what has been written is very
usable and can readily handle very large numbers of concurrent lightweight
processes (on an epoll or, with the code recently checked into trunk,
kqueue capable platform).

Honestly I didn't grok most of that. The EM page says it's *for* Ruby,
C++, and Java. So dig dig dig and I found this in the RDoc:

EventMachine consists of an extension library written in C++ (which
can be accessed from languages other than Ruby), and a Ruby module
which can be dropped into user programs.

This is all stuff I don't know, but just for the hell of it, how does
Erlang-inspired lightweight concurrency stack up against Erlang
lightweight concurrency?

--
Giles Bowkett

Podcast: http://hollywoodgrit.blogspot.com
Blog: http://gilesbowkett.blogspot.com
Portfolio: http://www.gilesgoatboy.org
Tumblelog: http://giles.tumblr.com
 
B

Ben Turner

This is a hot topic but I **think** it only comes up because people
who work in languages where tool support is vital assume tool support
matters in Ruby. There's much less tool support in Ruby but I really
think it's a supply/demand thing. It's very easy to build stuff for
and in Ruby. If people really needed IDEs, we would probably have
more. As far as I can tell the payoff for IDEs in Ruby is pretty
marginal. I could be wrong. But there's a gazillion projects underway
to make Ruby run faster and maybe one-and-a-half IDE projects. I think
the only demand for tool support in Ruby comes from people who got
used to it in other languages. Force of habit rather than actual
necessity.

I believe that tooling is one of the important factors in what makes a
language "popular" with the code-writing masses. I can only speak with
authority from a Java perspective, so bear with me. Java has a huge
community of frameworks, tools, building environments, IDEs and
anything else you can imagine. On a daily basis, I rely on tools such
as:

* continuous integration engines such as Hudson or Cruise Control
provide an up-to-the-minute overview of the status of the code
repository
* build systems such as maven to provide out-of-the-box automated
building, testing, test coverage, code quality checks etc.
* IDEs with strong refactoring tools, debuggers and direct version
control integration
* etc.
If you want a guaranteed living from Ruby, get good at Rails. (It gets
boring, though.)

I'm not really into web development (more backend server
applications), so I think I will be looking at plain ruby first :)

Best regards,

Ben
 
J

Jari Williamsson

Ben said:
I believe that tooling is one of the important factors in what makes a
language "popular" with the code-writing masses. I can only speak with
authority from a Java perspective, so bear with me. Java has a huge
community of frameworks, tools, building environments, IDEs and
anything else you can imagine. On a daily basis, I rely on tools such
as:

* continuous integration engines such as Hudson or Cruise Control
provide an up-to-the-minute overview of the status of the code
repository
* build systems such as maven to provide out-of-the-box automated
building, testing, test coverage, code quality checks etc.
* IDEs with strong refactoring tools, debuggers and direct version
control integration
* etc.

Well, debugging is a completely different thing on Ruby than many other
languages, since you can basically build your own Ruby debugger in a few
lines of code. However, I believe all available IDEs for Ruby has
standard debugging support.

And I agree with you: I can't understand what bad it is to have things
bunched into projects through an UI. For example, I think it's
incredibly convenient to just press a button and run the test cases for
that file I'm currently edit (as I can do in NetBeans). Or to autobuild
the RDocs for the current project. Or the ability to use different
versions of Ruby for each project. And so on.

Since you're a Java programmer, you would probably want to look into
JRuby as well (and NetBeans as the IDE, which is a really great IMO). In
JRuby, you can use all your existing Java libraries from Ruby. With
Monkeybars for example, you can create a Swing layout in NB and handle
the UI with virtually no coding. make sure to check out the screencast!
(And NetBeans supports both Ruby and JRuby, btw. The trunk versions of
NB support the multiple version stuff.)


Best regards,

Jari Williamsson
 
G

Giles Bowkett

And I agree with you: I can't understand what bad it is to have things
bunched into projects through an UI. For example, I think it's
incredibly convenient to just press a button and run the test cases for
that file I'm currently edit (as I can do in NetBeans). Or to autobuild
the RDocs for the current project. Or the ability to use different
versions of Ruby for each project. And so on.

You can get tests automatically running for any code you edit via
autotest, or run them from within TextMate, that's easy. Continuous
integration with the Ruby version of Cruise Control (CC.rb) is
unbelievably simple. At my current project we have a Campfire plugin
for CC.rb which logs into the chatroom and alerts us any time tests
fail. (We actually had to modify it yesterday to recognize the
difference between a real build failure and the Subversion server
going down, but that's another story. Subversion server maintenance
and control belongs to another department in the great corporate
empire. Anyway, it didn't take long.)

The build tool of choice is Rake. Most of the tools you're talking
about exist, but finding them bundled in a UI is still not really the
norm.

--
Giles Bowkett

Podcast: http://hollywoodgrit.blogspot.com
Blog: http://gilesbowkett.blogspot.com
Portfolio: http://www.gilesgoatboy.org
Tumblelog: http://giles.tumblr.com
 
R

Richard Conroy

Hi,

I currently work as a freelance Java programmer doing contracts in
Europe and am very interested in Ruby.

I have a couple of questions:

a) What is the current corporate distribution of the language? Is the
language being adopted at all for commercial projects?

Well yes, Ruby on Rails is being heavily used in commercial projects,
but pure Ruby projects are probably pretty rare indeed. We have probably
reached a stage where there are very few green field web projects being
started now that use Java in the front tier.

It is hard to measure Rails penetration behind corporate firewalls obviously.
b) What is the status of available IDE's/debuggers for platforms such
as MacOS or Linux? Is there anything comparable to i.e. Eclipse?

Eclipse has Ruby, Ruby on Rails support, but Netbeans seems to be leading
the pack as a full on Ruby, Ruby on Rails IDE. Eclipse had an early lead with
RadRails/Aptana, but that effort stalled a while back. It is resuming again.
c) My expertise lies in the telecommunications world - is Ruby at all
suited for large concurrent network applications in the way other
languages like Erlang are?

Some people have attempted to use it in such a fashion, its got great,
easy to use
libraries for it, but the more ambitious tend to hit problems in the
interpreter (MRI).

Ruby tends to penetrate those kinds of big iron 'X-nines-availability'
platforms in a
hybrid fashion. You are still running C, Java, Erlang etc. for your
core system, but
you interface to it through Ruby presentation layers (web UI,
scripting, reporting,
web services)
 
R

Richard Conroy

I believe that tooling is one of the important factors in what makes a
language "popular" with the code-writing masses. I can only speak with
authority from a Java perspective, so bear with me. Java has a huge
community of frameworks, tools, building environments, IDEs and
anything else you can imagine.

Often to a point of fault. Look at the huge number of Java Web Frameworks.
On a daily basis, I rely on tools such
as:

* continuous integration engines such as Hudson or Cruise Control
provide an up-to-the-minute overview of the status of the code
repository

Neither CruiseControl nor Hudson are java-specific, they will happily
invoke a shell command as well as their built-in maven and ant support.
Those shell commands could be make, nant, gant, or any of the Ruby build
systems.
* build systems such as maven to provide out-of-the-box automated
building, testing, test coverage, code quality checks etc.

All of this exists in Ruby too, frankly the Ruby build tools are considerably
better than those in Java (Rake), to the point that Ruby is better at building
Java than Java is. Witness projects such as Raven and Buildr.

Certainly, testing in Ruby is easier than java and considerably more evolved
(RSpec, autotest, fuzz testing, hoe, zentest).

Building in Ruby is also considerably more evolved. Its not uncommon to hear of
builds taking single digit seconds in Ruby (update & tests & coverage)
* IDEs with strong refactoring tools, debuggers and direct version
control integration
* etc.

Just be wary of 'strong refactoring tools' aka 'push-button
refactoring'. Go read
Steve Yegge's article about this
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,756
Messages
2,569,540
Members
45,025
Latest member
KetoRushACVFitness

Latest Threads

Top