16.2. JRuby on JRails

Switching gears to cover a different way to incorporate other languages into Rails, we come to JRuby, a 100-percent Java implementation of a Ruby interpreter and compiler. Although there are a number of languages that have Java Virtual Machine (JVM) interpretations, JRuby has one thing that the others don't — official support from Sun, which employs the core JRuby developers and funds JRuby development. The explicit goal of JRuby, at least from Sun's perspective, was to provide a Java-based platform to run Rails web applications.

This naturally begs the question of why you'd want to run a Rails application on top of a JVM. There are at least three potential answers:

  • From JRuby, your Rails application can access Java-based APIs and services. There are still a number of libraries and tools with Java implementations but not Ruby interpretations. With JRuby, you can access those tools from your Ruby code.

  • JRuby allows for deployment using standard Java .war files, which you can generate from Rake and deploy in any Java web application environment. This is potentially a much simpler deployment story than exists with standard Ruby and Capistrano, especially because JRuby allows access to large-scale enterprise servers such as Glassfish.

  • JRuby has the only full compiler for the Ruby language. Although the goal hasn't been fully achieved as of this writing, the JRuby team expects that JRuby will soon be faster than the current Ruby interpreter. (It should be mentioned ...

Get Professional Ruby on Rails™ now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.