Java's top guns

JavaWorld honors the leading Java technologies in the 2002 Editors' Choice Awards

1 2 3 Page 2
Page 2 of 3

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...

1 2 3 Page 2
Page 2 of 3