Mingle from ThoughtWorks is Big Win for JRuby
Today at Sun’s CommunityOne conference, ThoughtWorks Studios' announced that their upcoming Agile IT project management application, Mingle, will be the world’s first commercial application to run on JRuby. Actually, it may be the first commercially distributed Ruby on Rails-based product.
According to ThoughtWorks, there were a number of motivations for launching Mingle on JRuby. First of all, it streamlined the deployment process across their target platforms. Mingle is a web-based application that will be available as an external hosted application (ASP model), but it will also be licensed commercially and distributed as an installable package.
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.
The downloadable version of Mingle will be distributed as a simple installer for Windows, a simple .app (drag, drop, double-click) file for Mac, and an .rpm/.tgz for ‘generic’ Unix. Enterprise customers will have the option of deploying Mingle to their existing production systems:
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.
Sheer innovation also had something to do with the decision. According to Chad Wathington, VP of Product Management at ThoughtWorks Studios, "Obviously ThoughtWorks likes to push technical boundaries and there's also the coolness factor." As far as anyone can tell, Mingle is definitely pushing the boundaries of commercial applicability of JRuby.
Mingle represents ThoughtWorks' first foray into commercial product development for the masses. It was built using Ruby on Rails by a small, focused development team based in Sydney, Australia, led by senior ThoughtWorks technologists David Rice and Jon Tirsen. Everyone involved has been very vocal about the benefits of using Rails:
“Ruby on Rails 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.”
Internally, Mingle uses Java technologies for both the web server (Jetty) and database (Derby). Performance has not been a major concern. The current runtime easily supports hundreds of concurrent users with a simple cluster, and JRuby performance has been getting faster all the time. According to the team, experimental deployments have included 10 JRuby interpreters running in a single JVM process.
JRuby core developer Ola Bini is due to start working full-time for ThoughtWorks in June, where he will continue to work on JRuby and support internal ThoughtWorks JRuby-related initiatives, such as Mingle.
ThoughtWorks feels strongly that they are paving the way for many JRuby applications to come. Mingle certainly acts as strong supporting evidence to the following claim, made by Jon Tirsen in a moment of (perhaps some degree of) hyperbole:
“JRuby is ready for prime time!”