David Vallner wrote:
The apparent popularity of Groovy disturbs me, for fear of overhyping
and the fact I wish their JSR a speedy death. Then again, I don't give
much credit to blog polls, especially ones that are instant cues for a
programming language flamewar. Last time I remember, it was a certain
Mr. Spolsky that was being accused of trolling for hits by doing more or
less that.
I expected Groovy to do well; in the past it's been the most "official" language (JSR process and all), it's been hyped quite a bit for the past couple years, and, well, it has a pretty good name. It's certainly not a language I'd ever want to use though, so I think the JRuby thing has more potential (of course).
Wishing no ill fortune to the JRuby folks, I voted for BeanShell on that
one for rational reasons. The role I see for scripting the JVM is in
things usually more people on the team and later maintainers will change
(involved configuration, rules in business rule engines), and making
those easily understood and modified by people you hire to work on a
Java app (read: people who know mostly Java) is paramount. (If you
wouldn't use a scripting language on a part of the app you expect to
change often, where then?).
Fair enough...and I agree, if Ruby didn't exist I'd probably be using Beanshell or Jython or SISC instead. In the end though I hope we can really bring all languages up at the same time by better supporting them at the VM level. That will help everyone, including those poor pure Java devs out there.
JRuby has its place, but IMO not really in Java development per se -
more along the lines of doing Ruby development while being able to
leverage Java-only libraries. If it only delivers that, the project has
very high value. It's a somewhat subtle distinction, but until now, the
latter wasn't an itch I needed scratching, so it's also not where my
vote is going.
I think it may be better to think about JRuby not in terms of Java, but in terms of an alternative VM for Ruby. You may not need a VM as feature-complete as the JVM. You may not need a VM at all. But if you do, and you want things like native, parallel threading, advanced memory management and garbage collection, high-speed asynchronous IO, and a bazillion libraries, maybe Ruby on the JVM is the right choice. You really don't have to touch a line of Java code to get the benefit.
David Vallner
(Disclaimer: Anyone proposing anything but Java be used to actually
implement some library / framework to be consumed by other people from
Java deserves being handled by the nearest rusty fork. I'm a
multilanguage purist, keep to each its advantages.)
I don't necessarily agree that Ruby can't be used for such things...but I agree it's best targeted at tying such things together.
···
--
Charles Oliver Nutter, JRuby Core Developer
Blogging on Ruby and Java @ headius.blogspot.com
Help spec out Ruby today! @ Welcome to headius.com
headius@headius.com -- charles.nutter@sun.com