The next major version of JRuby is nearing completion, offering developers a host of new improvements for running the Java implementation of the open source Ruby language.
JRuby 1.6 is now available as a release candidate. It provides support for the latest Ruby release while enhancing Microsoft Windows compatibility. JRuby 1.6 is the first JRuby release to support the Ruby 1.9.2, the latest release of the Ruby language.
" From JRuby 1.5 to 1.6 there have been over 1,900 commits and we've made a lot of changes, primarily around adding solid Ruby 1.9.2 support," Thomas Enebo, JRuby project lead, told InternetNews.com. "With JRuby 1.6, we can now run in Ruby 1.8.7 or in 1.9.2 mode."
Ruby 1.9.2 support enables JRuby to better integrate with the recent Ruby on Rails (RoR) 3.0 release, which is optimized for the new version of Ruby. Additionally, Ruby 1.9.2 provides new multi-lingual text encoding support.
"Previously, that was very difficult. You could set all text to be one particular encoding with Ruby 1.8," JRuby Project Lead Charlie Nutter told InternetNews.com. "With the multi-lingualization stuff in 1.9, it makes it easier to deal with many encodings and normalize them all yourself."
From a Java perspective, the JRuby 1.6 release includes the ability to leverage Apache Maven artifacts, which could help to improve developer and application efficiency.
"You can gem install any Maven artifact out there and the system will pull it down as though it were a real Ruby gem," Nutter said. "This is largely to avoid having to release every single JAR file again as a Ruby gem. We just want to integrate the two worlds."
JRuby Plays Nice on Windows
With version 1.6, the JRuby developers have also focused on improving the open source technology's performance on Microsoft Windows platforms. Enebo explained that he started "dogfooding" Windows, running JRuby on the OS platform to help improve its performance. He noted that the experience led to a number of discoveries about things that weren't working as they should have been on Windows.
One of the big enhancements is support for WIN32OLE, which Enebo worked on as a commercial open source contract for a customer. The JRuby project enjoys the backing of services vendor Engine Yard, which also offers commercial support services for JRuby.
"WIN32OLE work meant working through a lot of Windows usability issues," Nutter said. "Also we have now set up a continuous integration server on Windows and it makes sure that all our builds stay clean on Windows."
Nutter added that prior to the JRuby 1.6 release cycle, Windows builds tended to drift a bit and then needed to be cleaned up. With the continuous integration build, the aim is to elevate Windows as a primary platform that JRuby will support.
Next Up: JRuby Support for Java 7
Moving forward, the next major JRuby release will be focused on enabling the upcoming Java 7 language release. The Java Community Process recently voted on the Java 7 technical specifications and the official Java 7 release is expected to debut mid-year.
"A big part of JRuby 1.7 will be building out support for the Java7 API's, to make sure that we're taking full advantage of Java 7 when it comes out," Nutter said.