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.
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.
You may still be better off sticking with Win7 or Win8.1, given the wide range of ongoing Win10...
Now that we're down to the wire, many upgraders report that the installer hangs. If this happens to...
Based on a technique created by a German blogger, here's how to stop wasting hours checking for Windows...
The swirl of new enterprise tech settled a bit in 2016, leaving a clear framework for the future -- and...
Picking an Android phone can be difficult, but we're here to help. These are the top Android phones you...
What does the future hold for Python, aside from new versions of the language? Let's check the crystal...
Thanks to stalwarts like MySQL, MongoDB, and Cassandra, the database realm has been a haven for open...