Year in Review: Java development in 2009

opinion
Jan 15, 200917 mins

New directions for the Java platform

We won’t see a new Java SE platform release in 2009, but stop your grumbling: the Java ecosystem is still evolving in interesting new directions. Andrew Glover welcomes in the new year with a look at the forces most likely to shape change, challenge the status quo, and redefine Java technology in the year ahead.

Prediction is the art of making an educated guess about what the future may hold. When it comes to a technology like the Java platform, the “educated” aspect comes from studying the past and identifying the patterns that run deeper than mere fad. So far, JavaWorld’s Year in Review series has looked closely at events and trends that defined Java in 2008 — the language, the platform, and supporting tools. In this last article in the series I’ll look forward, to what we can expect from Java technology, and the Java industry, in 2009.

Based on these clues, and some key indicators from recent years, it is easy to see that Java technology is far from sitting still. In fact, as I suggested around this time last year, Java is an evolving ecosystem — and if anything the pace of its evolution appears to be picking up. The outlook for Java in 2009 is intriguing, to say the least.

Sun sees a future in software

The closing months of 2008 brought to light important issues related to Java’s corporate progenitor and occasional gate keeper, Sun Microsystems. First, as most know, Sun had a poor year on the financial front. The company generated hefty revenues but profits fell drastically, culminating in a series of layoffs late in the year. The downsizing sent a proverbial shudder across the Web, with some pundits predicting that Sun might be acquired. While the company continues to wrestle with questions of revenue and identity, the developer community is left to wonder what would happen to Java, should such a deal materialize.

A few likely suspects have surfaced as potential buyers, namely IBM, HP, Fujitsu, and (amusingly) Microsoft. What any of these potential suitors would do to Java is something of a crapshoot. IBM’s track record in supporting Java is unparalleled, but you could say the exact opposite of Microsoft. Two things are important to remember in the face of these buyout rumors: One, they come around every three years or so, so caveat emptor. Two, Java is much more than a language, or even a single platform, anymore: it’s a veritable ecosystem, spawning many types of businesses in a myriad of verticals. As such, Java today is by no means tied to Sun’s fate. Even if Sun did release Java to another company in 2009, I doubt the impact on the technology would be great.

More interesting than buyout rumors is the fact that Java technology may be Sun’s best bet for success, going forward. Signs point to the possibility that if the company has a future it will be in software. CEO Jonathan Schwartz has stated that Sun is “no longer simply a workstation company,” and in 2007, Sun changed its sticker symbol from SUNW (for Sun workstations) to JAVA.

NetBeans comes of age

The IDE wars appear to be coming to a new head, as NetBeans becomes a formidable contender in the enterprise development space. NetBeans matured dramatically in 2007 and 2008, incorporating new tools support for Groovy, Ruby, Python, and even JavaFX. Given Sun’s newly bullish outlook on software and platforms, we can anticipate further enhancements and tools for NetBeans 6.5x in 2009.

Sun has also recently restructured into two new operating units in “recognition of the comprehensive role software plays in the company’s growth strategy.” One new business unit is centered on application platform software, which (according to a November 2008 press release) “will build on Sun’s open source leadership position to capitalize on the global market’s demand for open application platforms for everything from databases to business integration services on servers, desktops and handheld devices.” (Think MySQL, GlassFish, and pretty much anything related to Java.) Another unit is focused on cloud computing and developer platforms, which “will build upon Sun’s existing online developer community … to firmly establish the company as a leader in cloud computing and grow this area into a significant driver of future revenue.” The NetBeans IDE is, of course, a core aspect of this strategy.

Partners and acquisitions

While Sun’s recent shifts have led many to speculate on whether we’re seeing a giant’s slow decline, it bears mentioning that the company still generates revenues in the billions, and has plenty of money in the bank. It’s likely that Sun will push hard on the software front in 2009, and it won’t be surprising if it continues to acquire companies (and related technologies) that further its software strategy. If I had to make a guess, I’d look for Sun to partner with other companies playing in the rich Internet application (RIA) space.

Another interesting target for Sun is the company behind what’s arguably the most popular software platform for enterprise Java developers today: Spring. In late 2008, SpringSource released a study (in cooperation with Evans Data research) stating that “73% of all organizations responded that they use Spring or plan to use Spring within two years,” and (stunningly) that “83% of organizations with 500 or more developers are using Spring today.” Any company fighting for developer loyalty in the Java enterprise market would pay a hefty fee for those data points. Although SpringSource’s financials are private — and, arguably, acquiring the company doesn’t open up new markets for Sun (Spring users already use Java, after all) — a partnership between the two companies could give Sun a way to capitalize further on Java itself. Sun traditionally has made money by licensing Java and its certification process, but certainly not from supporting the language or widely adopted tools that run on it. (See “Lightweight deployment heats up” for more about what to expect from SpringSource in 2009.)

