Mingle to run on JRuby
On the one hand, Mingle is targeted directly at ThoughtWorks' current market segment: large corporates with a vast, complicated, heterogeneous system landscape. These corporates are rightfully conservative in their technology choices. They already have so much on their hands they can't afford to struggle with the kinks of the latest and greatest technology. When they make a choice to stay with a platform they make it for decades, not for years or months.
On the other hand, as many of you know - or may have suspected - Mingle is built using the Ruby on Rails framework. This allows us to be incredibly productive and deal with complexity to a completely different degree than would have been otherwise possible. In the long term, this will allow us to deliver better features with a lower price, conclusively benefiting our customer.
Adding to this is the relative immaturity of Ruby. Ruby has been around for a long time (it is about the same age as Java) but because of its quite recent entry into the mainstream, it has not been utilized in all the strange situations that, for example, Java has been. In particular, the deployment story for Ruby on Rails applications is still significantly more complex than it should be. This is fine for a hosted application where the deployment platform is in full control of a single company, but Mingle isn't going to be just hosted. Not only is it going to need to scale ‘up’ to the sizes of Twitter (okay, that's wishful thinking and maybe it won't need to scale that much) but it's also going to need to scale ‘down’ to maybe a simple Windows XP machine with just a gig of RAM. On top of that, it's going to be installed by someone who doesn't understand anything about Ruby on Rails deployment and, well, possibly not much about deployment either.
We had a problem...
...and the solution is JRuby.
Mingle 1.0 will be released in June as a simple installer for Windows - a simple .app (drag, drop, double-click) file for Mac, or an .rpm/.tgz for ‘generic’ Unix (BYO Java VM). Regardless of the platform, it will install and run exactly the same way with very little configuration. Internally it will use Jetty as the web server and Derby as the database server.

Mingle running in JRuby
Mingle 1.1 released a few months later will also be delivered as a .war file that can be deployed on any of the popular Java EE application servers and using any of the popular database servers. This is required by our larger customers.

The Mingle JRuby launcher
None of this would have been possible without JRuby. We are incredibly grateful to Charles Oliver Nutter and his team. In particular Ola Bini has been doing an amazing job the last couple of months, and has been instrumental in ironing out the last couple of kinks of JRuby (and, yes, there were a few of those).
Mingle is the first big commercial application running on JRuby, but we are only paving the way for many to come.
JRuby is ready for prime time!
Comments > (HTML is allowed)
-
Mike RobertsMay 7th, 2007 @ 07:15 PM
Hi Jon, This is a very interesting development! You're absolutely right that this makes deployment of Rails apps much more corporate-IT friendly. I look forward to hearing more - keep blazing the trail! Mike
-
Satish TalimMay 8th, 2007 @ 07:35 AM
Great news. No wonder JRuby is Caffeinated Ruby!!
-
surMay 8th, 2007 @ 09:40 AM
Hey Jon, Thats really great! It is simply motivating to try out JRuby.
-
chris donnanMay 8th, 2007 @ 09:19 PM
I just wanted to pass along my excitement. Great work all around! -Chris
-
Evan LightMay 10th, 2007 @ 12:33 AM
Inspirational! We've only started using JRuby plus ActiveRecord-JDBC on a GIS project that I lead. Wonderful to hear that you've had such success with it!
-
DeepakAugust 6th, 2007 @ 10:37 PM
Had a quick look at Mingle. Could you guys quickly point out how you packaged the application (compiling the source, packing in Derby, etc). That would be a great article. Thanks anyway and congrats.
Sorry, comments are closed for this article.


