Year in Review: Java development in 2009

New directions for the Java platform

1 2 3 4 5 Page 3
Page 3 of 5

Alternate languages and the 'killer app effect'

Unless you've been coding in a cave, you are aware of the buzz surrounding alternate languages for the JVM, particularly Ruby, Groovy, JRuby, Scala, Clojure, and Jython. Given the collective excitement over alternate JVM languages, it is a safe bet that 2009 we'll see confidence in alternate languages continue to increase in 2009. We can also look forward to more dynamic-language tools and frameworks that address developer's needs in unique ways.

The two key players in the alternate language space currently are JRuby and Groovy. A factor in the success of these two language (among the many options) is the so-called "killer application effect" -- meaning that a language can't reach critical mass until it offers a compelling application that requires its use. The initial killer app for Java was the applet, followed by the venerable servlet. JRuby's killer app is Rails, and Groovy's is Grails.

Don't forget about JavaScript!

While underhyped in comparison to newer languages, JavaScript is the reigning king of dynamic languages, and will be so for the foreseeable future. As the popularity of RIA continues to swell, so JavaScript's pervasiveness will increase. If you're engaged in Java Web application development and you don't know JavaScript by now, 2009 is probably the year to learn it.

Jython is a more mature language than either JRuby or Groovy, but it appears to be the exception (so far, at least) that proves the rule. Python enthusiasts will quickly point out that Django is as powerful as Rails or Grails, but it does not yet work with the current production release of Jython. It is easy to conjecture that the Java community has been correspondingly slow to embrace the language.

That said, I've observed an uptick in Jython presentations at various conferences since Jython 2.2.1 came out in 2008. Add in Sun's more formal embrace of Python, and you might expect a Jython groundswell -- eventually. (Getting Jython to work solidly with Django is slated for the next release -- Jython 2.5, now in beta.)

Two more languages that are up-and-coming in 2009 are Scala and Clojure. Neither has yet revealed a killer app, so it seems unlikely that either will reach critical mass this year. Instead, adoption is likely to continue at a gradual pace.

On the burden of choice

Too many options can lead to market segmentation followed by stasis. Rather than a field defined by a few quality players with large followings, we end up with myriad small communities that are unable to gain significant mindshare. We've seen this in the arena of Java Web frameworks. Some years ago, there were only a handful of Web application frameworks, which made it simpler for a single framework (Struts) to emerge as the market leader. Today, we have a very different scenario, with a plethora of Web application frameworks and no clear winner. (Tim O'Brien wrote about this situation in 2006, and it's arguably unchanged.)

The polyglot programmer

The term polyglot programming isn't new (it was popularized by Neal Ford), but the concept certainly is coming of age. One of the notable trends of 2008 was was the gradual redefinition of Java as a platform for languages rather than a language itself. Given the explosive growth of alternate languages armed with tools, frameworks, and libraries, there are few excuses anymore for being a mono-linguist programmer. Learning at least one alternate language in 2009 will undoubtedly improve your application development. It could also expand your mental horizons, and it definitely won't hurt your career.

A "killer app" is a defining difference that simplifies the choice of one language when there are many to choose from. Syntax is another such factor. Whereas Jython's syntax is vastly different from Java's, JRuby's is more familiar. Extrapolating from this small observation, it's not hard to see why both Scala and Clojure have been slow to grow on Java developers, even despite their advantages. In fact, Clojure's chances of broad adoption could be stunted by the fact that it's a Lisp variant.

1 2 3 4 5 Page 3
Page 3 of 5