Follow-up on my presentation on JRuby

Me, gesticulating vehemently I’m very pleased! My presentation went very well, the audience was very receptive. We had some great questions and interactions during the talk. Great fun! Here we can see my neck-twisting setup and me, gesticulating vehemently.

So if you want to check the presentation again for some reason, here it is: JRuby - On and off Rails.

Also available is my take on Nick Sieger’s, Rails performance numbers.

I suppose some of you might be interested in my other references, as well. So here’s a recap of the links I mentioned at the end of the presentation.

The people

Charles Oliver Nutter works for Sun, he’s the main driving force behind the compiler, among other things. If you’re interested to hear about easy bugs to fix in JRuby, he posts a list once in a while.

Ola Bini works for Thoughtworks and he also works on JRuby full time. His recent feats include speeding up the regex implementation of JRuby.

Nick Sieger also works for Sun, but his job is on the user end of JRuby. He contributes to JRuby as well, however. And by the way, check out the follow-up on the talk he and his team gave at RailsConf. The article discusses implementing some parts of the model of his application as RESTful services, thus giving them more flexibility for scaling. The WAR file deployment approach is mentioned as a tool that helps manage all those independent Rails instances.

Last but not least, Thomas Enebo, also hired by Sun to work full time on JRuby. During the presentation I mentioned that his blog was less technical than the other guys. Turns out this feeling was largely based on the activity on his blog before summer. Recently he posted some very interesting posts on JRuby and Ruby. Looks like I have some catching up to do :-)

The project

The official JRuby site is hosted on codehaus. While the official wiki is on Charles Nutter’s personal site for now.

JRuby on Rails

For 2 good tutorials that take you through the steps of trying out JRuby, go see on ADS’ blog:

Getting JRuby and Rails running. Deploying to Glassfish. Theirs posts are pretty detailed, but since things are moving so fast in the JRuby world, some of the details are a bit out of date already :-) In it they use Goldspike to generate their WAR archive, just like I did. As I mentioned however, a post by Nick Sieger introduced me to warbler as another very promising replacement to Goldspike. In fact, as Nick describes warbler, I fully expect to try it and stick with it instead of Goldspike. Definitely worth a try.

Check out the Glassfish gem for a better integration of Glassfish in your Rails workflow. I haven’t tried it yet, so I can’t elaborate on it.

The 2 Java web servers I used are:

Jetty, the small, unintrusive yet very scalable web server. I likened it to WEBrick in that it can be used to try out our WAR file with absolutely no fuss. Which is not to say that it can’t be used in a production setting.

Glassfish, the full-featured server with the admin interface. This is the server that ended up being about as fast as the MRI/Mongrel combination, in the performance comparison.

If you’re interested in a JRuby/Mongrel setup, the one which ended up being the fastest in the comparison, check out this post*, mentioned by Nick Sieger, and this post by Ola Bini.

JRuby off Rails

For those that were insterested in the non Rails bits as well, I talked about an unintrusive plugin that allows you to create Swing gui apps, I mentioned (and stumbled over the name of) Profligacy. It’s been created by Zed Shaw, the creator of Mongrel.

I also talked about using JNA to reuse existing C extensions for Ruby, which do not have a JRuby equivalent yet.

I have to stop and go to work now

Hey, I wanted to make this a short post. Looks like I failed :-) If I forgot something of if you have questions, don’t hesitate to comment. I’ll get back to you and update this post, if necessary.

As for me, I might help Carl by checking out whether JRuby could be a good fit for Defensio. I’m looking forward to that, I think it’s a great real world project to dive into JRuby head on. Of course I’ll report back and contribute, based on my findings.

*Sorry, the JRuby/Mongrel link seems dead as I’m posting this. I leave the link in case the problem is temporary.