Java's top guns JavaWorld honors the leading Java technologies in the 2002 Editors' Choice Awards Summary JavaWorld presents the winners of its 2002 Editors' Choice Awards. Find out which technologIEs won Best Java Virtual Machine, Best Java-XML Tool, Best Java Device Application Development Tool, Most Innovative Product, and more! (4,200 Words; March 26, 2002) By Jennifer Orr 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." Finalist: JUnit 3.7, JUnit.org Though this regression-testing framework has been an open source project only since 2001, JUnit has obviously generated quite a following. However, shifting the framework, which has always been free, to an open source model proved challenging for JUnit creators Kent Beck and Erich Gamma. "We found it difficult to balance our desire for technical excellence with accepting a diversity of vIEws on Excellence," says Beck. "The biggest benefit is that the distribution channel is cheap and its reach is broad." Finalist: Tomcat 4.0, the Jakarta Project An open source project released under the apache Software License, Tomcat is the servlet container used in the reference implementations for the servlet and JSP technologIEs. Tomcat 4.0 employs the Servlet 2.3 and JSP 1.2 specifications. "Tomcat is a great platform for deploying Web-based applications," says ECA judge Zukowski. Best Java Application Server: JBoss 2.4.4, JBoss.org JBoss combines dynamic proxies with Java Management Extensions (JMX) for fast deployment and a modular codebase. Developed and debugged by its own users, this open source, J2EE 1.3-based application server features stable code that developers can tweak for their own optimization purposes, a quality most proprIEtary solutions lack. Another selling point among developers is its cost -- free -- which in effect liberates developers to experiment with the technology. "When you don't have a few million dollars of VC (venture capital) money in the bank, you have both the freedom and the necessity to grow your technology in ways that other people haven't thought of," says Marc Fleury, JBoss founder and lead developer. "Our aim is not to create some bubble-fever company that makes shareholders rich. Our goal is to listen to and reward our core contributors and affiliates." Though a free offering, JBoss quashes the old adage that "you get what you pay for." "Free is not enough these days," continues Fleury. "Without quality, our product really wouldn't make it. Since we are developed by professional Java developers, our products are usually clutter-free, straightforward, easy to set up, easy to use, and intuitive." "JBoss stopped being an application server a long time ago -- it is now officially a phenomenon," says ECA judge Sheil. "With massive mindshare and thousands of downloads per month, JBoss has become many developers' first introduction to the world of J2EE." Finalist: BEA WebLogic Server 6.1, BEA Systems Featuring Web services support, BEA WebLogic Server 6.1 also includes J2EE Connector Architecture support, updated J2EE services, EJB caching enhancements, and deployment descriptor editing tools. Recently updated to version 7.0, WebLogic is now compliant with J2EE 1.3. It implements the latest Web services standards and introduces BEA WebLogic Builder, a tool for creating and deploying J2EE aPPS to the WebLogic Server. "BEA is the hands-down de facto standard app server," says ECA judge Sintes. "ATG and parts of BroadVision even run their flagship products on it now." Finalist: WebSphere Application Server 4.0, IBM IBM also optimized WebSphere 4.0 for Web services by adding support for Universal Description, Discovery, and Integration (UDDI), the Simple Object Access Protocol (SOAP), and Web Services Description Language (WSDL). Also new to version 4.0 are application development environments. These new tools let vendors and developers mesh their own portfoliOS with WebSphere. Best Java Book: Effective Java Programming Language Guide, Joshua Bloch (Addison-Wesley, 2001) Joshua Bloch has devoted his career to developing high-quality reusable software components. He has designed and implemented the Java Collections Framework, java.math, java.util.preferences, and the new assertion construct in J2SE 1.4. In addition, he has reviewed many Java APIs, sometimes serving as a consultant or specification lead. "In the process of doing all these things, I read and wrote an awful lot of Java code and developed a strong sense of what works and what doesn't," says Bloch. "I found myself spending an increasingly large fraction of my time passing this information on to my colleagues, one at a time." With Effective Java, Bloch shares his knowledge with all Java programmers. A collection of more than 50 tips for writing better Java code, Effective Java teaches developers how to solve many of the real programming challenges they face. Bloch draws from the J2SE libraries he knows so well to show both good and bad programming practices. "While the book isn't a formal catalog of patterns and idioms, it contains many, including some that have not been published elsewhere," he says. "The book explains the reason for each suggestion and never discredits a technique without presenting a superior alternative." "Effective Java is the single most important book for any intermediate to advanced Java developer," says ECA judge Sintes. "I require all my developers to read it." Finalist: Enterprise JavaBeans, Third Edition, Richard Monson-Haefel (O'Reilly, 2001) Richard Monson-Haefel updated Enterprise JavaBeans to reflect the changes introduced in EJB 2.0. The book covers the new container-managed persistence, EJBQL (query language), local interfaces, and message-driven beans. Monson-Haefel also included free workbooks, which help readers install and configure specific EJB servers to run the book's examples. Currently, BEA WebLogic and IBM WebSphere workbooks are available. "Enterprise JavaBeans is clear, concise, and in-depth," says ECA judge Abraham Kang, a security architect at Jamcracker. "It tells you everything you need to know before starting your first EJB project." Finalist: Just Java 2, Fifth Edition, Peter van der Linden (Prentice-Hall, 2001) In Just Java 2's fifth edition, Peter van der Linden overvIEws J2SE 1.4, covering the core language, important Java librarIEs, and techniques for creating Web-based transaction systems and Web services. He also discusses the Java Foundation Classes (JFC), Swing, J2EE, Java Database Connectivity (JDBC), and XML. A CD-ROM containing the book's sample programs, code examples, and Perl and Python language kits accompanIEs Just Java 2. "Just Java 2 is among the best introductions to Java for non-Java programmers or beginner Java programmers, and it is a joy to read," says Sommers. Best Java Installation Tool: Java Web Start 1.0.1, Sun Microsystems With Java Web Start, a fully deployed Web-based Java application is only one mouse click away: developers simply click on a link to launch aPPS through a Web browser. Regardless of which Java version the browser runs, developers can download and run any standalone application and enjoy support for various Operating systems, hardware configurations, and browsers. In addition, Web Start lets users launch applications from desktop icons or, in the case of Windows, from the Start menu. Because Web Start has a platform-neutral launch UI (user interface), it delivers the same look and feel to all platforms. Web Start also automatically caches and updates applications. Version 1.0.1 features corrected bugs, additional internationalization support, and the JNLPDownload servlet. JNLP (Java Network Launching Protocol) provides a Web-based protocol for deploying and running Java 2-based applications. Basically, JNLP allows an application to run from an Internet-Accessible codebase. "Java Web Start represents a milestone in the battle to deploy Java client software effectively and easily. The security model is well thought out, and issues such as low bandwidth are addressed with a full-featured caching mechanism. I look forward to future enhancements to the core technology," says Sheil. Future Web Start releases will enhance the user experience by improving downloading, installing, upgrading, and administration capabilities. Sun will also expand multiuser and multiplatform support, Java Runtime Environment (JRE) configuration, and cache management. Finalist: InstallAnywhere 4.5.2, Zero G InstallAnywhere creates installers for various computing environments: desktops, enterprises, or Web services. For version 4.5.2, Zero G improved the tool's installer optimization, increased interOperability by adding Mac OS X and Windows XP support, and added validation logic. "I think Zero G has the leading solution for multiplatform deployment," says ECA judge Steinberg. "The product is easy to use and creates installers that are intuitive for users." Finalist: InstallShield MultiPlatform 4.5.1, InstallShield InstallShield MultiPlatform creates cross-platform wizards that can install products, update environment variables, and configure systems, along with other tasks. The latest version adds a Run button in the IDE, a Set UMask Wizard Action bean, and a FileInputComponent. "InstallShIEld is very easy to use, very flexible, and provides Excellent support for many platforms," says ECA judge Modi. Best Java Device Application Development Tool: VisualAge Micro Edition 1.4, IBM VisualAge Micro Edition 1.4 offers developers an environment for creating and deploying embedded Java applications. It features the Connected Limited Device Configuration (CLDC) and the Mobile Information Device Profile (MIDP), technologies based on the Java 2 Platform, Micro Edition (J2ME). With these new technologies, VisualAge Micro Edition developers can now create platforms for hosting CLDC- and MIDP-based third-party aPPS. For version 1.4, IBM increased VisualAge's interOperability by adding support for the OSE, Pocket PC, AIX, and Solaris platforms. The development tool also deploys on Hard Hat Linux and Palm OS. IBM also enhanced the performance of VisualAge's J9 VM, which includes support for Java Native Interface (JNI) native methods and extensions based on Java's Realtime Specification. Version 1.4's VM runs 10 percent faster than previous versions. Various development tools accompany the device tool: device developers can design small GUIs with MicroVIEw and write embedded applications with the VisualAge Micro Edition IDE. Finalist: iBus Mobile Java Applications Platform, Softwired iBus Mobile links the J2ME and J2EE platforms by letting developers design J2ME applications that connect to EJBs running on a J2EE application server. It uses Java Message Service (JMS) message queues and publish/subscribe topics to transmit information from server to device. Version 3.0, which Softwired will release in March 2002, will feature SOAP and Web services integration, an applet version of the iBus Mobile JMS clIEnt library, the javax.jms interfaces, and JMS QueueBrowsers and ObjectMessages. Finalist: JBuilder MobileSet, Borland Software Integrated with JBuilder, the JBuilder MobileSet is a J2ME-compliant environment for creating mobile applications and emulating and debugging devices. The JBuilder MobileSet provides a MIDP UI designer and wizards for MIDP development; tools for packaging and deploying a MIDlet suite; and over-the-air provisioning management for MIDlet suites. Most Innovative Java Product or Technology: Project Jxta, Jxta.org One of last year's JavaOne buzzWords, Jxta is Sun's protocol for creating peer-to-peer (P2P) applications. Pioneered by Bill Joy, Sun's chief scientist, Jxta creates a virtual network that lets peer devices interact with each other despite their specific physical network characteristics. In the true Java spirit, Sun initiated Jxta as an open source effort. Today, a community 8,000 members strong leads the project, which boasts more than 50 individual projects and 350,000 downloads of the documentation, source code, and binarIEs. Jxta is based on a protocol, rather than an API, which guarantees interOperability across multiple systems, platforms, and devices. Currently, a J2SE Jxta implementation is available, with a J2ME version in the works. As a testament to its innovation, Jxta has altered the P2P vocabulary by introducing the following concepts: Peer groups: An aggregation of peers with common interests; peer groups can span multiple physical network domains Peer pipes: Similar to Unix pipes; with Jxta pipes, simple services combine to form more complex services Peer monitoring: Enables peer management Jxta's dynamic resource discovery is also inventive. This capability allows existing applications to work in a distributed environment across the Internet without a network infrastructure. "Jxta is very innovative and has a great architecture," says ECA judge Modi. "I look forward to the day when I can use it in an enterprise-level project." Finalist: Java Web Start 1.0.1, Sun Microsystems Java Web Start, Sun's free installation/deployment tool, reappears in the ECA as one of the most innovative technologies of the year. Its one-click technology makes downloading and running a Java application pain-free. "I wish Java Web Start had been around when applets were popular," says ECA judge Kang. "Maybe things would be different." Finalist: Jini 1.2, Jini.org Sun's original networking protocol, Jini, also continues to enjoy success. Currently more than 80,000 developers use this general-purpose network infrastructure, and more than 75 commercial implementations are available. In early 2002, Sun updated the Jini Starter Kit with performance enhancements and helper utilities. "Jini has continued to introduce breakthrough innovations in 2001, such as a model for large-scale distributed security and tools for rapidly deploying highly fault-resilient applications on an Internet scale," says Sommers. "If Java has a long-term future (and it certainly does), Jini is the vehicle that will carry it into that future." Stay tuned... These valuable technologies have pushed the Java standard even higher, thus guaranteeing the production of future groundbreaking products. And as Web services, device development, and P2P gather momentum over the next year, who knows what killer app could be waiting around the corner? Acknowledgements JavaWorld would like to thank its expert judges for their contribution to the ECA and their support of JavaWorld: Abraham Kang, Security Architect, Jamcracker Tarak Modi, Senior Software Architect, North Highland Wm. Paul Rogers, Independent Java Architect Humphrey Sheil, Technical Architect, Cedar Group Tony Sintes, Java Consultant, First Class Consulting Frank Sommers, Founder and CEO, Autospaces DanIEl Steinberg, Director of Java Offerings, Dim Sum Thinking John Zukowski, Strategic Java Consultant, JZ Ventures