A tradition since 1997, the JavaWorld Editors' Choice Awards (ECA) honor companies, organizations, and individuals for developing groundbreaking, valuable tools that advance the Java platform. This year, vendors, readers, and JavaWorld authors and editors nominated more than 200 tools and technologies in the following 10 categories:
- Best Java Virtual Machine
- Best Java Performance Monitoring/Testing Tool
- Best Java-XML Tool
- Best Java IDE
- Most Useful Java Community -Developed Technology
- Best Java Application Server
- Best Java Book
- Best Java Installation Tool
- Best Java Device Application Development Tool
- Most Innovative Java Product or Technology
Nominations were accepted for any commercial, open source, or free Java-based technology shipped on or before January 15, 2002. Beta versions were not eligible.
From those nominations, an eight-judge panel of JavaWorld writers selected one winner and two finalists in each category. In casting their votes, the judges thoroughly evaluated the features and functions of each technology or tool and its influence on Java.
JavaWorld recognized all winners and finalists at a ceremony on March 25 at the ThirstyBear Brewing Company in San Francisco during the JavaOne Conference and Expo. Winners received Awards crystals, while finalists took home Awards certificates.
JavaWorld commends all winners and finalists for their commitment to the Java language. Read on to find out what innovations these companies, communities, and individuals have brought to the Java platform. The winner in each category is followed by two finalists listed in alphabetical order.
Best Java Virtual Machine: Java HotSpot Virtual Machine, Windows 1.3.1, Sun Microsystems
Java HotSpot technology forms the heart of the Java 2 Platform, Standard Edition (J2SE). Used by IDEs such as Forte for Java, Borland JBuilder, WebGain VisualCafé, and Oracle9i JDeveloper, and application servers such as BEA WebLogic Server and iPlanet Application Server, the Java HotSpot VMs support application development, deployment, and management. Last year, the Solaris version won an Editors' Choice Award in this category; this year, however, Java HotSpot Virtual Machine 1.3.1 for Windows shines brighter.
"One could say that without the Sun JVM for Windows, there would be no Java," says ECA judge Tony Sintes, a Java consultant with First Class Consulting.
This ECA winner also wins in performance tests. The Java HotSpot Virtual Machines helped Sun's Sun Fire E15K Server break performance records in the SPECjbb2000 benchmark last September. In addition to measuring CPU and cache performance, the SPECjbb2000 benchmark also measures JVM implementations, including code generation, garbage collection, and thread synchronization. With Java HotSpot in place, Sun Fire achieved 324,542 operations per second, a world record.
The new HotSpot version, which ships with J2SE 1.4, has also proven itself a champion. In February 2002, the SPECjbb2000 performance benchmark recorded that Sun Fire achieved 404,472 operations per second with the new VM.
Finalist: Java HotSpot Virtual Machine, Solaris 1.3.1, Sun Microsystems
Last year's Best JVM winner, the Java HotSpot Virtual Machine for Solaris, continues to be a favorite among developers.
"The HotSpot technology enables a running VM to dynamically adapt to an application's profile and thus optimize performance," says ECA judge Frank Sommers, founder and CEO of Autospaces. "In addition, Sun should be lauded for making the JVM available on Solaris, Windows, and Linux. The Solaris version enables Java to run mission-critical applications around the clock."
Finalist: JRockit 3.0, Windows, BEA Systems
BEA Systems' JRockit 3.0, recently acquired from Appeal Virtual Machines, offers a VM suite for server-side execution. It boasts multiuser scalability, selectable nondisruptive garbage collectors, multiprocessor support, and the ability to monitor and manage Java application execution.
"The need for speed, stability, and scalability in J2EE (Java 2 Platform, Enterprise Edition) applications is ever present," says ECA judge Humphrey Sheil, a technical architect with Cedar Group. And with tools like the management console and the underlying quality of the VM implementation, JRockit has gone a long way towards raising the bar in this sector of the VM market."
Best Java Performance Monitoring/Testing Tool: JUnit 3.7, JUnit.org
A repeat ECA winner, JUnit was honored again for its regression-testing framework. JUnit stands out from other performance monitoring and testing tools because developers have free access to it and its testing language is the same as the source language; furthermore, programmers wrote the framework for programmers.
"Most testing tools are aimed at nonprogrammers," says JUnit director Kent Beck. "The split between testing and programming is artificial and harmful in the JUnit worldview. Programmers must be directly accountable for the quality of their work, and one way to enable accountability is to shift the primary responsibility for automated testing to the programmer."
"No product has changed the way I code more than JUnit," says ECA judge Daniel Steinberg, director of Java offerings at Dim Sum Thinking. "Testing first has made me a better, more productive programmer."
"The JUnit creators have delivered a sizeable benefit to the Java developer community -- and indirectly, through higher code quality, to Java developers' customers," says ECA judge Sommers. "Because JUnit is only a small download away, any Java developer running a test suite before calling it a day can sleep better at night."
JUnit has already enhanced its winning release; version 3.8, now available, improves JUnit's error messages and add-on support.
Finalist: JProbe 3.0, Sitraka
Sitraka's JProbe 3.0 shows developers a graphical image of their Java programs to help them diagnose and eliminate code errors and inefficiencies. Future releases will include a new application server configuration wizard, improved call graphs, heap snapshot differencing, and an instance memory calculator.
"Too often, products like JProbe are regarded as optional extras for development, when in truth they are crucial to building a successful Java-based system," says ECA judge Sheil.
Finalist: Optimizeit Suite 4.11, Borland Software
Borland's Optimizeit Suite, recently acquired from VMGear, features three products for performance tuning. The Optimizeit Profiler targets buggy code, faulty algorithms, and performance bottlenecks, and corrects memory leaks. The Optimizeit Thread Debugger displays thread and monitor status, reveals thread problems, and predicts dangerous deadlocks. And, while showing how often each code line executes, the Optimizeit Code Coverage identifies and removes dead code.
Best Java-XML Tool: Xerces Java Parser 1.4.4, the Apache XML Project
The XML parser has become a vital component in the Java-XML developer's toolbox; it's one of the first software pieces a Java programmer turns to when coding XML. And the Xerces Java Parser, an open source project, offers developers easy access to this valuable tool. With no licensing restrictions, developers have free reign with Xerces Java and can use it in whatever way they see fit.
For version 1.4.4, Xerces developers extended the parser's support for the World Wide Web Consortium (W3C) XML Schema Language. In fact, the Xerces Java team prides itself on tracking and implementing the W3C recommendations as quickly as possible.
"Xerces was the first Java parser to have implementations of XML Schema and the proposed DOM (Document Object Model) Level 3," says Ted Leung, a Xerces developer. "We end up supporting the W3C recommendations before most parsers."
"The Xerces Java Parser is truly a superior parser with excellent DOM and SAX (Simple API for XML) support," says ECA judge Tarak Modi, senior software architect at North Highland. "It's very efficient."
DOM Level 3 was added to the latest version, Xerces Java 2, which also premieres the Xerces Native Interface (XNI), a framework that lets developers create more specialized parser components. For example, according to Leung, one developer has already created a customized HTML parser.
"Xerces 2 helps developers who need to do something with XML, but need additional flexibility," explains Leung.
Finalist: Java XML Pack Winter 01, Sun Microsystems
The Java XML Pack offers a one-stop shop for the technologies developers need to integrate XML into Java. The pack bundles the early-access versions of the Java API for XML Messaging (JAXM) 1.0.1, the Java API for XML Processing (JAXP) 1.2, the Java API for XML Registries (JAXR) 1.0, and the Java API for XML-based RPC (JAX-RPC) 1.0.
"The proliferation of XML toolsets is often bewildering," says Sheil. "Sun Microsystems has gone a long way towards easing some of that confusion with the release of the Winter 01 pack."
Finalist: Xalan-Java 2.2, the Apache XML Project
An XSLT (Extensible Stylesheet Language Transformations) processor, Xalan-Java turns XML documents into HTML, text, or other XML document types. Developers can use the processor from the command line, in an applet or servlet, or as a module in other programs. Xalan-Java also implements the Transformation API for XML (TRAX) interfaces, which offer a framework and API for completing XML transformations.
Best Java IDE: Forte For Java 3.0, Sun Microsystems
With the Forte for Java 3.0 release, Sun introduced the Enterprise Edition, a commercial version that facilitates J2EE application and Web services development. The free Community Edition has all the capabilities of the previous commercial product -- Forte for Java, Internet Edition -- and now provides a toolkit for building database-aware Web applications.
"Forte for Java, Community Edition, is an excellent IDE for introductory Web development," says ECA judge Wm. Paul Rogers, an independent Java architect. "It's better equipped to champion the call of Java than any other free or light version IDE I've tried."
Taking a slightly different approach from other proprietary IDEs, Forte for Java is based on the open source NetBeans Tools Platform. Thus, the IDE benefits from Sun developers as well as the entire NetBeans open source community. Forte for Java's Extension Partner Program also fosters a community development environment; it allows independent vendors to build their products on top of the Forte for Java platform.
"These partners are among the Forte for Java IDE's most valuable assets for providing complete development and application solutions to mutual customers," says Forte for Java product manager Dan Roberts. "To date, nearly 100 companies have teamed with Sun to build add-on modules or to bundle the free Forte for Java, Community Edition, IDE into their own offerings."
Finalist: IDEA 2.5, IntelliJ
IntelliJ's IDEA features easy code generation, quick navigation, search-and-replace capabilities, and JavaServer Pages (JSP) and javadoc support. The latest version includes 13 new code refactorings, backward and forward navigation buttons, integration with JUnit and Microsoft's Visual SourceSafe, and improved Apache Ant integrations.
"While most Java IDEs seem to have grown into full-blown operating systems, IntelliJ keeps it simple -- and fast," says Sommers.
Finalist: JBuilder 6.0 Enterprise, Borland Software
For JBuilder 6.0, Borland added a new Enterprise JavaBean (EJB) 2.0 designer, Unified Modeling Language (UML) code visualization, and refactoring, unit testing, and javadoc support to its popular JBuilder IDE.
"The best just keeps getting better," says ECA judge John Zukowski, a strategic Java consultant with JZ Ventures. "Better integrated testing, refactoring, and UML -- you wonder what's in store for 7.0."
Whatever Borland plans next, Tony de la Lama, Borland's vice president of Java solutions, assures developers that JBuilder will continue to advance best practices for J2EE application development.
Most Useful Java Community-Developed Technology: Apache Ant 1.4.1, the Jakarta Project
Though originally developed as a Java-based build tool, Ant has matured into a more versatile product, thanks to the open source project's active developer community. Ant's developers have extended the tool's capabilities beyond just compiling and jarring Java source files. With Ant, developers can compile, run unit tests, deploy to a remote app server, and run deployment tests with one command. In addition, Ant lets developers issue SQL statements, zip a logfile copy, and email that copy as a MIME attachment. Most of these functionalities were added by independent developers, who, after solving their own specific build problems with Ant, shared their solutions with the Ant community.
"These tasks can become part of the official Ant distribution, or they can remain separate projects that we are happy to point to on our Webpages," says Diane Holt, an Ant community member. "Either way, any person solving their own build problem may end up solving it for everyone else, too."
"The Ant build tool is a fitting testimony to open source development," says ECA judge Sheil. "With a thriving core team and new and useful functionality added almost daily, the Ant build tool has become one of the most important elements in any Java project."