Sun’s open source strategy

Sun’s acquisition of MySQL in early 2008 is in keeping with the company’s renewed commitment to software. It was also one of several indicators that, after years of resistance, the company has strongly embraced open source. Sun  GPLed Java SE and ME in 2006 and currently supports the open source GlassFish and OpenJDK projects, as well as OpenOffice.org. Company insiders have also indicated that its newest (and shiniest) project, JavaFX, is eventually headed toward being open source.

Spring and Groovy in 2009

Spring adoption will most likely continue to soar in 2009, which is good news for developers using Groovy and Grails. SpringSource acquired G2One (and the brains behind both Groovy and Grails) in late 2008. How the company will leverage the popular language and framework remains to be seen. SpringSource CEO Rod Johnson has acknowledged that a rationale for purchasing G2One was the explosive growth in downloads of the Groovy-based Grails platform.

In addition to acquiring and promoting open source technologies, Sun also hired talented developers from the open source JRuby and Jython projects in 2007 and 2008. We may see this trend continue in the year ahead, even despite the company’s economic trials. Having developers working on JRuby conceivably brings Ruby talent and applications, such as Rails, to the JVM. Jython has the potential to do the same by leveraging the Python Web application framework, Django. If the strategy holds, it may explain why languages like Groovy, Scala, and Clojure haven’t been, and won’t necessarily be, targets for Sun. Unlike Python or Ruby, the core developer base for these languages already is working on the JVM. Instead, Sun could continue to pursue developers working on alternate languages not directly tied to Java. Languages with substantial momentum and a bridge to the JVM could very well be on Sun’s hit list in the coming year.

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.

One or two new languages will probably emerge in 2009, but chances are most developers will essentially ignore them, and focus on the existing options instead. Groovy and JRuby will continue to grow in popularity, especially given that each language has a commercial backer. (JRuby’s main contributors are Sun employees — remember, Sun’s a software company!). Newer languages like Scala and Clojure will continue to be much discussed, but will most likely be adopted by a select few organizations. The rest of us will continue to ponder them from afar.

RIA: Let the battle begin … er, continue

Sun finally released the JavaFX platform in late 2008. JavaFX isn’t new but many in the community felt that the 1.0 release came late to a territory already staked out by Adobe and Microsoft. Nonetheless, Sun will continue to focus heavily on the JavaFX platform in the year ahead, and I suspect we’ll see more and more applications and companies successfully leverage this technology as well. RIA itself is the killer application in this space, with developers across the globe clamoring for technologies that hasten the development of slick, rich Web applications. The skyrocketing popularity of Adobe’s Flex — the leading choice for RIA development for Java developers, as opposed to Microsoft’s Silverlight — also attests to this.

Android: Slim hope for Java mobile

Java developers continue to wait for a consumer-friendly Java mobile platform to call their own. In the meantime, what has ignited the mobile market is the iPhone, which does not support Java-based apps. The current bright spot on this grim horizon is Google’s Android platform, which does support Java and seems to be gaining popularity. Java mobile developers looking for opportunities could find them on Android in 2009. It will be an uphill battle, competing with the iPhone. It’s also an open question whether smartphone users will adopt Android in significant numbers.

Adobe does have a head-start in innovation, market-share, and mindshare. Count on Sun trying to counter Adobe’s advantage by bolstering JavaFX’s position, in part by focusing on supporting development tools such as NetBeans. It’s likely that Sun will also put some muscle behind Eclipse JavaFX tooling.

It’s without a doubt that RIA will continue to be hot in 2009, especially now that Sun has entered its own 500-pound gorilla into the fight. This is good news for developers, of course. Competition encourages innovation that results in easier tools and faster development times. Watch for both the commercial and open source communities to innovate in the area of testing RIA applications, which has been somewhat problematic in the past.

Up in the clouds

Cloud computing gained buzzword status in the closing months of 2008. Using distributed processing resources to leverage underutilized machines or capacity is by no means new, but 2009 may be the year it finally gains prominence, driven by an economic climate that requires examining (and reducing) IT costs.

Google and Amazon are the current major players in this space, and Sun has announced its intention to join them there, with its new cloud computing division. Microsoft is also in the clouds with its nascent Azure platform leveraging .NET. Google’s cloud infrastructure doesn’t support Java, instead requiring developers to write applications in Python. (Sun’s move to embrace Python could have been a preemptive strike to bring Google App Engine platform developers to the JVM.) Amazon Web Services does support Java, however, and arguably leads the materialization of low-cost cloud computing for the masses.

Concurrency on the back burner

More developers are grappling with the challenge of writing applications for multicore machines, but it seems unlikely that we, as a community, are ready to put concurrency on the front burner. One of the factors keeping concurrency in the background is the new proposed timeframe for Java SE 7, which is now slated for release in 2010. The new platform release is expected to include utilities and improvements for easing concurrent programming. Until then, most of us will continue to create ad-hoc solutions as we need them. It will be interesting to see what effect the coming concurrency crunch has on languages like Scala, Clojure, and Erlang, all of which are said to be concurrency friendly.

Sun actually has been in the clouds before with its now-discontinued Grid Compute Utility service (launched in 2006), which let companies buy computing power from Sun’s data centers at a fixed hourly rate. But cloud computing is a mix of both an infrastructure and supporting software tools and environment. Amazon and Google are veritable infrastructures themselves, whereas Sun isn’t. It will be interesting to see whether Sun can get the jump on these competitors on the other side of the house.

We’ll see a lot of jostling for cloud market- and mindshare throughout 2009. Java developers will likely continue to work primarily with tools and applications that take advantage of Amazon’s Web services (particularly EC2) infrastructure, however.

 

Heavyweight app servers vs. lightweight deployment

It makes sense for enterprise shops embracing the pay-as-you-go model of cloud computing to also move toward lightweight, take-what-you-need application deployment platforms. Applications built using Rails, Grails, Django, or Spring can be deployed onto heavyweight app servers like Oracle WebLogic or IBM WebSphere, but unlike Java EE apps, they don’t have to be. Hibernate has compounded this trend in its emergence as the ORM tool of choice: EJBs can’t run in Tomcat, but that’s no obstacle to shops using Hibernate, which doesn’t require an application server.

OSGi in the middle

While the controversy around OSGi appears to be on the wane, we’re just beginning to see the kinds of deployment solutions that will emerge with OSGi’s plug-and-play architectural style at center. SpringSource dm Server is an explicitly modular, lightweight, OSGi-based application server that will compete head-to-head with more heavyweight alternatives such as JBoss AS, Oracle WebLogic, and IBM WebSphere — all of which also support OSGi.

We’ll see more interest in lightweight deployment alternatives, and more concrete server and platform solutions, in 2009. Open source, lightweight containers like Tomcat and Jetty will continue to be immensely popular, and SpringSource dm Server, released in late 2008, will also make plenty of waves. The confluence of economic hard times, rising interest in cloud computing infrastructures, and real alternatives for lightweight application deployment will be one of the driving forces for innovation in the year ahead — definitely something to look forward to.

Here’s to a banner year!

The coming year will be interesting indeed, defined by Sun’s renewed commitment to software, greater mainstream adoption of alternate languages (and killer apps) for the JVM, and a surge of interest in pluggable, lightweight cloud computing infrastructures. As companies large and small feel the economic squeeze, we can anticipate fewer dollars being spent on commercial software and related hardware infrastructure, and more interest in innovative open source solutions. It could be a banner year, especially, for lightweight, open source Web deployment alternatives.

On the alternate language front, we’ll probably be hearing a lot more about Groovy and Grails (now backed by SpringSource), and JRuby will continue to shine for Java developers seeking a Rails-ready alternative. Newer functional and concurrent programming languages like Scala, Clojure, and Erlang will continue to pique our interest, but are unlikely to see widespread adoption until concurrency moves to center stage (or code red), which has not yet happened.

Perhaps one of the most intriguing players this year will be Sun Microsystems, as it seeks to reinvent itself as a software-focused company with strong claims in both RIA and cloud computing. Sun faces tough, entrenched competition in both of these arenas and only time will tell whether it prevails. In the meantime, the Java language and platform will continue to evolve, with that growth largely spearheaded and supported by open source projects spanning a wide range of interests.

So there you have it, a passel of predictions, my best guesses for 2009. Be sure to let me know what you think in the comments section below — especially if you have your own predictions for the coming year. One thing we do know for sure is that time tells all. And, of course, 2009 will bring a few surprises, just as every year does. Anything else would be … well, surprising.

Acknowledgments

I’d like to thank the following soothsayers whose willingness to prognosticate helped shape this article: Ted Tanaka, David Bock, Jared Richardson, John Brothers, Guillaume Laforge, Patrick Lightbody, Andres Almiray, David Hodge, Jason Huggins, Eric Lefevre, and JavaWorld editors Athen O’Shea and Eileen Cohen. Thank you all for your time!

andrew_glover

When Andrew Glover isn't listening to “Funkytown” or “Le Freak” he enjoys speaking on the No Fluff Just Stuff Tour. He also writes articles for multiple online publications including IBM's developerWorks and O'Reilly’s ONJava and ONLamp portals. Andrew is also the co-author of Java Testing Patterns, which was published by Wiley in September 2004; Addison-Wesley’s Continuous Integration; and Manning’s Groovy in Action.

More from this author