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.

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 (Ant is the default build utility in Java), 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, code-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 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.

InfoWorld Scorecard
Ease of use (20.0%)
Value (10.0%)
Integration (20.0%)
Performance (10.0%)
Features (40.0%)
Overall Score (100%)
NetBeans 5.0 9.0 9.0 7.0 8.0 8.0 8.1