Monday, September 11, 2006

JRuby, what's in it for us?

A lot of words are being passed around on the ruby-talk mailing list about Sun's move with JRuby. Recently, the talk has turned to "What's in it for us?". Beginning (more or less) with James Moore's post, which started out like this:

So I have to ask - is JRuby a good thing for the Ruby community, as opposed to the Java community? To me - admittedly, someone without a huge depth of Ruby experience - it's not an obvious good idea.

James went on to talk about the JVM vs C, but I think he missed the bigger picture. Because of his focus on the JBM, most of the replies clustered in that space as well.

I'd like to refocus the conversation. Here are five benefits I see for the whole Ruby community, and three possible problems.

The Good Stuff

Increased visibility for Ruby — With a big name getting involved in Ruby (and not just Ruby on Rails), there's even more opportunity to push back on the FUD that keeps popping up. It also creates a space to discuss Ruby with co-workers or peers that might not have existed before.

Work on a Ruby specification — One of the problems that many of the Ruby re-implementations face is that there's no formal specification of Ruby. Charles Nutter has been trying to work on this for a while. Now that he's being paid to work on JRuby, I think that this will accelerate.

Ruby, the core library, and the standard library testing — Charles has also been trying to drive for a common testing suite for Ruby, and all the libraries that ship with it. Given a common suite, all the implementations will benefit. Something like this could even grow into some rough performance testing.

Ruby documentation — Much of the documentation written for JRuby should roll right into Ruby. Given that 'bad docs' is one of the most common complaints about Ruby, this could be huge!

Ruby on more platforms — We've seen problems getting Ruby on AIX. If JRuby provides a parallel implementation that's easier to get running there (or on other platforms), it can help speed adoption on those platforms. (E.g., I have three AIX boxes that are slowing the spread of Ruby at my day job.)

Corporate sponsorship of Ruby — Now that Sun has jumped in visibly (and Microsoft in a less visible way), there's some home that other corporations will also step in to help push Ruby (or JRuby, cardinal, etc.) development.

And The (Potential) Bad Stuff

Corporate influence on (J)Ruby — Any time a corporation steps into an Open Source community, there's some fear that they'll exert some undo (and malignant) influence. In the past, this has mostly proved not to be a problem. Having strong developers at the core of the project seems to be the key mechanism to ensure that it doesn't happen. I feel comfortable that Charles and Thomas will be that stron core.

Divergence of implmentations — What happens when the JRuby behaves differently from Ruby? I've already found one (very minor) case where this has happened. The randomizer for JRuby and Ruby >= 1.8.4 give different numbers when they're provided the same seed with srand. (Actually Ruby < 1.8.4 also behaves differently than either of the others, so this isn't an issue unique to JRuby).

Bloat — Perhaps the biggest complaint about Java is that it's become tremendously bloated. Since this has happened under Sun's watchful eye, I think it's fair to ask if this will happen to JRuby too? Again, I hope that Charles and Thomas (and the rest of the JRuby community) will keep this from happening.

Wrapping Up

Did I miss anything? Am I overstating one (or more) of the points above? What do you think?

Digg This

No comments: