Friday, October 05, 2007

With Ola Bini’s JRuby book out, I thought that I should take some time to talk to him about it. Read on to see what Ola has to say about JRuby, JRuby books, and other languages.

You’ve written the first JRuby book. Obviously, it couldn’t cover everything, so what JRuby books are you hoping to see come out over the next year or so?

Ola Well, there are two different books that are needed. The first one would be a general JRuby book that covered most of the things people want to do with JRuby. Since my book was specifically focused on Rails, it doesn’t cover the full spectrum of interesting JRuby applications. So, a general guide – more or less an equivalent to Groovy in Action would be needed. (I know that at least one such book is in the works) Secondly, a JRuby cookbook would be very nice – showing people how to accomplish common and uncommon tasks with JRuby. Maybe a JRuby Recipes or the JRuby Way? =)

Books and language penetration are kind of a chicken and egg thing. What’s your impression of JRuby’s ‘real world’ use?

Ola This is a very hard question to answer. The interest in JRuby have picked up immensely the last few months though—after the 1.0 release more and more people have been streaming in to the community. Also, we’re seeing more companies that are working on applications using JRuby (both within ThoughtWorks and at other places).

How do you think your book will help?

Ola

I think it will make a fair improvement. As soon as a book on a subject comes out, the subject usually gains more penetration—so I’m positive.

Your book is mostly focused on Java users who will be picking up JRuby. How will it work for Rubyists going the other direction?

Ola Rubyists will be able to get going much quicker - since JRuby on Rails is Ruby on Rails this means that the initial hurdle is very small if you know Ruby and Rails. But there are still lots of things to learn for the Rubyist - including lots of things that are JRuby specific. Also, seeing the things you can accomplish by combining Ruby and Java will hopefully open the eyes of many Rubyists to exciting possibilities.

What do you wish you could have covered (or covered better) in your book?

Ola That’s a good question. I’m pretty happy about the current scope, but if
I could have put some more information in about deployment that would have been good. There is popping up new ways of doing it all the time with JRuby, and the subject needs coverage. That said, I cover it fairly well, but there are always more things to say about a subject like that.

What Rubyisms are going to make the biggest positive difference in the Java world because of JRuby?

Ola Just getting the message out there about a more functional approach, making good use of internal iterators and closures would make much Java code better too. Also, just seeing that there are valid alternatives to the XML centric Java way of doing things is very important.

What Javaisms are going to make the biggest positive difference in the Ruby world because of JRuby?

Ola Depends on what you mean by Javaisms. I don’t think the Java language has much to teach Ruby. On the other hand, Ruby will benefit immensely from the rock solid virtual machine, many of the management features of Java, and lots and lots of different things that the Java ecosystem does correctly.

Outside of Java and (J)Ruby what three languages do you think programmers should learn to round out their programming knowledge?

Ola Three languages that rounds out your knowledge is kinda interesting. It doesn’t matter that much which languages you choose—the important thing is that they embody totally different paradigms. I would recommend learning Common Lisp (for the LISP way of doing things, functional programming, macros, and a totally different Object System (CLOS)). Prolog also deserves mention as a good language to learn. The declarative style of programming twists your mind totally differently than functional or imperative programming, and the declarative style is also seeing a resurgence in domain specific languages. The third language should be OCaML – to see what real static typing is about. Also gives insight into other domains of functional programming, some pattern matching and other nice features.