I see the JRubyists have shipped JRuby 1.1. I increasingly think JRuby is interesting and important as a test case, even if you don’t happen to care in the slightest about Ruby or Rails.

JRuby 1.1 Goodness · For those of us who do care about Ruby and Rails, 1.1 is good news because it’s a whole lot quicker and more robust than 1.0. One of the biggest pieces of goodness is Marcin’s incredible feat of porting Oniguruma, the next-gen Ruby regexp engine, to Java (I think the Java people ought to look seriously at adopting it in a future Java SE release).

Important, Why? · Because JRuby is really a proof point for the notion of multiple languages sharing a VM. The only other serious commercial move in that direction is Microsoft.NET, and it really only has 1½ mainstream languages: C# and then VB.NET, which is highly discontinuous with the decades of Visual Basic history.

[Update: In the comments, I’m getting heat from people pointing at Jython, IronPython, and so on. I know about those, but my perception is that the JRuby/Rails combo is getting commercial uptake faster than any of those have.]

JRuby, on the other hand, is a no-compromise attempt to maintain full compatibility with a language radically different from Java on a platform whose raison d'être has for over a decade been running Java programs.

The reasons why in theory JRuby ought to be interesting to both communities, Java (they get metaprogramming and Rails and block-based goodness) and Ruby (they get oceans of APIs, servlets, and a route around IT bureaucrats), are pretty compelling. And despite JRuby’s relative youth, we’re seeing the first wave of commercial production deployments. So the experiment as to whether the advantages in theory play out in practice is well and truly under way.

If it can be done, its importance as an existence proof is profound, and I would expect the ratio of the number of popular VMs to the number of popular languages to decline rapidly from its current value, which is very nearly 1.

If the JRuby project disappoints, it won’t prove that sharing VMs among languages is a lousy idea; but it will be, at best, disturbing evidence. Me, I’m optimistic.

PostScript · There was a flurry of griping today on Twitter: Apparently the RailsConf 2008 program contains exactly zero JRuby: no tutorials, no sessions. Frankly, this seems deeply weird to me: from the Rails point of view, there are going to be quite a few scenarios where you might want to consider deploying into Javaland, just as a practical matter.

However, I’m glad to see that the IronRuby Microsofties are going to be presenting; I think having Rails on .NET is going to add some interesting new flavors and spices to the rich red Web-flavored stew.



Contributions

Comment feed for ongoing:Comments feed

From: Roger Benningfield (Apr 07 2008, at 22:11)

I haven't had any real businessy reason to run multiple languages under the JVM yet, but I *have* been playing with it. Since Coldfusion 8's release, lots of folks have been playing with installing JRuby and Jython alongside CF, and then doing odd stuff like inlining Ruby within a CFML page.

There's not a ton of practical purpose for it yet, but it's still geeky fun.

[link]

From: Will (Apr 07 2008, at 22:32)

> The only other serious commercial move in that direction is Microsoft.NET, and it really only has 1½ mainstream languages: C# and then VB.NET

You refer at the end to IronRuby, so I'm sure you're aware of IronPython. Does it not count for at least ½ of a mainstream language on the .NET platform?

Here is a big document detailing IronPython 1.1.1's differences from CPython 2.4.3:

http://www.codeplex.com/IronPython/Wiki/View.aspx?title=Differences

I don't have any experience using IronPython, so I don't know how well it works as an alternate Python implementation. I'm just curious about why you neglected to mention it.

[link]

From: Simon Willison (Apr 08 2008, at 05:11)

Surely both Jython and IronPython proved the notion of multiple languages sharing the same VM several years ago?

[link]

From: Nathan (Apr 08 2008, at 06:29)

So Python on .NET and Ruby on .NET don't count?

[link]

From: Chad Fowler (Apr 08 2008, at 07:11)

My take on JRuby as a conference session is that, though there are certainly JRuby-specific topics, almost the entire program is 100% relevant to JRuby users. The bulk of the issue is that, with 350 proposals, the JRuby-specific talks just didn't make the relatively small cut. It was amazingly difficult to prune so many proposals this year, particularly given that the overall quality of proposals seems to have gone up with the quantity. So we did the best we could to pick a well-balanced program with topics of interest to as many people as possible.

That being said, we've had a couple of cancellations and will be slotting in one or two of the JRuby talks we wished we had room for initially.

[link]

From: Robbert J. Sanford, Jr. (Apr 08 2008, at 07:49)

A question regarding the absence of JRuby at RailsConf - did anyone sign up to present?

Really, if Nutter or Ola or Enebo put in a request/proposal to present a session and were rebuffed then I would consider that to be an insult (at best). But if nobody put in a proposal to present then that isn't on the RailsConf team, that's on the JRuby team.

I reserve judgment until I know more.

[link]

From: Bob Aman (Apr 08 2008, at 07:56)

As a practical matter, I have exactly one use case for JRuby. It's a good one, but it ain't Rails. It is, in a word, Profligacy. I doubt I could be convinced that there's currently a better cross-platform GUI system out there than Swing or SWT. Sadly, Java's language design makes for some particularly ugly event handling code. Event handling without closures is a complete non-starter for me. Enter JRuby and Profligacy. Now, not only do I have the ability to use Ruby blocks for event handling, I also get what is, hands-down, undeniably the best programmatic GUI layout system around -- LEL. Zed deserves some serious credit for it. And with only a little coaxing, you can package the whole thing up as a .app or .exe or just wrap it in a simple shell script.

Glassfish, on the other hand, is really not a tool I feel like adding to my toolkit. I suspect I'm not alone in that sentiment.

[link]

author · Dad · software · colophon · rights
picture of the day
April 07, 2008
· Technology (87 fragments)
· · Java (123 more)
· · Open Source (82 more)
· · Ruby (93 more)

By .

The opinions expressed here
are my own, and no other party
necessarily agrees with them.

A full disclosure of my
professional interests is
on the author page.