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.