Java tools reign supreme

JavaWorld celebrates the leading Java tools

Page 2 of 2

Now that Java Web Start is included with every copy of the Java Runtime Environment (JRE)—an improvement added to version 1.2—Yuan's prediction could become a reality in that more and more desktops will have the technology already installed. In addition, version 1.2 includes auto installation on Windows. Connell explains that users can just click through one security dialog box to download Java Web Start and/or the JRE.

"What I love about Web Start is you get installation without it feeling like an installer," says ECA judge Steinberg.

Finalists:

  • InstallAnywhere 5, Zero G
  • InstallShield MultiPlatform 5, InstallShield

Best Java Book: Patterns of Enterprise Application Architecture, Martin Fowler et al., Addison-Wesley

The idea for Patterns of Enterprise Application Architecture originated during drinks between author, Martin Fowler, and David Rice, one of the book's contributors. At that time, Fowler had been consulting with ThoughtWorks, a company that wanted to sensibly design and build an enterprise Java application using EJB.

"Many of the guiding things that helped us with the design were experiences that we had in previous languages, such as C++, Forte, and Smalltalk, which brought home the fact that a set of common ideas underlies the design of these kinds of systems," says Fowler. After presenting these ideas at conferences, he and Rice discussed organizing them in a book. "In particular, we wanted to bring out the fact that these patterns really do exist across multiple implementation platforms."

The book's emphasis on underlying software ideas and patterns as opposed to a particular platform's specifics is what Fowler thinks appeals most to Java developers. "A lot of books concentrate on being the missing manual, as it were," he says. "That's good, but very hard books to do well and very important books to do are those that try to capture knowledge that people can take from platform to platform."

The fact that the book is both a tutorial and a reference book also factors into its popularity with developers says Fowler: "If someone wants to read the book, they only need to read the first 100 pages to get an overview of what's in the book, and they can dip into the reference section as needed."

Says ECA judge John Zukowski, president of JZ Ventures, "Patterns of Enterprise Application Architecture is another must-have book from Fowler and company at Addison-Wesley."

Finalists:

  • Java Development with Ant, Erik Hatcher and Steve Loughran, Manning Publications
  • Java Performance Tuning, Second Edition, Jack Shirazi, O'Reilly

Most Useful Java Community-Developed Technology: Apache Ant 1.5, the Apache Ant Project

Ant still reigns as the Most Useful Java Community-Developed Technology, having acquired that distinction in last year's ECA. Version 1.5 of the Java-based build tool features a range of new tasks that support more development and packaging processes, as well as numerous bug fixes.

"Everyone, I mean everyone, can and should be using Ant," says ECA judge Simon. "Nothing is as universally applicable to the entire Java development community as Ant."

The fact that Ant is an open source project contributes to its ubiquity in the Java community. "The people contributing code use a variety of platforms," says Conor MacNeill, chief software engineer at Cortex eBusiness Pty Limited. "The ability for contributors to easily build code for projects makes it easier for them to contribute and to integrate their contributions."

But Ant's open source status isn't the only factor behind its success as a community-developed technology. "Ant isn't just an open source project," says MacNeill. "It is an Apache project. That means that it is developed according to Apache principles. These principles are based on a consensus approach and provide guidelines on how to manage the project and how decisions are made."

The Apache approach to development has turned Ant into more than just a development tool. "Ant is quite possibly the de facto standard for a build solution for 95 percent of Java projects out there, both in the commercial software industry and open source communities," says ECA judge Roubtsov.

Finalists:

  • Eclipse 2.1, Eclipse.org
  • Tomcat 4.1, the Apache Jakarta Projet

Most Innovative Java Product or Technology: AspectJ 1.0.6, Eclipse.org

The new acronym in application development is AOP, or aspect-oriented programming. As Ramnivas Laddad explains in his JavaWorld series "I Want My AOP!," AOP creates systems out of loosely coupled, modularized implementations of crosscutting concerns, or goals, whereas object-oriented programming (OOP) creates systems out of common concerns. The result is an implementation that is easier to design, understand, and maintain.

"Aspect-oriented programming is the next big thing and will begin to show up in some form or another in many projects," says ECA judge Swenson.

AspectJ brings the innovations of AOP to the Java development community. "AOP with AspectJ makes it possible to program crosscutting concerns like distribution, caching, synchronization, error handling in a modular way," says Mik Kersten, senior developer at Intentional Software Corporation. "Previously the code for such concerns has been scattered throughout applications, leading to buggy, inflexible, difficult-to-maintain code. Programmers using AspectJ report improvements in productivity, code quality, code modularity, and flexibility."

Originally developed by Xerox PARC, the free AOP implementation is now available from Eclipse.org. "A Java programmer can begin using AspectJ in their applications in 15 minutes," continues Kersten. "The main innovation of AspectJ is a mechanism for declarative descriptions of crosscutting concerns. For example, a couple lines of AspectJ code are sufficient to say, 'Whenever I call out of this package to a network resource, cache the result.' Being able to describe such crosscutting concerns in a localized way is the key to the productivity, quality, and flexibility improvements programmers observe when using AspectJ."

AspectJ could do more for Java than increase developer productivity: "AspectJ is a great thing that helps Java continue to compete with .Net/CLR (Common Language Runtime) architecture," says ECA judge Roubtsov.

Finalists:

  • Eclipse 2.1, Eclipse.org
  • JavaServer Faces, Java Community Process (Java Specification Request (JSR) 127)

Congratulations

JavaWorld applauds all winners and finalists for their contributions to Java. These companies, organizations, and individuals are all integral to Java's continued success.

Acknowledgements

JavaWorld would like to thank its authors for their judging contributions to the ECA and their support of JavaWorld:

  • David Geary, Author and Consultant, Sabreware
  • Abraham Kang, Security Systems Architect, Apexon
  • Ju Long, Developer and Research Associate, Center for Research in E-commerce, the University of Texas at Austin
  • Tarak Modi, Senior Specialist, the North Highland Company
  • Vladimir Roubtsov, Senior Engineer, Trilogy
  • Humphrey Sheil, Technical Architect, Cedar Enterprise Solutions
  • Jonathan Simon, Developer and Product Manager, Liquidnet Holdings
  • Frank Sommers, President, Autospaces
  • Daniel H. Steinberg, Director of Java Offerings, Dim Sum Thinking
  • Erik Swenson, Consultant and Founder of Open Source Software Solutions
  • Michael Yuan, Developer and PhD Candidate, the University of Texas at Austin
  • John Zukowski, President, JZ Ventures
Jennifer Orr is a JavaWorld senior editor.

Learn more about this topic

| 1 2 Page 2