InfoQ

Interview

Charles Nutter discusses JRuby

Interview with Charles Nutter by Ryan Slobojan on Feb 14, 2008 04:00 PM

Community
Java,
Ruby
Topics
Compilers ,
Community ,
Ruby on Rails ,
Enterprise Architecture ,
JRuby ,
Platforms ,
Web Frameworks ,
Application Servers
Tags
RailsConf ,
JVM ,
ActiveRecord ,
Open source Java ,
Java One ,
Rails ,
Mongrel ,
RubyDotNet ,
ActiveRecord-JDBC ,
Hibernate ,
Ruby on Rails ,
IronRuby ,
JRuby
Summary
JRuby project lead Charles Nutter discusses how he got involved with JRuby, Sun's involvement with JRuby, how JRuby fits into enterprise-level web applications, the possibility of a friendly fork of the OpenJDK source code, reasons for switching to JRuby, the future of JRuby, Spring and JRuby, and the Ruby community as a whole.

Bio
Charles Nutter has been a Java developer since 1996, recently working as the senior Java architect at Ventera Corp and in September 2006 moved to Sun to work full-time on JRuby! He led the open-source LiteStep project in the late 90s and came to Ruby in the fall of 2004. Since then he has been a member of the JRuby team, helping to make it a true alternative Ruby platform.
Hi this is Ryan Slobojan at QCon and I am here with Charles Nutter, who is the lead developer at JRuby. Charles, why don't you tell us a little bit about how you got involved with JRuby?
What kind of changes have you done with JRuby since you got involved?
You mentioned that Sun got involved with JRuby. Why did Sun make that decision?
You had given the example of using JRuby in organizations. How would JRuby fit into, for instance, an enterprise-level web application?
When you compare JRuby on Rails with Ruby on Rails, one of the things that is commonly used with Ruby on Rails is Mongrel. Is there an equivalent for JRuby, is one necessary?
One of the recent developments is a project called "The Multi-Language Virtual Machine" or MLVM. How is that going to benefit JRuby, how is JRuby involved in that?
Do you envision this happening distinct from the JVM, would there be a separate multi-language VM in addition to the JVM?
What are some of the reasons that you hear people in the community giving for switching from Ruby on Rails to JRuby on Rails?
What do you think is going to be coming up in the future for JRuby?
You mentioned earlier that JRuby can use any library that's available for Java. Given that Ruby has a lot of database things built into already, how would something like Hibernate fit into that picture?
With Spring 2.5 one of the things that has been mentioned is the ability to wire in dynamic beans. How do you see that fitting in with JRuby, how does that change the landscape?
There are several Ruby implementations now that are available such as Ruby, Ruby .net, there's IronRuby and JRuby as well. What kind of dynamics are there in the Ruby community around that?
show all  show all
GlassFish v3 gem by Arun Gupta Posted Feb 14, 2008 3:29 PM
On cross-platform Ruby by Tom Nichols Posted Feb 15, 2008 7:50 AM
If Ruby is not your cup of tea... by Zeev B Posted Feb 18, 2008 5:51 AM
  1. Back to top

    GlassFish v3 gem

    Feb 14, 2008 3:29 PM by Arun Gupta

    Since this interview is recorded, GlassFish v3 gem has been released that provides a robust alternative to WEBrick & Mongrel. More details at: http://blogs.sun.com/arungupta/entry/glassfish_v3_gem_0_1

  2. Back to top

    On cross-platform Ruby

    Feb 15, 2008 7:50 AM by Tom Nichols

    ... help (JRuby) be the language of choice on whatever platform you are running
    As much as I prefer Groovy (since I do 99% of my work in the Java world) the idea of a language _really_ spanning platforms is a compelling reason for me to take the time to learn the Ruby language. I mean, they even have a Ruby port for the iPhone!!! I think there are just a few places where even the JVM won't go :) For that, it is good to have a diverse toolbox and I like the idea of a language that really spans platforms (that is, native, JVM, .NET, etc).

  3. Back to top

    If Ruby is not your cup of tea...

    Feb 18, 2008 5:51 AM by Zeev B

    If Ruby is not your cup of tea I would recommend taking a look at Python/Jython. Python was one of the first dynamic programming languages that had a JVM implementation (i.e. Jython).

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.