InfoQ

News

JRuby 1.0 Released: Bringing Ruby Compatibility to the JVM

Posted by Scott Delap on Jun 09, 2007 12:52 PM

Community
Java,
Ruby
Topics
Ruby on Rails ,
Dynamic Languages
Tags
Ruby on Rails ,
JRuby ,
ActiveRecord
JRuby 1.0 has been released. From committer Ola Bini's blog:
...JRuby 1.0 is a major milestone for our project. Our main goal for 1.0 has been Ruby compatibility. We feel this goal has been reached. When we see companies like ThoughtWorks offering commercial support; we know this goal has been reached...It is important to notice that JRuby 1.0 is not the end all of Ruby interpreters. It’s not perfect. This is just the beginning. We now have a very good base to work from. This is were the real work begins. Join us. It will be a fun ride, and JRuby will just get better!

The release marks 9 months since commiters Charles Nutter and Thomas Enebo were hired by Sun. In the time since commiter Ola Bini has also been hired to work on JRuby development by Thoughtworks.

The release is being termed as "Ruby compatible" with all known JRuby bugs causing incompatibilities with Matz's Ruby (MRI) resolved. Applications should "just work" out of the box. Charles Nutter has detailed the post 1.0 development course of JRuby on his blog. In summary:

    Performance
    In the last year speed has been increased by an order of magnitude and a JIT compiler has been enabled. The team will continue to work on improving the JRuby speed and performance.

    Java Integration
    Today libraries can be called, interfaces implemented, and classes extended. Edge cases exist however. A redesigned integration API is targeted for 1.1.

    Ruby 2.0 and Rubinius
    The goal is to support Ruby 2.0 and Rubinius byte code execution soon.

Nutter also reaches out to the community. JRuby is a community project sustained by community involvement. He specifically mentions the RubySpec initiative:

..RubySpec is an effort to build a community-driven specification of Ruby that all users and implementers can freely reference. It is linked from the RubyDoc site and is fast becoming a standard way for the community to record language and library behaviors. I believe this is the best and fastest way for us to form a complete specification of Ruby's behavior...and I believe such a specification is becoming extremely important, what with there now being 5-10 different implementations of Ruby, all guessing at what "correct" is...

On a related note ActiveRecord-JDBC 0.4 has been released to coincide with JRuby 1.0. ActiveRecord-JDBC is a database adapter for Rails’ ActiveRecord component that can be used with JRuby. It allows use of virtually any JDBC-compliant database with your JRuby on Rails application. Version 0.4 adds:

  • Shoring up PostgreSQL (courtesy Dudley Flanders) and HSQL (courtesy Matthew Williams)
  • Fix timestamps on Oracle to use DATE (as everything else)
  • Derby fixes: Fix for open result set issue, better structure dump, quoting, column type changing
  • Sybase type recognition fix (courtesy Dean Mao)

Sun's commitment to Ruby has not just consisted of runtime for the JVM. The Netbeans IDE has been receiving a significant injection of Ruby support the last 6 months from Sun's Tor Norbye. This week he has added Find Usages and Refactoring support:

...Let's say that I want to rename the @comments field in my Rails application controller. I right click on it, choose a new name and hit OK. I then click "Preview", and in the bottom window I get a list of refactoring operations, along with diffs for the currently selected item. I can (and should!) walk through the changes with the Up/Down arrows, and I can unselect any changes that I don't like before I click the Refactor button to apply the changes...

Such features are in the very latest development buillds of Netbeans which can be found in a Ruby IDE form at nbextras.org. More detailed installation instructions can be found on the Netbeans wiki.

Congrats by serge boulay Posted Jun 9, 2007 2:18 PM
Good news by Peter Veentjer Posted Jun 10, 2007 10:04 AM
Exciting by Geoffrey Wiseman Posted Jun 10, 2007 3:10 PM
  1. Back to top

    Congrats

    Jun 9, 2007 2:18 PM by serge boulay

    congrats to the JRuby team (and Netbeans team) for making Ruby a reality on the VM

  2. Back to top

    Good news

    Jun 10, 2007 10:04 AM by Peter Veentjer

    At the moment I'm using Groovy for scripting/prototyping, but (J)Ruby also looks very promising. Good to see that it is so well supported.

  3. Back to top

    Exciting

    Jun 10, 2007 3:10 PM by Geoffrey Wiseman

    Good to see both the release and the roadmap for the future. Exciting.

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.