Java's come a long way since its first commercial release in 1995. Perhaps the best gauge of Java's success is the growth in Java tools over the last eight years: from the first applet authoring tools, to entire enterprise application development environments, to device development kits, each year, vendors roll out more and more tools to make a Java developer's job much easier. And each year, JavaWorld honors those tools that stand out in their usefulness, innovation, and commitment to advancing the language by presenting our Editors' Choice Awards (ECA).
This year marks the seventh year that JavaWorld has presented these awards. In early 2003, vendors, readers, and JavaWorld authors and editors nominated more than 150 tools and technologies in the following 10 categories:
- Best Java Data Access Tool
- Best Java IDE
- Best Java Performance Monitoring/Testing Tool
- Best Java Application Server
- Best Java Device Application Development Tool
- Best Java-XML Tool
- Best Java Installation Tool
- Best Java Book
- Most Useful Java Community-Developed Technology
- Most Innovative Java Product or Technology
Nominations were accepted for any commercial, open source, or free Java-based technology shipped on or before April 1, 2003.
A panel of JavaWorld writers and editors narrowed the nominations down to three finalists in each category. In making their decisions, the judges evaluated the features and functions of each technology or tool and its influence on Java. From those 30 tools, the judges then selected the 10 winners during a second round of voting. Winners receive Awards crystals and finalists, Awards certificates.
The true winners here are Java developers, who have a plethora of tools, many of which are free or open source, to ease their development tasks. Read on to find out which tools lead the pack. Finalists are listed in alphabetical order.
Best Java Data Access Tool: Oracle 9iAS TopLink, Oracle
Oracle9i Application Server TopLink is an advanced Java persistence architecture for developing and deploying enterprise Java applications that use relational databases. TopLink offers EJB CMP (Enterprise JavaBeans container-managed persistence), and persists regular Java objects as well as JSP (JavaServer Pages) and servlets. The tool's persistence infrastructure includes a GUI (graphical user interface) workbench, caching, Java-to-relational-mapping support, nonintrusive architectural flexibility, locking, and transactions. TopLink supports all Java technologies, J2EE (Java 2 Platform, Enterprise Edition) application servers, and relational databases enabled by JDBC (Java Database Connectivity). "TopLink distinguishes itself from other O/R [object-relational] mapping tools by offering developers fine-grained control over their persistence architecture and a long list of powerful features, including optimistic and pessimistic locking, automatic type conversion, transformational mappings, and more," says Moe Fardoost, director of Oracle9i Application Server product marketing.
TopLink's numerous features stood out for ECA judge Abraham Kang, security systems architect at Apexon, when evaluating this particular category. "TopLink has some nice features such as distributed caching of clustered Enterprise JavaBeans," he says. "It also has a functional GUI, which helps with configuration."
Fardoost attributes TopLink's success to Oracle's interaction with the Java development community. "Product development is driven by developer needs and providing the features that they appreciate the most," he says.
- CocoBase Enterprise O/R 4.5, Thought Inc.
- Hibernate 1.2.4, hosted by SourceForge.net
Best Java IDE: IntelliJ IDEA 3.0, JetBrains
Our judges couldn't say enough about JetBrains's latest IDE:
"IntelliJ rocks," says Kang.
"IntelliJ did it again," says Frank Sommers, president of Autospaces. "Just when we thought we saw what's possible in a simple, easy-to-use, yet extremely powerful IDE, version 3.0 topped our expectations."
"IntelliJ IDEA is by far the best IDE for advanced developers," says Michael Yuan, a PhD candidate at the University of Texas at Austin.
Since entering the Java IDE market in early 2000, this small Czech company has quickly garnered quite a loyal following of Java developers. Vladimir Roubtsov, a senior engineer at Trilogy—a software company that lets developers pick their favorite commercial or free IDE to work with—says that most of his developers have chosen IDEA.
Some of our judges have also switched to IntelliJ. "I have tried many IDEs each year when I review the latest crop," says Daniel Steinberg, director of Java offerings at Dim Sum Thinking. "Until last year, I always returned to a text editor and command-line tools. Now I use IDEA."
Kang also notes its appeal over other development environments: "IDEA has doubled my efficiency with its extensive refactoring tools, customizable quick keys, templates, Ant integration, and automated common programming tasks. Once you have tried IntelliJ, you will never go back to your previous IDE."
IDEA's refactoring abilities kept coming up again and again in our judges' comments, as did the tool's simplicity, flexibility, and intelligent editor. Nevertheless, Sommers had one complaint: "This IDE is addictive. At first, I used it to edit my Java code, then I started using it for my XML editing needs, and next I started using it to manage JSP-based Websites with it. I will probably use it for Web service development as well."
- Borland JBuilder 8.0, Borland Software
- Eclipse 2.1, Eclipse.org
Best Java Performance Monitoring/Testing Tool: JUnit 3.8.1, JUnit.org
For the third consecutive year, JUnit again finds itself a winner in our performance monitoring/testing tool category. JUnit Director Kent Beck attributes JUnit's continued success with the Principle of Mutual Benefit:
"Using JUnit makes programming more fun for programmers and more valuable to their employers, and makes the results more useful for users," he says. "There is also a social aspect, where JUnit was championed by two guys [Beck and Erich Gamma, who both wrote the tool] who already had reputations as hackers. So writing tests went from something they did (the quality assurance department) to something we did. Some of our technical decisions also played into this, like the use of the ordinary programming language as the testing language (most testing tools have their own embedded special-purpose language)."
ECA judge Tarak Modi, senior specialist with the North Highland Company, appreciates that particular feature of JUnit: "I do not spend too much time writing tests in some cryptic language. The learning curve is almost nonexistent, and the benefits are realized almost instantaneously."
Indeed, simplicity made this tool a favorite among our judges. "JUnit may not be the most feature-rich testing tool," notes Ju Long, a research associate at the Center for Research in E-commerce, University of Texas at Austin. "But since it is so easy to use, it is widely adopted. That makes it the most important tool for unit testing."
- JProbe 5.0, Quest Software
- Optimizeit Suite 5, Borland Software
Best Java Application Server: BEA WebLogic Server 8.1, BEA Systems
Though IBM and BEA continue to publicly bicker over who leads the application server market, this race to one-up each other continues to benefit developers: the Java application servers keep getting better and better, especially, according to our judges, BEA WebLogic.
"All of the app servers are pretty much J2EE 1.3 certified, but BEA is still the leader when it comes to features and functionality built on top of J2EE," says ECA judge Kang. "BEA's integrated tools ease development, integration, management, and monitoring."
Version 8.1's new features include tools that simplify development and deployment, standards-based Web services functionality, a performance increase of more than 30 percent, new monitoring capabilities, and training services.
Future releases will focus on enhanced management and administration, as well as standards support for the latest technologies, says Eric Stahl, director of product marketing at BEA Systems.
"WebLogic Server maximizes developer productivity, reduces the cost of operations and management, and drives standards-based integration into the enterprise, helping customers get ahead in an increasingly competitive world without damaging the bottom line," says Stahl. "As the fastest server available, it allows administrators to configure a cluster in just minutes, as opposed to hours or days with other vendors' application servers."
BEA's superior performance was just one of the deciding factors for ECA judge Roubtsov: "BEA WebLogic Server continues to lead in performance and standard compliance," he says. "WebLogic tends to support the most recent Java API levels and is an exceedingly developer-friendly product."
- IBM WebSphere Application Server 5.0, IBM
- JBoss 3.0, JBoss.org
Best Java Device Application Development Tool: Java 2 Platform, Micro Edition (J2ME) Wireless Toolkit 2.0, Sun Microsystems
Sun's J2ME Wireless Toolkit (J2ME WTK) helps programmers develop wireless applications with Java. It includes an emulation and testing environment for those applications targeted to Java-enabled devices that implement the Mobile Information Device Profile (MIDP) and related extension APIs. For version 2.0, Sun added support for the MIDP 2.0 specification and features, making J2ME WTK the only tool that currently provides such capabilities. J2ME WTK 2.0 also includes support for testing over-the-air downloading and installation of MIDlet applications, the Wireless Messaging API, the Mobile Media API, new device skins, and new gaming APIs.
"J2ME WTK is the mostly widely used tool for MIDP development," says ECA judge Yuan. "It can be used standalone or integrated into IDEs. It even integrates into Ant. Many vendor-specific MIDP development kits are modeled after J2ME WTK."
The tookit is also integrated and bundled with many J2ME IDE environments, including Sun ONE Studio Mobile Edition, Borland's JBuilder, and Metrowerks CodeWarrior Wireless Studio. "It is also promoted by Oracle's and IBM's developer sites as a tool to learn how to develop MIDP applications," says James Allen, senior product marketing manager of J2ME developer tools in Sun's J2ME platform marketing group. "So, it's got a lot of popularity in the wireless developer community."
"Sun continues to innovate in the wireless space with the release of the J2ME Wireless Toolkit supporting the MIDP 2.0 specification," says ECA judge Humphrey Sheil, technical architect at Cedar Enterprise Solutions. "Tool support is crucial to any technology, and wireless is no exception. Strong toolsets help foster early adoption of a technology, and with no clear winner yet in the wireless space, Java needs every single edge it can get."
- IBM WebSphere Studio Device Developer 5.0, IBM
- Sun ONE Studio 4 Update 1 Mobile Edition, Sun Microsystems
Best Java-XML Tool: Xerces2 Java Parser 2.4, the Apache XML Project
The Xerces2 Java Parser is another repeat winner in this year's awards; the open source XML parser also was selected as Best Java-XML Tool in JavaWorld's 2002 Editors' Choice Awards. Ted Leung, principal at Sauria Associates and an Apache developer, attributes Xerces2's continued success to its open source status and broad standards support. "Xerces2 is the only Java XML parser with support for XML Schema, grammar caching, and DOM [Document Object Model] Level 3 support," he says.
Some of our judges consider Xerces a standard in itself: "Xerces is the standard by which all other XML parsers are measured," says Erik Swenson, consultant and founder of Open Source Software Solutions.
And ECA judge Kang comments, "Xerces is the de facto standard when it comes to Java-based XML development."
Additional standard support was added to version 2.4: XML 1.1, DOM Level 3 load/save, and fixes based on the XML Schema errata.
"Xerces gets the Number One spot," says ECA judge Jonathan Simon, developer and product manager at Liquidnet Holdings. "Basically, cool things to do with XML and Java may come and go, but low-level access to the XML code in an object structure is always necessary."
- JAXB (Java Architecture for XML Binding), Sun Microsystems
- Xalan-Java 2.5, The Apache XML Project
Best Java Installation Tool: Java Web Start 1.2, Sun Microsystems
Java Web Start allows users to launch applications with the click of a button. "You can download and launch applications, such as a complete spreadsheet program or an Internet chat client, without going through complicated installation procedures," says Blake Connell, group product marketing manager for Java desktop solutions marketing at Sun. "Java Web Start includes the security features of the Java 2 Platform, so the integrity of your data and files is never compromised. In addition, Java Web Start enables you to use the latest Java technology—with any browser."
"Java Web Start is what Java applets should have been," comments ECA judge Yuan. "It deploys and updates fully functional Java applications to the client side. It could bring life back to client-side Java development."
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