coding

Java is dead – long live the JVM

I had an interesting meal last night with the ThoughtWorks delegation to JavaOne. They were in town in support of the news that Mingle is going to be launched on JRuby.

I’ve seen some demos of Mingle and it looks great, but of equal interest to me is the choice to release it on JRuby. This seems to be another step along the road of Java moving down the stack. Java was selected as the delivery platform because corporate IT understands how to deploy, integrate, support and optimize it; Ruby was chosen as the development language because of the productivity and expressiveness of the language.

I don’t want to knock Java – it’s provided my bread and beer for 10 years, but there are many strong arguments for using more concise and expressive languages to encode business logic.

So it looks as though Java is moving more into the space of an OS rather than a language for building business logic. Our illustrious founder, Roy, suggested that Java’s legacy will be the JVM – years have been spent optimizing it and making it run on many platforms. I would add to that the ecosystem of libraries integrating with a panoply of databases, messaging formats and middleware.

JRuby allows Ruby to leverage this whole ecosystem. Operations teams are completely comfortable managing Java installations – they don’t tend to care too much what’s in your WAR or EAR as long as they can monitor and configure the JVM, datasources, queues and other resources.

One question that springs to mind is whether this is just a temporary stage while the Ruby deployment stack matures or whether it will be a lasting situation. It would seem odd to need all the extra infrastructure, but the current situation is that even though many apps are deployed on highly expensive Java containers (think IBM and BEA) most of them will still sit behind Apache. They do this because Apache is more trusted to manage security, redirection, static content delivery and various other web fundamentals.

So maybe the new stack will be:

  • Apache handling the HTTP piece
  • A Java container handling the Integration piece (with or without a captial E in front)
  • Ruby (or other languages leveraging JSR 223) to handle business logic

It will be interesting to see where this goes, but I can’t help feeling there’s one too many pairs of hands in that stack.

One thought on “Java is dead – long live the JVM

  1. Nice combination. Groovy, JRuby etc., for business logic. EJB, POJO’s can be a nice fallback option.

    Will Mingle ever mingle (pun intended) JRuby and Java?

Comments are closed.