Published on ONJava.com (http://www.onjava.com/)
 See this if you're having trouble printing code examples

ONJava: 2005 Year in Review

by Chris Adamson

You might argue that 2005 was a slow year for Java. After all, there was no major release from Sun, either of Java SE (Mustang is expected in mid-2006) or of J2EE (5.0 continues on track for an early-2006 release). As we noticed in our coverage of JavaOne 2005, the conference was one of road maps, not releases. And after an uptick last year, Java book sales are off 4 percent this year, according to BookScan data cited in a Tim O'Reilly blog entry.

Yet despite all of that, I don't think you can say Java had a "slow year." More than in years past, this has been a year when the Java world clearly extended beyond the lavender-and-gray confines of Sun, when the story was increasingly shaped by outsiders. That makes it a great time to be a Java programmer, of which there are quite a few. After all, downtick or not, O'Reilly notes that "Java is still by far the most widely used programming language, if book sales are any indication, about 2x C#, 2.5x PHP, 4x Perl, and 9x Ruby/Python."

The Rivals

The ascendency of rival languages to Java has been one of the most interesting stories in the Java world this year, because it's gotten Java developers talking about what they do and don't like about Java, and what they want from it. Bruce Tate's book Beyond Java is a provocative declaration that Java's time must come to an end eventually, perhaps sooner rather than later. In the ONJava article Technologies to Watch: A Look at Four That May Challenge Java's Development Dominance, Tate looked at dynamic languages, continuation servers, convention over configuration, and metaprogramming. Java developers have taken up the challenge, as many new applications, libraries, and frameworks are taking inspiration from these developments and bringing them to Java--Trails, a framework clear about its inspiration from Ruby on Rails, is one such example. The specific merits of Ruby, vis-à-vis Java, were the focus of Ruby the Rival, in which top developers and writers looked at what's happening in the Ruby world and considered its applicability to Java.

New Stuff

Related Reading

Java in a Nutshell
By David Flanagan

One of the things people look to ONJava for is coverage of emerging Java tools, applications, and frameworks. This year, one of our most popular articles encouraged readers to try Using Drools in Your Enterprise Java Application, in which Paul Browne showed how to use a rule engine as the business logic middle tier between the front end (JSF, Spring, etc.) and the service layer (Hibernate, DAO, etc.). Some of the "official," JCP-blessed frameworks came into their own this year, which gave us a chance to help you understand What Is a Portlet and How to Upload Files with JSF and MyFaces.

AJAX may not be a specific library, or even necessarily Java, but this approach to web client development looms large in the future of many projects that want to deliver a better user experience. Brad Neuberg's AJAX: How to Handle Bookmarks and Back Buttons offered a "Really Simple History" framework to allow single-page AJAX applications to better tolerate user navigation.

Of course, it's not just about the libraries and frameworks. Perhaps more important is the sea change of new programming styles. In 2005, we saw more genuine interest in, and results from, service-oriented architectures (SOAs). Debu Panda started with An Introduction to Service-Oriented Architecture from a Java Developer Perspective, and followed up with the essentials of Constructing Services with J2EE.

Many of the official standards lean towards RPC-like calls for web applications, but there's an alternative approach: in The REST of the Web, Jason R. Briggs made the case for the simple and clean approach of Representational STate Transfer, and showed a Java version of its ideals.

Another approach is the idea of component-based development, in which a set of classes and interfaces in a distributed environment offers an external API to meet some set of requirements. Palash Ghosh explained and demonstrated it in Java Component Development: A Conceptual Framework, and we revisited the idea in the cross-posted java.net article Component Inheritance in EJB 2.0 by David Musicant.

Finally, we took a new look at persistence strategies with Lightweight R/O Mapping, in which Norbert Ehreke showed off a framework that reverses the usual object-relational mapping, letting the result set create the class. In the same spirit, Hibernate Class Generation Using hbm2java shows how to generate Java classes from Hibernate mapping files, rather than the common practice of using XDoclet to create the mappings from the Java classes.

No Snoozing for Hibernate

Hibernate remains one of the most popular tools in the enterprise developer's repertoire, and it will be interesting to see if the much-simplified EJB 3.0 can do anything to dislodge this now-entrenched persistence framework. For those late to the party, James Elliott explained What is Hibernate. For the more daring, Dai Yifan showed the power of Hibernate 3 Formulas, while Jason Lee made the case for casting off the application container in Hibernate for Java SE.

Spring-ing to the Defense

No article published this year has generated more talkback comments than Michael Juntao Yuan's POJO Application Frameworks: Spring vs. EJB 3.0, in which he compared the two frameworks in terms of how they allow you assemble services together. The article came down somewhat in favor of EJB 3.0, largely due to its use of formal JCP standards, which brought an outcry from Spring fans. The Spring community is large and vocal, and Spring may well be the de facto standard for enterprise application development in 2006; it topped the list of topic requests in our reader survey results and was pegged as the second most-likely-to-succeed technology for the next 12 months.

Several of our most popular articles in 2005 were on Spring. Bruce Tate offered up Five Things I Love About Spring, the fifth of which is the vibrant developer community. "The Spring community makes using the framework much easier," he writes, adding, "I can't find a community for any other lightweight container that comes close." We also published Wire Hibernate Transactions in Spring, in which Binildas Christudas showed how to bring the popular persistence framework to Spring.

In Eclipse's Shadow

Our survey showed that a whopping 76 percent of you are using the Eclipse IDE, making it one of the most important tools in the Java realm. We responded with a significant commitment to Eclipse coverage, including Emmanuel Proulx's three-part series (parts 1, 2, and 3) on Eclipse plugin development. Deepak Vorha checked in with two articles on Eclipse configuration, Configuring Database Access in Eclipse 3.0 with SQLExplorer and Configuring Eclipse for Remote Debugging.

James Elliott, author of Hibernate: A Developer's Notebook, introduced the options for Working with Hibernate in Eclipse, including Hibernate Synchronizer and other plugins. Looking to the future, Lawrence Mandel and Jeffrey Liu took a look at the up-and-coming Eclipse Web Tools project.


We knew that Ant was still popular: the survey showed 90 percent of our readers using it. Still, we were surprised to find that there's still more to the Ant story, that there's more you can do with it than just crank out your builds. Les A. Hazlewood's An Ant Modular Build Environment for Enterprise Applications was a remarkably popular article that showed how to exploit the <ant> task to break your build into manageable, interrelated pieces. Steve Holzner's book excerpt "Developing for the Web with Ant" (parts 1 and 2), showed off Ant's abilities for building and deploying applications to Java app servers.

Up Next?

2006 promises to be a year of major developments in Java, with the expected release of both Java EE 5 and Java SE 6. The rest of the Java world continues to grow, as seen by the recent milestone that Java projects have displaced C++ as the most popular development language on SourceForge. Open source Java development also abounds on sites like java.net and within the Apache Software Foundation, which recently hosted the ApacheCon 2005 conference, at which it offered an update on the development status of Harmony, which aims to be a compatible, Apache-licensed Java SE implementation.

ONJava will continue to track the developments of greatest interest to enterprise Java developers, and each week we'll try to bring you new and novel material to help you succeed in your development, interesting ideas that you can work with, and hopefully a few surprises to keep you on your toes. Thanks for your readership and support in 2005, and best wishes for 2006.

--Chris Adamson
Editor, ONJava

Chris Adamson is an author, editor, and developer specializing in iPhone and Mac.

Return to ONJava.com.

Copyright © 2009 O'Reilly Media, Inc.