Developing with JRuby is interesting, but it is also something of a challenge to deploy. If you develop applications deployed with JRuby Rack, I’m guessing that you probably don’t bother starting a JRuby Rack web application as a part of your development cycle. In my experience, JRuby Rack is great, but the startup times are challenging. The solution? (It isn’t satisfying…) Use C-Ruby during development and start Rails with “ruby scripts/server”. If you do this, you are forced to either avoid Java-Ruby integration features of JRuby, or you are forced to avoid anything interesting during your development cycle.
Why bother? If you are deploying a massive, “enterprisey” application, you’ll use JRuby because it simplifies the deployment story. Your operations team wants a handful of WARs, they know Java. Believe it or not, this is a compelling reason to select a technology. The line between operations and development is covered in carnage, and you certainly don’t want to be “that developer” that forces the operations team to adopt mod_passenger or mongrel only to be getting 3 AM calls from someone not particularly interested in the compelling reasons to adopt a different platform. (I’ve been there.)
Nutter’s Duby language was something he’s mentioned a few times on Twitter. I haven’t spent too much time looking at it, but it looks like a promising alternative to Groovy. What interests me about this project is that it offers a Ruby-ish language syntax that can spit out bytecode. No need to carry around JRuby dependencies and rely on hackish Java-Ruby hybrids just to get things to cooperate. He’s evidently changing the name to Mirah, check out the Mirah project page for more information.
And if you are too lazy to click on that Mirah project page, here is Nutter’s presentation from Rubyconf 2009 on Duby: