|
IDE Wars: Has NetBeans 4.1 Eclipsed Eclipse?
by Drew Falkman
In the early days of open source J2EE Integrated Development Environments (IDEs), I experimented with both NetBeans and Eclipse. Ultimately, I opted for Eclipse. At the time, Eclipse appeared to have a more intuitive UI, faster performance and a deeper library of plug-ins to enhance my development experience. Since then, I have stuck with Eclipse.
Despite this, I have felt that Eclipse is getting slower over the versions, while, at least the word on the street is, NetBeans has evolved in the other direction. NetBeans recently announced significant refinements to the User Interface (UI), more J2EE support, and more support for mobility applications, all of which has created significant buzz in the J2EE world. Now, this open source organization (backed by Sun Microsystems), is in beta with a 4.1 upgrade (full release scheduled for May 2005). In fact, a quick search on the Internet will find you literally hundreds of blogs and newsgroups postings stating that NetBeans is performing rather wellon all platforms, including Linux.
It seems that a lot of developers are either migrating to NetBeans or evaluating itdue to all the new features and the fact that there is no longer reportedly any discernable difference, performance-wise. Apparently, they're switching in spite of the fact that IDE migration is generally prohibitive, since it takes a good chunk of time to get back to normal productivity levels.
It kind of sets an Eclipse developer to wondering: is NetBeans really that good? Has Eclipse been, well, eclipsed?
SWT vs. Swing
Any review on NetBeans would be remiss if it didn't mention the contentious battle that rages in this sphere. There are two camps: the Eclipse camp (formerly managed by IBM, now only significantly influenced by IBM) and the NetBeans camp (managed by Sun Microsystems). This battle is fought by ground soldiers (us coders), but strongly fueled by the giant power players. The weapons are the feature sets, UI, plug-in availability, and overall usability.
One of the key points of contention is that of the Standard Widget Toolkit (SWT) vs. Swing. Basically, SWT uses Java Native Interface (JNI) to interact directly with the native UI library of the application's host operating system. So it's a pure Java system (except, of course, for the actual libraries it calls on at runtime). The idea is that because it uses native UI features, it will perform better within each UI it executes in. However, the NetBeans camp has implemented a Swing interface. Swing is part of the J2SE specification, and this is one of the main reasons that proponents feel it is superior. That said, Swing is notoriously slow to render. This has not gone unnoticed to the J2SE team, who has put considerable effort into increasing the performance of Swing. This is at the core of our evaluation criteria.
| Author's Note: Remember that both of these IDEs can be used (and are often positioned) as a code base for developing desktop or rich client interfaces. Really, in both arenas the IDE is simply an implementation of this core shell. |
The heart of all this conflict really boils down to one issue: performance. SWT vs. Swing. Java developers have been debating SWT vs. Swing since the release of these two IDEs. More specifically, the debate has been about using SWT or Swing on Linux platforms.
One of the arguments against SWT is simply this: it's not part of the Java specification. SWT proponents argue that the responsiveness of a native application can outperform any pure Java implementation. Who is right? That is still up in the air, but it does seem that performance issues have at the very least leveled out, leaving the ultimate determination up to the other features of the IDEs.
What's New in NetBeans 4.1
As a matter of history, and for those (like myself) who may not have been paying attention, happily coding away in their other IDE of choice, NetBeans 4.0 was the probably the most significant upgrade to NetBeans. The release of 4.0 saw a significantly enhanced UI, added refactoring support, more thorough integration of the Ant build tool, and much better J2EE support. In short, 4.0 addressed all those features that had been previously better implemented in Eclipse. That said, NetBeans 4.1 contains yet more significant improvements, including the following:
- Better class navigation, project configuration and classpath configuration
- Enhanced Enterprise JavaBeans (EJB) tools
- Easy Web services creation/consumption
- Better project importation (both J2EE and J2SE and J2ME-MIDP)
- Java 5.0 support
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|