Netbeans 4.1 RC2 Impresses
I like integrated development environments (IDEs). When implemented correctly they make development very efficient, especially for the Lone Coder. I got bitten by the IDE bug with Borland's Turbo C 1.0 when it was released back in the late 80's. I drove over to a local college bookstore (UCF) and picked up my very own copy when it first came out. From that moment forward I've used IDEs on every environment and for every language (and yes, folks, emacs does qualify as an IDE).
The best IDE out on the market today is Microsoft's. While Borland might have started early and had a long distinguished run, in the end Microsoft overcame all odds. The only problem with the Microsoft IDE is the cost. Depending on what features and languages you purchase from Microsoft, getting to use its IDE can range from pricey to too-damned-expensive-for-my-budget. Oh, and the obvious limitation: it's only available for Windows.
For the most part I've stuck to emacs (and even xemacs) and dabbled with free IDEs for some years now. Those free IDEs included Sun's Netbeans, IBM's Eclipse, and Borland's JBuilder Community. Over time Sun's and IBM's IDEs have improved to the point where they now challenge every other commercial IDE at the low end, and encroach on them in the middle of the market.
A Satisfied Eclipse User
I use Eclipse for most of my work. I've used Eclipse since version 2, and Eclipse just keeps getting better. It's a fast and very powerful Java development IDE. The latest version, 3.1 M6, is still under development, but its added features over 3.0 are so compelling that I've pretty much moved to it for all my work, going back to version 3 only for those plugins that are not yet available for 3.1 (such as the Laszlo IDE).
Eclipse also works on the two operating systems I care most about, Linux and Windows. It provides equal capabilities on both operating systems, and the plugins I've accumulated over time allow me to program in C++, Python, and Ruby as well as Java. I've also installed plugins that allow me to work with Tomcat, JBoss, Hibernate, and MySQL. In short I have a very complete development environment running on top of a complete development management foundation.
But that hasn't stopped me from pulling down and trying out Netbeans.
I've been quite impressed with Netbeans since its 4.0 release. I still felt Eclipse was superior to 4.0 for my needs, but I did appreciate the great amount of progress and polish that went into the 4.0 release compared to the 3.6 release. It ran much faster and looked considerable better than any other release of Netbeans before 4.0.
Now I've been working with Netbeans 4.1 (RC2) and I must admit that it has pulled equal with Eclipse 3.1 (M6). And that, to me, is astounding. Sun and the Netbeans crew have been working very hard to improve Netbeans 4.1 and it shows. It also ties in with Sun's hard work to improve Java in general. I've been working with J2SE 5 since its beta, and I believe that J2SE 5 is the best release of the language to date. What the release of J2SE 5 and Netbeans 4.1 shows is that Swing can be as efficient and as good looking as Eclipse's SWT/JFace combination.
As a test of Netbeans 4.1 I have created several projects. One of them was simply to check out (via cvs) SwingX, new extensions to Swing that appear to be answers to the SWT/JFace challenge of richer, easier-to-use GUI components (see https://swingx.dev.java.net for more details). The swingx code was saved as a Netbeans project, so once it was checked out locally I was able to open it as a Netbeans project. I then went over to the Javalobby J2EE programming forum and typed in an example that used swingx (see "SwingX: Translucent Panels 101" by R. J. Lorimer). I was able to quickly and easily type in the example code, and it was every bit as fast and easy as if I had done everything in Eclipse.
What's more interesting is that out-of-the-box Netbeans can do many of the functions that I have to load external Eclipse plugins to accomplish in Eclipse. With 4.1 I was able to attach to and work with MySQL as well as Tomcat (Netbeans comes bundled with Tomcat 5.5.7). Netbeans is aimed squarely at making programmers productive developing Java applications without having to add anything else to the package. This is a different emphasis from Eclipse, which has worked on making Eclipse as extensible as possible. But somebody must have been looking at what plugins Java programmers were downloading for Eclipse, because the built-in capability with Netbeans hits all the sweet spots.
A Powerful Competitor
Granted I'll need to do some more serious testing over time before I can make a more definitive comparison, but right now at first blush I really have to hand it to Sun. It is as fast and as powerful as Eclipse on both Windows and Linux. Sun has evolved a powerful and open development tool. And it has one very compelling point in its favor that Eclipse lacks. The UI is Swing, and I know Swing a lot more than I know SWT and JFace. I have been looking to build stand-alone applications on top of the Eclipse Rich Client Platform, but I am now reconsidering that decision in light of Netbeans 4.1.
Way to go Sun!