InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

JRuby 1.0 Released: Bringing Ruby Compatibility to the JVM

Posted by Scott Delap on Jun 09, 2007

Sections
Development
Topics
Ruby ,
Dynamic Languages ,
Java ,
Ruby on Rails
Tags
JRuby ,
Ruby on Rails ,
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
Good news by Peter Veentjer Posted
Exciting by Geoffrey Wiseman Posted
  1. Back to top

    Congrats

    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

    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

    by Geoffrey Wiseman

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

Educational Content

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.

Beauty Is in the Eye of the Beholder

Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.

Architecting Visa for Massive Scale and Continuous Innovation

John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.

Max Protect: Scalability and Caching at ESPN.com

Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.

The Seven Deadly Sins of Enterprise Agile Adoption

Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.

Questions for an Enterprise Architect

Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?

Wrap Your SQL Head Around Riak MapReduce

Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.