JRuby is an implementation of the Ruby programming language on the Java Virtual Machine. Until about six months ago, JRuby was merely a technical curiosity; few seemed interested in using it for 'serious' development work. This perception has changed over the last six months, as JRuby's progress has accelerated. Here, in no particular order, are five reasons to consider using JRuby for your current or next project.
- JRuby Now Works. With the recent release of JRuby 1.0, JRuby now does just about everything C-Ruby does. Performance is now almost at the level of the C-Ruby implementation.
- JRuby on Rails Now Works. For a long time, JRuby's support for Rails was limited. Not so any more. Google JRuby Rails and be amazed at all of the activity.
- Ruby Can Now Be Compiled to Java Bytecode. Simply amazing.
- Sun is Financing JRuby Development. Two core JRuby developers, Charles Nutter and Thomas Enebo, have been hired by Sun Microsystems to develop JRuby. Sun gets it. They know that Java the Platform matters far more than Java the Language. Despite their own investment in Java FX, Sun is taking a pragmatic approach to scripting on the JVM. If only Sun's industry peers were as pragmatic.
- The JVM Offers an Enterprise-Quality Platform for Ruby Applications. The JVM is one of the best-tested and most reliable software platforms in existence. Ruby run on top of a JVM makes a lot more sense than Ruby run on top of metal via C. Likewise, hosting Ruby on Rails applications inside a Java application container offers a way out of the current Rails deployment conundrum. It won't be long before everyone sees it that way. For now, those who get it will have a head start.
Far from being a passing curiosity, JRuby may well become the preferred way to develop both Java and Ruby applications. The wide array of cheminformatics code already written in Java makes JRuby an especially attractive platform for chemistry software. Future articles will show how the powerful duo of Ruby and the Java Virtual Machine can be used to speed the development and deployment of cheminformatics Web applications.