Thursday, June 28, 2007

Java Lives, My Apologies to Sun :)

Well there have been a few comments that I owe an apology to Sun for all of the "badmouthing" I did to Java a couple of years ago. After 10 years of working on Java at startups like JRad and NetDynamics and at the mothership Sun itself, I saw that Java was not responding to market trends and was in a slow, lumbering death spiral. I definitely did criticize Java, particularly in three areas:

#1 - Open Source

I have stated emphatically for years that Sun should open source Java, for a myriad of reasons. There was a lot of talk about fracturing Java which in reality was just talking points, and in the end Sun did open source Java and is now making nice with Linux distributions. Cudos!

#2 - Scripting Language Support

I feel strongly that loosely typed languages are much more suited than strongly typed languages for a lot of mainstream application development, particularly when dynamically building HTML or working with loosely structured data like XML. This is an argument that I had when I worked at Sun, and that I continued after I left Sun. Sun has recently helped out with JRuby thanks to Tim Bray and has now shipped a scripting language of its own, JavaFX. Again, Cudos!

#3 - Lightweight Servers

The Java enterprise edition is cumbersome, obtuse, and just too much for a lot of applications, what I dubbed a "muffin" architecture back in 2003. The alternative is a "donut" architecture of grids of lightweight servers, which the open source community has created with projects like Spring, Hibernate, and Mule. On this one Sun has had no leadership since Tomcat, and server side Java is essentially fractured with all leadership coming from a myriad of open source projects, with the JCP playing catch up.

What has happened in the marketplace? .Net has become a viable competitor and Adobe dominates the rich client space, with Microsoft as an up-and-comer. Virtually all of the smart, innovative Web 2.0 startups who choose a clean slate have gone the LAMP or Ruby route. The only thing that has prevented this mass defection from happening in the enterprise is that lightweight Java became a viable alternative and the switching cost away from Java was too high. The past 5 years have not been good for Java, mainly because it was so slow in responding to the three trends listed above.

So do I feel bad for having criticized Java? Not at all. I think that the blogging community played a big part in changing the direction of Java towards open source and scripting languages. I did have a bit of fun with it all, for which I do apologize. In hindsight, perhaps I should have just kept my mouth shut and LAMP would have had more traction in the enterprise! :)

No comments: