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.
- 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."
- 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.
- 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.
- Eclipse 2.1, Eclipse.org
- JavaServer Faces, Java Community Process (Java Specification Request (JSR) 127)
JavaWorld applauds all winners and finalists for their contributions to Java. These companies, organizations, and individuals are all integral to Java's continued success.
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
Learn more about this topic
- Oracle 9iAS TopLink, Oracle
- Oracle 9iAS TopLink product page
- "Oracle Releases TopLink Upgrade, Road Map," Paul Krill (InfoWorld, October 15, 2002)
- For articles on data access, browse the Java Database Connectivity (JDBC) section of JavaWorld's Topical Index
- IntelliJ IDEA 3.0, JetBrains
- IntelliJ IDEA product page
- "A Bright IDEA for Java Developers," Rogers Cadenhead (Linux Magazine, November 2002)
- For articles on IDEs, browse the Development Tools section of JavaWorld's Topical Index
- JUnit 3.8.1, JUnit.org
- JUnit.org Website
- "JUnit Best Practices," Andy Schneider (JavaWorld, December 2000)
- For articles on testing and performance, browse the Testing section of JavaWorld's Topical Index
- BEA WebLogic Server 8.1, BEA Systems
- WebLogic product page
- "BEA Eyes Standards Implementations," Paul Krill (InfoWorld, March 7, 2003)
- For more articles on application servers, browse the Java Application Servers section of JavaWorld's Topical Index
- Java 2 Platform, Micro Edition (J2ME) Wireless Toolkit 2.0, Sun Microsystems
- J2ME WTK product page
- "Best Tools For Mobile Application Development," Michael Yuan (JavaWorld, October 2002)
- More Wireless Java columns
- For articles on J2ME and wireless Java, browse the Micro Java section of JavaWorld's Topical Index
Xerces2 Java Parser 2.4, the Apache XML Project
- Xerces2 technology
- Leon Messerschmidt uses Xerces to create a skeleton SAX (Simple API for XML) parser in "Take the Sting Out of SAX" (JavaWorld, May 2002)
- For articles on developing with XML, browse the Java and XML section of JavaWorld's Topical Index
- Java Web Start 1.2, Sun Microsystems
- Java Web Start product page
- "Java Web Start to the Rescue," Raghavan N. Srinivas (JavaWorld, July 2001)
- Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley
- Grab a copyPatterns of Enterprise Application Architecture, Martin Fowler, et al., (Addison-Wesley, November 2002ISBN0321127420)
- Browse JavaWorld's Book Reviews index page
- Apache Ant 1.5, the Apache Ant Project
- Apache Ant homepage
- "Automate Your Build Process Using Java and Ant," Michael Cymerman (JavaWorld, October 2000)
- Browse the Java Community section of JavaWorld's Topical Index
- AspectJ 1.0.6, Eclipse.org
- AspectJ homepage
- "I Want My AOP!" Ramnivas Laddad (JavaWorld)
- Other JavaWorld resources
- Search JavaWorld's Product Reviews index page
- Search JavaWorld's Product News index page
- Sign up for JavaWorld's free weekly email newsletters
- Speak out in the JavaWorld Forum