Four Java IDEs duke it out

Enterprise environments from Borland, IBM, Oracle, Sun provide remarkable toolsets

For decades, programmers dreamt of development environments in which powerful, integrated tools could provide enormous productivity. The first advanced environments of this kind appeared in the Unix community during the early 1990s. But the inability of hardware platforms of the time to support the computational needs of such complex products condemned them to an early demise.

Today, with developer workstations sporting 3GHz processors and 1GB RAM, truly powerful environments can run without overtaxing the hardware. As a result, the last few years have seen the advent of remarkable products, such as Visual Studio .Net and Eclipse 3.0, that have raised the bar for IDEs.

I examined four leading IDEs for enterprise Java development (and the tool ecosystems bundled with them) from Borland, IBM, Oracle, and Sun. Interestingly, these products all use different IDE metaphors. IBM's product is based on the free open source Eclipse 3.0, which enjoys wide adoption among Java developers; Sun's product is based on the rival open source IDE platform NetBeans; and Oracle and Borland's products are constructed around proprietary user interfaces.

The collections of tools assembled on these foundations vary significantly from vendor to vendor. I chose tool suites that include modeling, substantial Web integration, and J2EE support -- important elements of any enterprise Java platform. These four IDEs are all impressive in their own way and show how far the state of the art has come during the last few years.

Borland JBuilder 2005 Enterprise Edition

The JBuilder IDE was the first modular IDE to support Java. Its architecture is well documented and the guidelines for writing plug-ins are well known; many third-party vendors and open source contributors have written plug-in tools for the platform (a list can be found here).

JBuilder comes in three versions: Personal Edition, which is a freely downloadable, basic IDE plus a few additional tools such as a GUI designer, integrated JUnit framework, and some other items; Developer Edition, which adds a host of features, especially XML and Web support, the latter including servlets, JSP, and JSF (JavaServer Faces); and the Enterprise Edition, which adds Web services, J2EE, CORBA support, and UML diagramming. I reviewed the JBuilder Enterprise Edition.

Because of its maturity, the IDE is the smoothest of the four reviewed here: It has no rough edges, navigation is intuitive, and clicking through tasks never leads to dead-ends or unexpected dialog boxes.

Should you become lost, an excellent help system is available -- the best among the four. And for developers who prefer to begin with tutorials, Borland provides many clear, well-designed options.

JBuilder's support for the features expected in a high-end enterprise IDE are all solid, well-thought-out, and practical. The sole exception is the generation of build files for Ant (an open source "make" utility commonly used in Java), which is cumbersome. Other than this odd shortcoming, the environment is a pleasure to use.

