« While you're shopping for that display, throw in some RAM too | Main | A saner DRM scheme: marrying the media device and the cellphone »
September 14, 2006
Sun hires JRuby developers and wakes up to enterprise realities
Sun recently announced that they hired the chief developers of JRuby, a port of the Ruby programming language to the Java virtual machine. If this overture of Sun towards a non-Java language is any indication of future developments, backers of enterprise Java should be mighty pleased.
One of the things that has bothered me for a while about Java's platform philosophy is its dogma about everything being written in Java. Platforms in an enterprise setting tend to be heterogenous for a number of reasons. In a typical enterprise, where a variety of programming and scripting languages glue systems together into a cogent platform, Sun's official insistence on all-Java-or-nothing seems unrealistic at best and unnatural at worst.
Enterprise customers who wish to switch to a fully functional Java platform have two options: wait for Sun and the Java open source community to release Java libraries that do what you you need, or rewrite significant amounts of functionality in Java themselves, possibly mixing in several direct non-Java dependencies along the way to save time. The first option may be subject to Sun's exasperatingly slow Java Community Process. The second option negates the whole point of switching to a Java platform. To Java's credit, a significant amount of functionality available prior to its advent has already been ported to pure Java. But ask any software engineer and they'll tell you that Java isn't the best language for everything. A policy that officially supports only Java on the Java virtual machine ignores the reality of an enterprise—the mind-boggling heterogeneity in the kinds of technical tasks that need to be accomplished.
Microsoft .NET adopts a more pluralistic approach to languages on its platform. So long as someone makes the effort to write a platform-compliant compiler for a programming language, most of the existing libraries in that programming language can be adopted without too much effort. Writing a good compiler is harder than writing just any library, but the effort pays off immensely with regard to code reusability. More importantly, it is still less work than rewriting everything known to the industry in one language. Today, Microsoft .NET counts among its supported languages a systems programming language (C++), an object-oriented language (C#), a scripting language (IronPython), a functional language (F#) and even a dying language (COBOL). By embracing such a myriad of programming styles and languages, Microsoft .NET's approach reflects the reality of an enterprise better than a monolingual one.
If Sun has hired the JRuby developers because it has learned from Microsoft .NET's approach to programming languages, they are undoubtedly taking a step in the right direction. Before someone points out that I am ignoring Jython, a perfectly robust port of Python to the Java virtual machine, let me point out that Jython was never officially blessed by Sun. And we all know where Jim Hugunin, the creator of Jython, went. The Java platform could gain many more converts if it doesn't impose a reinvent-the-wheel-in-Java requirement. For this to happen, Sun could start out by officially bringing Ruby into the Java fold, along with other languages as time goes on. They could also (genuinely) open source Java platform specifications and let the open source community decide which languages get co-opted, as a recognition of its tireless efforts.
Here's to more announcements like this from Sun!
Posted by Vishy at September 14, 2006 08:40 PM