Four Java IDEs duke it out
Enterprise environments from Borland, IBM, Oracle, Sun provide remarkable toolsets
The modeling tools support nine UML diagrams -- more than Borland and Oracle's products. These diagrams can be analyzed for the patterns they contain or might contain, as well as for what IBM calls anti-patterns -- that is, infelicities of program design. Poorly designed classes, for example, will pop up with explanations of violated design patterns and markers showing what should be fixed.
When combined with IBM's rule-based code analysis, these tools help an architect see how well projects are being implemented and how they fit within design guidelines and site requirements. In addition to structural and object-oriented patterns, RSA can recognize and analyze seven of the Gang of Four design patterns.
Rational's Web interface technology of choice at the moment is JSF, a technology that simplifies implementation. RSA tools include a WYSIWYG editor for JSF backed up with SDOs (service data objects) for database interfaces.
RSA has partial support for C/C++, in addition to full support for Java. The modeling tools can perform transformations to C++ and various source code tools can analyze C++. However, the C++ IDE lacks a compiler and debugger, which must be procured and installed separately. You can install your own if you already have one of these tools, or you can download the GNU C++ compilers to do this. These features seem like an odd and incomplete addition.
IBM RSA is the most feature-rich product in this review (see "Java Tool Time," right). The additional software mentioned above further separates it from the rest of the pack. For enterprise architects willing to put in the time to master the interface and the tools, it is the Java development product of choice.
Oracle JDeveloper 10.1.3
Oracle eschews Borland and IBM's model of multiple, role-based versions and touts one high-end product at a single low price. The company uses its own GUI, which has an intuitive design that steps around much of the screen clutter of other IDEs.
The interface has another aspect I especially like: It is the only product that feels snappy. With JDeveloper, I feel as though I am working in a taut, highly responsive environment. The timing of start-up delays and other functions show its performance is in a virtual tie with Borland JBuilder, slightly ahead of Sun's product, and significantly faster than IBM's RSA. But at the level of personal interaction with the IDE, Oracle feels fastest.
JDeveloper's feature set maps well to the other packages here. Many of these features, however, are more accessible than they are on competing products, making it easier to get things done quickly.
Oracle also provides some interesting add-ons. The first is a tool that performs a run-time analysis of your code. Based on its examination, the analysis makes suggestions about classes that can be made final. These suggestions go beyond the usual platitudes that all the IDEs (Oracle included) provide as you type in code, such as how to optimize import statements. On the Windows version, JDeveloper includes its own JVM, which is optimized for debugging. (For deployment purposes, however, Oracle reverts back to the system JVM.)
For working with Web services, JDeveloper provides a TCP monitor that enables developers to examine packets individually -- logging their transit and making their data visible. The monitor also permits editing and resending of a request packet.