JRuby: Pushing the Java Platform Further

Java: JVM
Location: A105
Average rating: ****.
(4.50, 2 ratings)

JRuby has become a top-notch implementation of Ruby. But getting there hasn’t been easy. Ruby supports arbitrarily-encoded strings, lightweight threading, closures, large amounts of runtime code generation and class manipulation, native libraries, and many other features difficult to support on the JVM.

In order to bring a solid Ruby experience to the JVM, we’ve had to build out many subsystems that have traditionally been weak areas for the JVM:

  • We have our own byte[]-based String representation and encoding and regex subsystems to support them.
  • We have a DSL and API for binding native libraries directly to Ruby methods.
  • We’ve worked extensively on a runtime JIT system that interprets Ruby code at first, later JITing to JVM bytecode.
  • We’ve worked around a number of inconsistent or problematic JDK APIs, to solve problems like process management, console interactivity, and JDBC driver reloading.

In essence, we’ve subverted the JVM and the JDK to our needs. And as a result, JRuby users get not just a solid Ruby experience, but a better JVM experience.

Come see how JRuby is making the Java platform a better place to live.

Photo of Charles Nutter

Charles Nutter

Engine Yard, Inc

Charles Oliver Nutter has been programming most of his life, as a Java
developer for the past decade and as a JRuby developer for over four
years. He co-leads the JRuby project, an effort to bring the beauty of
Ruby and the power of the JVM together. Charles believes in open
source and open standards and hopes his efforts on JRuby and other
languages will ensure the JVM remains the preferred open-source
managed runtime for many years to come. Charles blogs at blog.headius.com and tweets as headius on Twitter.