NetBeans attempts to eclipse Eclipse
Java IDE market gets tighter with Version 5.0's tech upgrades, new Matisse GUI builder
NetBeans 5.0 is a substantial upgrade to what was already a very solid IDE. This release reveals many new features, enhancements,
and a slight repositioning, as Sun attempts to shine the spotlight on aspects that take NetBeans beyond the pure-play IDE.
Several NetBeans features lack direct counterparts in competing products, so it will be of great interest to sites that have
specific needs such as designing GUIs for desktop Java applications and intensive collaboration requirements. However, I found
that implementation details sometimes lacked care and attention to detail, resulting in a few rough edges.
About the author
Andrew Binstock is the principal analyst at Pacific Data Works. He
previously was in charge of global technology forecasts at
PricewaterhouseCoopers. Earlier, he was the editor in chief of UNIX
Into the IDE
The NetBeans IDE is a well-designed environment for developing Java. It is more intuitive than Eclipse and, as opposed to
that product, it does not get in the way of developing. You can create a complex project, code away, import resources, and
build and debug the executable in NetBeans without ever looking at tutorials or consulting the help system. That's an almost
impossible feat for a first-time user in Eclipse. NetBeans 5.0 has a large set of refactorings, extensive code completion,
CVS (Concurrent Versions System) support integrated within the core IDE (support for Subversion is available by free plug-in),
and practical, easily customized templates that convert short escape sequences into entire routines. These features are found
in other IDEs as well, but I found their implementation in NetBeans particularly intuitive. As do most Java IDEs today, NetBeans
indicates errors and incomplete statements as you type in a manner comparable to the IntelliSense feature in Microsoft's Visual
Studio. Unfortunately, the error indicator lacks finesse in NetBeans. For example, the simple omission of a semicolon at the
end of a line of code results in the entire line of code being highlighted, rather than just the errant end of the line. This
is a small complaint, but along with some other minor misbehaving features, such as incorrect printing of files to HTML, it
occasionally gives the IDE an unfinished feel. NetBeans does have some innovative features at this basic level: The project
metadata format is an Ant file, which makes it possible for users of other IDEs to load up a project developed in NetBeans
and make changes, even if they don't have the product. Enterprise Java is well supported. NetBeans bundles Apache Tomcat,
which can be started, stopped, and administered from within the IDE. J2EE servers—such as WebLogic, JBoss, and soon IBM WebSphere—are
supported in similar fashion, and NetBeans can deploy Web apps to those servers correctly; it knows where files need to go
and what the server expects in terms of configuration. These capabilities illustrate a basic tenet of NetBeans: Tools are
integrated such that you never have to leave the environment to perform development-related work. You'll also find an integrated
database explorer and an HTTP inspector (to see what data is sent to the Web app and exactly what data is returned), among
other bundled tools.
The true jewels
NetBeans 5.0 also provides a built-in code profiler, automatic collaboration, and a brand-new, state-of-the-art GUI form builder.
These three crown jewels distinguish NetBeans from other Java IDEs. The performance profiler is integrated into the IDE and
presents data on the running program, including a timing profile for every thread and a memory-usage profile for the entire
app. This data is invaluable in tuning code and is generally provided by third-party tools, such as those from Quest and Compuware.
In NetBeans, it's a mere button click. The resulting data can be stored in a snapshot for comparison with previous or future
runs. The collaboration tools are almost automatic. When you start up the IDE, you can elect to be immediately logged on to
an IM-like service, allowing you to contact other team members and easily share code and development artifacts without leaving
the NetBeans environment. This integrated collaboration is an elegant way of extending the idea of NetBeans as the principal
home environment for developers. Currently, the collaboration service is hosted by Sun, and team members must have log-ons
for that specific server—log-ons are provided at no cost. Companies that want to host their own collaboration servers for
security purposes need to run Sun's Java Studio Enterprise, which is a free—but closed source—enterprise-oriented IDE based
on NetBeans. Version 5.0's new GUI builder, named Project Matisse, greatly assists developers in designing Swing-based forms
and screens. It uses the usual metaphor of dragging and dropping controls and widgets from a palette onto a screen. However,
Matisse adds pop-up guide bars and manages the location of controls as prescribed. New fields are automatically aligned with
existing fields, and changes to one item result in the necessary changes to the others, so the endless tweaking of forms to
get them to look exactly right is now a thing of the past. With Matisse, you drag, you drop, and the form comes out correctly
on the first try. This feature alone makes NetBeans worth having. Sun has made clear its plans to morph NetBeans into a platform
and not limit it to being just a Java IDE. For example, an upcoming release of NetBeans will formalize support for C/C++ and
offer a separate "enterprise pack" that includes UML modeling capabilities and SOA (service-oriented architecture) tooling.
These innovative features, and an appealing road map for future functionality, show that Sun is aggressively working on NetBeans.
If the company can attract greater vendor participation via the development of plug-ins and polish NetBeans' features a little
further, this IDE will easily become Eclipse's principal rival.
The other Java IDEs
The Java IDE market is currently a four-way battlefield between Eclipse, NetBeans, Oracle JDeveloper, and JetBrains' IntelliJ.
(Borland's lack of updates for JBuilder and the company's announcement that it is trying to find a buyer for the product preclude
its inclusion in this list.)
The 800-pound IDE gorilla is Eclipse
. Its leadership position is due to the Eclipse Foundation's ability to partner with a wide variety of third parties. Outside
of Windows-oriented development, vendors and open source groups provide IDE plug-ins for Eclipse before all other IDEs, while
the other products wait for customer demand to drive a ported plug-in. As a result, Eclipse can legitimately claim it has
established itself as a tools platform, rather than a single-language IDE. Its support for C/C++ and COBOL—and soon for PHP—bolster
this claim. The road map shows Eclipse focusing on ALM (application lifecycle management) and extending itself to cover the
full enterprise tool chain, not just the modeling and programming components. While this expansion work is going on, however,
the Java IDE portion has lain fallow. Last year's sole upgrade added few noteworthy features, and this year's list of new
capabilities do not address the difficulties of using Eclipse—a shortcoming acknowledged by many of its devout fans. This
neglect creates opportunities for competitors.
The fastest and probably the smoothest of the free Java IDEs, JDeveloper
continues to evolve quietly. This quiet is due to Oracle's peculiar policy of not letting tools have higher release numbers
than the core DBMS. As a result, JDeveloper 10.1.3 looks like a minor point release. It's not—it's much bigger than that.
This version has excellent database support (naturally), very good built-in modeling tools, terrific J2EE deployment capabilities,
extensive Web services functionality (including a SOAP monitor), plus state-of-the-art support for JavaServer Faces (JSF),
the sequel to Struts. In addition, the product's code auditing and code suggestions are second to none. Although it lacks
NetBeans' collaboration and the slick Matisse GUI builder, I believe JDeveloper is the most feature-rich free Java IDE available
Quality of implementation defines IntelliJ
. The interface is utterly intuitive, with most commands merely a right click away. The code support is more extensive than
most IDEs, with highly configurable error-sniffing capabilities and extensive online help. It also includes well-designed,
advanced tools for Web development, such as HTML, XHTML, JavaServer Pages (JSP), and so forth. Although it lacks the modeling
tools present in some of the other for-pay IDEs (specifically, Rational's extensions to Eclipse and JBuilder), IntelliJ remains
one of the finest environments in any language for pure coding. Today's Java developers fall roughly into three categories:
architects and modelers who work from diagramming levels; Web-facing developers, who work primarily with JSP, Struts, and
JSF (JavaServer Faces) technologies or their equivalents; and straight-ahead developers, who work mostly in pure code. The
last group is particularly well suited to the Eclipse IDE, which provides technology closely attuned to the coding experience.
With Eclipse, pure-code programmers will find considerable functionality, a large and active community, and many resources
to maximize their productivity. Nonetheless, the Eclipse interface is not intuitive, and it takes practice to navigate comfortably.
For functionality comparable to Eclipse, but with an easier interface and a low price, I suggest looking at IntelliJ IDEA
from JetBrains, which presents an excellent alternative that should be evaluated by any site considering adoption of Eclipse
for Java development. Either way, you will secure a tool that is the envy of all other language developers.