Beyond the IDE functionality, JBuilder 2005 provides support for some unique technologies, such as integration with CORBA, code obfuscation, and code security analysis via a bundled Fortify plug-in. (Read a review of Fortify Software's stand-alone tools.)

JBuilder also has remarkably complete support for XML and its numerous derivatives, a good HTML editor, many useful tools for Web services development and testing, and support for J2ME and WAP. No matter which technology is integrated into your Java project, JBuilder likely supports it.

thumb58002.gif
Click for larger view.

Modeling, however, is weak. The package supports only two UML diagrams. This shortcoming results from Borland's acquisition of Together, a high-end modeling package that the company points you to if you need robust modeling. As of early March, Borland adopted a sales model that combines Together with JBuilder and other Borland tools depending on the needs of the developer. This role-based product suite, called Core SDP, will form the basis of Borland's enterprise offerings from now on.

Another interesting note: At the annual Eclipse user conferencein March, Borland announced that it will ship a set of Eclipse plug-ins that duplicate the functionality of JBuilder 2005. How long the company will support two GUIs for the same product is hard to guess, but the announcement suggests that JBuilder 2005 might eventually make a transition to Eclipse. If it does, it will abandon a terrific IDE, around which Borland has built impressive functionality.

IBM Rational Software Architect 6.0

IBM's new line of Rational Software products replaces the WebSphere Studio family. RSA (Rational Software Architect) 6.0 is -- despite its version number -- the first generation under the new moniker. Of the various suites I reviewed, RSA has the broadest sweep.

IBM uses the same role-based model as Borland. RSA 6.0 is built upon several layers. Just underneath is Rational Web Developer, which omits a substantial portion of the modeling functionality; below that is Rational Application Developer, which lacks the Web-facing design capabilities. At the very base of the stack is Eclipse 3.0, the freely available Java-oriented IDE that is gaining tremendous popularity (see "Eclipse Casts a Long Shadow," page 36).

Unfortunately, almost all of RSA's drawbacks arise from this bottom layer. First, Eclipse is not an intuitive interface. Until you've practiced with it for a long time, you are likely to come across inexplicable dialog boxes or unexpected pathways. IBM simplifies the task with a set of terrific tutorials, yet the IDE is still more difficult to navigate than JBuilder 2005 or Oracle JDeveloper.

The RSA interface is also notably slower than those two products. It never quite reaches the point of frustrating users, but it feels sluggish and lacks the snap of the other products, especially when switching among views of a project (such as moving from design to coding).

Part of the sluggishness is due to the amount of software IBM has wrapped around the Eclipse base -- a remarkable collection of enterprise-oriented software spanning 14 CDs. This includes IBM's WebSphere application server as a test environment, an entire software stack for developing Web portals, and tip-top modeling and design tools.

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.

Other tools in Oracle's software-development suite provide higher-level support for Web services, such as orchestration and BPEL (Business Process Execution Language).

The principal limitation of JDeveloper lies in its UML modeling, where the product supports only the "big four" diagrams: activity, class, sequence, and use case. JDeveloper does support several non-UML diagrams such as page flows for Struts and EJB diagramming.

While not as feature-rich in enterprise architecture as Borland or IBM, Oracle JDeveloper provides all the functionality most developers will need. And given its considerable price advantage over those two competitors, it's likely to be the product of choice for many sites.

Sun Java Studio Enterprise 7

In the 1990s, few vendors offered development tools as advanced as Sun's. The company was the first to make many innovations, such as the ability to change code in the debugger and continue running.

However, Sun lost its mojo when it came to Java development tools, and it let other vendors take away a market that was rightfully its own. The release of JSE (Java Studio Enterprise) 7 is specifically aimed at

re-establishing Sun in the Java tools market. The company worked hard to refine the product and, in the process, it has delivered several unique features.

JSE is based on NetBeans, the open source platform that competes with Eclipse. Despite Eclipse's recent ascendancy, NetBeans is a worthy platform, capable of doing most everything Eclipse can do. And like Eclipse, NetBeans enjoys the support of numerous plug-in developers, even though Eclipse has a much greater number of active plug-in projects.

In many respects, JSE is unique: It provides striking features the other packages lack, and it lacks some tools all the other packages offer. JSE's two unique and truly meritorious features are collaboration and execution profiling.

The collaboration function puts all developers using JSE in a special

IM-like session so they can exchange messages, code, and all forms of artifacts. Whiteboarding support is also included, and there are separate channels for private and public conversations.

Once configured, the collaboration feature comes up automatically when JSE is started, so that by sitting down to work every member of a group is immediately plugged into the team.

JSE's other impressive feature is its load simulator. Distributed applications are notoriously difficult to test; they often require complicated set-ups in order to recreate loads that might represent real-world activity. Being able to test performance from within JSE (using its built-in load testing) means significant time savings for developers working on enterprise applications.

Although not unique, Sun's support for numerous UML diagrams is impressive -- only IBM's RSA is its equal.

Unfortunately, the rest of JSE falls a little short. It does not support Struts or JSF; instead, it uses Sun's own WAF (Web Application Framework). That's hardly a tempting alternative, as there are already too many Java technologies competing for the Web UI portion of enterprise applications.

At a coding level, JSE provides few refactorings and little in the way of code-improvement suggestions. Finally, the interface has some disturbing aspects, which suggest that the Windows version of JSE is a straight port from Solaris.

For example, dialog boxes occasionally ask you for the location of mounted file systems or mount points. These terms do not exist in the Windows world (with the exception of certain rarely accessed system internals), but are common in Unix. The problem is compounded by the fact that the help system does nothing to assist the Windows developer in figuring out what JSE is asking for in these dialog boxes.

JSE 7 puts Sun back on the map for enterprise Java development. But unless you need its specific unique features -- which are truly impressive -- the other products in this review are likely to be better choices.

Strength Across the Board

No other major programming language today enjoys programming environments as rich as those reviewed here; even Visual Studio .Net 2003 looks pallid by comparison, although the forthcoming Visual Studio .Net 2005 is expected to narrow this gap.

But despite the quality and the extensive functionality of these four IDEs, they all lacked elements I think they should have included long ago.

Some simple coding functions are missing. Why aren't we able to spell-check literals or resource bundles, for example? Also, more-advanced features have only minimal implementations. For example, the GUI builders from Borland, Oracle, and Sun generate only Swing code, almost

as if the Standard Widget Toolkit did not exist.

With the exception of Borland, the XML editors were modest when they should have been robust, and likewise the HTML editors. No product could generate meaningful unit tests in the way that third-party tools, such as Agitar Software'sAgitator, do. Instead, the IDEs create only stubs for JUnit, even when the tests for a given class are obvious.

Keeping up with the latest standards also seems challenging for these products. Although all were released within the last 90 days, only Borland has support for JDK 1.5 (or 5.0). And only Borland integrated with Subversion source control management, even though Subversion is clearly taking over as the top choice among source-code management tools. As you can see, although these are terrific environments, there is plenty more they could do.

Evaluating IDE Options

The only way to buy technology -- be it hardware or software -- is to know your needs well. You will be obliged to take this preparatory step in the case of Java IDEs, because these four products are all well designed and well implemented.

There's a natural pairing between the Borland and IBM products, as they are the two packages targeting large, enterprise projects with specific support for software architects. In both cases, the additional products sold by these vendors can provide extra functionality, should it be necessary.

Of the two, IBM is the most feature complete, but it runs somewhat more slowly and its interface is less intuitive than Borland's.

If your needs are not quite at the architect level, then Oracle's JDeveloper is a good choice, although Borland is a worthy competitor in this space as well. If price is a factor at all, then Oracle is the hands-down winner. For now, Sun JSE 7 can only be recommended for those developers who need its unique collaboration, profiling, and load-testing features.

All four vendors make evaluation copies available for free download if you'd like to give them a trial run. Installing, configuring, and testing these products, however, is no easy job. I suggest that you begin with the Oracle product, which is the easiest to install and, in most cases, will provide most of what you need.

If Oracle JDeveloper's modeling limitations constrain you, then I recommend downloading both Borland JBuilder (remember, it's the Enterprise Edition) or IBM Rational RSA. No choice between these two products should be made without comparing them head to head.

InfoWorld Scorecard
Ease of use (20.0%)
Value (10.0%)
Features (40.0%)
Integration (20.0%)
Performance (10.0%)
Overall Score (100%)
Borland JBuilder 2005 Enterprise 9.0 7.0 8.0 9.0 9.0 8.4
IBM Rational Software Architect 6.0 8.0 8.0 9.0 8.0 7.0 8.3
Oracle JDeveloper 10.1.3 9.0 9.0 7.0 8.0 9.0 8.0
Sun Java Studio Enterprise 7 7.0 8.0 7.0 8.0 8.0 7.4
From CIO: 8 Free Online Courses to Grow Your Tech Skills
Join the discussion
Be the first to comment on this article. Our Commenting Policies