On the eve of the new JRuby Course announced by RubyLearning, Satish Talim of RubyLearning caught up with Charles Nutter, who was kind enough to spare time answering questions posed by the RubyLearning participants.
Charles Nutter has been a Java developer since 1996. He currently works full-time as a core developer on JRuby at Sun Microsystems. He led the open-source LiteStep project in the late 90s and started working on 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. Charles blogs on Ruby and Java at headius.blogspot.com.
Satish Talim>> Many of the RubyLearning course participants have a Java background and are learning Ruby. Why, according to you, must these participants also learn JRuby?
Charles Nutter>> Java is still a great language for building high performance libraries, system code, frameworks and sometimes applications. But more and more it’s not enough to just know Java. We have JRuby, Groovy, Jython, and other languages all showing new ways of looking at the classic problems facing application developers. And learning JRuby is a perfect way to keep up with where development on the Java platform is going.
Satish Talim>> How should they go about acquiring knowledge and skills in JRuby?
Charles Nutter>> You learn best by doing…pick up pretty much any Ruby or Rails book, or go to any Ruby or Rails training session, and see if you can get through it with JRuby. And while you’re doing it, start thinking about where you can take advantage of JRuby’s additional features, like the ability to call Java libraries.
Satish Talim>> What’s the focus of JRuby?
Charles Nutter>> JRuby has two focuses. First and foremost, we want to be the best Ruby implementation we can, providing the best performance, threading, and memory utilization. Second, we want to be the best JVM language we can, providing access to all the libraries you are used to as a Java developer and fitting seamlessly into your Java world.
Satish Talim>> What are JRuby’s long-term goals?
Charles Nutter>> Long term, I see more and more Ruby developers choosing JRuby as their implementation of choice, and I see Ruby becoming a standard and common language for JVM platform developers to use. We’re also planning to keep up with Ruby 1.9’s new features (still in development) and always keep improving JRuby’s performance and Java integration capabilities.
Satish Talim>> What benefits do you think JRuby will bring to the Ruby and Java communities?
Charles Nutter>> For Rubyists, we have a high performance Ruby implementation with native threading and access to everything on the Java platform. For Java developers, we have Ruby, a beautiful and powerful language that’s a lot of fun to write. I think both sides get a lot out of the deal, and we’re trying to make JRuby a perfect combination of the best of both worlds.
Satish Talim>> Does JRuby mark the end of the road for MRI (the standard Ruby implementation)?
Charles Nutter>> Certainly not…and we always recommend that if MRI is good enough for their needs, there’s no reason to update. But if they need better performance, native threading, libraries only available on the JVM, or other such bonuses that JRuby offers, they certainly should consider JRuby. And we’re working hard to help folks make that transition when they’re ready.
Satish Talim>> Anything else you would like to share with the RubyLearning participants?
Charles Nutter>> I’m very excited to hear about more and more developers taking an interest in alternative languages on the JVM. I think it shows what we’re doing with JRuby and what others are doing with Groovy and Jython and Scala is the right way to go. With help from folks like the RubyLearning participants, I think we’re making a better world for developers everywhere.
Satish Talim>> Thanks Charles for sharing your views with the RubyLearning participants.