NetBeans vs. Eclipse. This used to be a flashy debate but is losing luster with the rapid adoption and growth Eclipse as a platform for developing rich client applications. Perhaps this will explain why.
My IDE History
I've used almost every major Java IDE produced and, for four years, was lucky enough to be one of a few folks to write webMethods Developer, the webMethods IDE for integration development. I started writing Java in 1999 using Metrowerks CodeWarrior, moved to Visual Cafe, then to JBuilder for awhile. Before Eclipse, I was using IntelliJ IDEA. With the exception of Emacs, I've used a myriad of raw text editors along the way as well (TextPad for Win and VI for Unix are still my favorites).
To this day, IDEA 4.5 remains the best pure Java IDE made. Even so, for the last year or so, I've been using Eclipse as my Java IDE, mainly because I've been developing plug-ins for it as a Rich Client Platform (RCP) app.
We seriously evaluated NetBeans in 2003 before picking Eclipse. The worst of it was in leaving IDEA, a more mature and easy-to-use Java IDE. But it didn't make sense to use IDEA to develop and test Eclipse plug-ins. This was our key use-case and the one area where, naturally, Eclipse had the edge.
The Extensible IDE
Both NetBeans and Eclipse broke new ground by assuming from the start that the platform would and should be heavily extended. The very heart of their architectures affirms this. NetBeans was the first to do it and this seemed to be their main selling point, initially. Eclipse entered the extensible IDE scene not long afterwards, rocking everyone's world with SWT.
But, in 2003, as a Java IDE, NetBeans was sub par compared to IDEA or JBuilder. NetBeans functionality was limited in comparison and their terminology ("mounting file systems," etc) was reminiscent of Unix. At the time, my learning experience on NetBeans was less intuitive than any of my previous IDE conversions. It didn't come close to the kind of refactoring support that IDEA or Ecplise had (still doesn't actually). It put a bad taste in my mouth.
More recently, NetBeans 4.0 seems to have smoothed out many of these wrinkles. It's tightly integrated and seems to startup and respond much faster than it used to.
Eclipse is More
As an Java IDE, Eclipse is good-enough. However, the new dominance of Eclipse, I believe, is mostly due to its support and adopted vision for using it as an any-purpose rich client application. Granted, I haven't analyzed NetBeans with this perspective for awhile now. What I do know is that writing new rich client apps with Eclipse is remarkably easy with all the Eclipse framework code and wiring. It's nice not to worry so much about improving framework and just focus on the important stuff.
We recognize that using Eclipse comes with the risk of having less control over the guts of thing but we anticipate minimizing this by staying actively involved in Eclipse.org. Plus, so far, the Eclipse guts seem good enough to us. SWT on Unix is a sore spot that should work its way out. Swing with Java2D also had an early reputation as being slow (on all platforms).
Now, no one really considers NetBeans when discussing rich client applications. NetBeans 4.0 and newer may change this but right now, Eclipse is where it's at. Rarely do I see vendors claiming to have "NetBeans" plug-ins.
So, to summarize, there's no real debate here. This isn't to say that NetBeans 4.0 isn't a decent or, even, really good Java IDE. But that's not what keeps drawing more and more people to Eclipse; it's everything: the richness of the framework code, the massive and growing community, IBM's continued commitment, and continuous buzz that continues to surround it.
- Popularity Statistics: http://www.benjaminbooth.com/2005/03/eclipsenetbeans.html
- IBM's View : http://www-106.ibm.com/developerworks/library/os-ecnbeans/?ca=dgr-lnxw41NetBeans
- Sun's Views:
- Tim Bourdreaux, NetBeans' senior developer, product manager, and head of marketing on NetBeans and Eclipse: http://www.softwarereality.com/soapbox/boudreau_interview.jsp
- Charles Ditzel suggesting we're moving to NetBeans: http://cld.blog-city.com/read/1126337.htm