Java Coding Done Right

Oracle9i JDeveloper 5.0, a Java IDE, provides sterling development platform.

If theres one thing that a Java development platform should be able to produce and host, its a first-rate integrated Java development environment. Many candidates for that title have come through eWeek Labs, but Oracle Corp.s Oracle9i JDeveloper 5.0 (which we reviewed in its late-November build) is one of the most responsive, complete and best integrated that weve seen—and its free for full-function download and trial, though subject to license for commercial or production application development.

Wed pay for this product. The JDeveloper IDE (integrated development environment) includes the kind of immediate, dynamic feedback on coding in progress that marked Borland Software Corp.s JBuilder as a breakthrough when it first appeared. The debugger is first-class. The products interactive coding aids are likewise in JBuilders class—but unlike previous Oracle-labeled Java development systems, JDeveloper is not a repackaged Borland tool but rather a wholly new Oracle product.

JDeveloper isnt just a Java coding tool; its intended to act as an on-ramp to the Web services journey that Oracle hopes will bring enterprise developers to Oracles own platform. Even so, we didnt feel that JDeveloper was trying to lock us in: In the configuration we tested, both Apache SOAP, or Simple Object Access Protocol, and Oracle9i Application Server targets were available, and standards-based, extensible design pervades the environment with its reliance on XML and Web Services Description Language.

The furnished tutorial project is representative of what developers will be doing with the tool, and its a lengthy and thorough introduction. The tutorial begins with the generation of a persistent EJB (Enterprise JavaBean) from a database table and proceeds through the publication of a stateless EJB as a Web service.

Architectural tools are exercised with the construction of a UML, or Unified Modeling Language, class diagram and the generation of objects that map to relational tables. JDevelopers code creation facilities become familiar with the implementation of business logic and the development of a JSP (JavaServer Pages) front end for that logic.

To find such comprehensive facilities for development and testing, in a single, well-integrated environment, is no small thing—to find them in a freely available tool set is almost inspiring.

Like Microsoft Corp.s Visual J++ or WebGain Inc.s VisualCafé, JDeveloper offers its tools in a choice of either docked or floating windows. Borlands JBuilder makes more economical use of screen space with a tabbed-pane interface that makes it easy to find different views of a project in progress, but many developers prefer the simultaneous and easily rearranged access of the multipaned approach. With the higher pixel counts on current displays, we now find the approach used by JDeveloper less extravagant than it used to seem.

Developers who prefer to keep things compact can drag one window into the center of another to combine tools at will in their own tabbed-pane conglomerations. (If someone else did this first, pardon us for not noticing.)

Moreover, since JDevelopers entire user interface is being drawn by Java code, we werent even confined to the Windows look and feel. It was easy to switch to a Common Desktop Environment/Motif, generic Metal or Oracles own cosmetic treatment for all but the highest-level window containing the integrated environment.

In addition to the pop-up auto- completion menu for expressions while we were writing our own code, JDeveloper offered a diagnostic CodeCoach tool that evaluated application structure in the context of an actual session. Recommendations such as "Class Frame1 should be final" were tied back to the corresponding points in our source code, with the further convenience of a point-and-click automatic fix, so we could easily make our code more robust.

The online documentation for CodeCoach is candid about its limitations. Classes are ignored unless actually loaded, so a class may be recommended for modification to "static," even though some conditions may trigger the loading of another class that extends it. Other tool sets, such as Sitraka Inc.s JProbe Suite with its JProbe Coverage analyzer, do more to avoid developer oversights during testing.

There are other, smaller things we could criticize in JDeveloper 5.0 (technically, a release candidate pending the general availability of Oracle9i Application Server Release 2). In tests under Windows 2000, it sometimes betrayed its status as a nonnative application with tiny but annoying nonstandard user interface behaviors. However, we dont consider these serious flaws in a tool that does so much—and, generally, so well.

Technology Editor Peter Coffee can be reached at [email protected].