Skip to main content

Beyond Java, but not beyond the JVM

Posted by johnreynolds on October 20, 2005 at 9:06 AM PDT

Bruce Tate's views on Java are always noteworthy. Bruce has a low tolerance for things that don't quite make sense, and he's adept at capturing the essence of the problem in a clever phrase or analogy... I always think of Bruce when I am in a restaraunt and see Elephant on the menu ;-)

I've yet to read Bruce Tate's new book, Beyond Java, but I think that I already get the point from reading articles that have accompanied the release.

Java and web development grew up together, but Java has never really been tailored for web development. It's a general purpose language that is good for many things, but not particularly great for generating browser-based applications.

This puts Java at a distinct disadvantage in terms of ease-of-use when compared to web-UI-only languages such as PHP. Not really a big surprise.

The big surprise is that nobody (that I know of) has built a web-domain-specific language on top of the JVM. Perhaps JSP was a step in that direction, but when you compare it with Ruby on Rails it's just not in the same league.

Java's web-based-ui impedance mismatch is mirrored on the desktop front. Hans Muller shared with us the good news that Swing is now the Dominant GUI Toolkit, but the blog also pointed out that WinForms was the previous king-of-the-hill.

WinForms is a domain-specific toolkit for building form-based applications. Form-based applications aren't sexy or exciting, but they are what most businesses need, so it's no surprise that a form-base toolkit was the reigning number one.

Java may lose its dominance as our day-to-day language of choice, domain-specific development environment/tools are a natural progression, and something that we should embrace. What we shouldn't embrace is the demise of the JVM. The JVM can support any number of languages, as Javascript (Rhino), Jython, and Groovy demonstrate. There is no need to throw this baby out with the bath water.

Related Topics >>