Wednesday, July 05, 2006

JRuby 0.9.0 Released

And it's out the door! We are currently sending out the announcement: JRuby 0.9.0 is released!

Any frequent readers out there will know there's a ton of improvements in this release. I'll be blogging a bit later on the details of each, but here's a short list:

  • All non-native Ruby libraries (lib/ruby/1.8 from the C version) are included in this release, so you can download, unpack, and hit the ground running. No installing, no copying files, no fuss.
  • RubyGems 0.9.0 (coincidence?) is included pre-installed with appropriate scripts to run with JRuby. Gems install beautifully, but I'd recommend you use --no-rdoc and --no-ri until we get a few performance issues worked out (doc generation is still pretty slow).
  • WEBrick finally runs and can serve requests. This also allows the Rails 'server' script to server up your Rails apps. Speaking of Rails...
  • Ruby on Rails now runs most scripts and many simple applications out-of-the-box. The 1.1.4 release of Rails included our patch for block-argument assignment, eliminating an unsupported (by JRuby) and unusual syntax preventing scripts from running. We've also improved performance a bit and as mentioned before, got the WEBrick-based 'server' script running well.
  • YAML parsing, StringIO, and Zlib are now Java-based instead of the original pure-Ruby implementations. This has greatly improved the performance of RubyGems and other libraries/apps that make use of these libraries. There are a few libraries remaining to be "nativified" and we expect to get future performance benefits from doing so.
  • As always, there are a large number of interpreter, core, and library fixes as part of this release.
This release represents another huge leap forward beyond our JavaOne demo. Where Rails was a bit touchy and unpredictable with that release, it's now becoming very usable. Where RubyGems only half-worked before, it now appears to work well every time. We feel we're on track for full Rails support by the end of this summer, with a JRuby 1.0 release to follow. Thanks all for your support and assistance!

Special thanks to JRuby contributors Ola Bini and Evan Buswell for their work on YAML/Zlib reimplementation and server sockets, respectively. We wouldn't have RubyGems or WEBrick working without their contributions.
  • Information about JRuby and the release can be found at jruby.org.
  • The release archives are on SourceForge. This will be the last release from SourceForge; we are in the process of moving to CodeHaus and should be up and running there shortly!
Stay tuned for a JRuby on Rails walkthrough!

3 comments:

Jari Aarniala said...

I'm currently working on a Rails app that works in conjunction with a component written in Java (I'm using some open source components that currently don't have a Ruby counterpart, so I can't stick to 100% Ruby.) Great to see JRuby progressing, as this hopefully gives me the chance to share some of the Rails app's codebase with the Java component.

More specifically, the Java component needs to access the same data as the Rails app, so ideally I could use JRuby to take advantage of the Rails app's ActiveRecord models.

Congrats and keep up the good work!

Charles Oliver Nutter said...

The vast array and variety of Java libraries is in my opinion the most compelling reason why JRuby on Rails just makes sense. There are messages weekly--if not daily--to the Rails mailing list asking for feature X or Y that Java library Z already provides. The stock answer, "wrap it in a web service," only scales so far. I believe we will see a new explosion in Rails use once Rails apps have the power of both Ruby and Java easily available. Oh what a world that will be!

Peter Rodgers said...

Congratulations everyone on the JRuby team! Just thought you might like to know JRuby 0.9.0 is now available as a language runtime on NetKernel. All the fun of Ruby and URI address spaces! For details see:

Ruby on NetKernel


In the post I mention some ideas about pre-parsed scripts. I'll send more to the mailing list as promised!

Congrats again!