Both products are Open Source; NetBeans is released under a variant of the BSD license, while Eclipse is licensed under the Common Public License (CPL), which appears to be more like the GPL than the BSD license. NetBeans also has a supported commercial flavour, the Forte product from Sun. This hybrid model seems to be becoming very popular, and I shall write about it in a future blog (or article!).
At question is IBM's choice of GUI toolkit. While NetBeans uses Swing, and thus has the distinct advantage of running on just about any supported platform where there is a JVM, Eclipse has its own, called the Standard Widget Toolkit. Using the SWT means that IBM is eschewing the standard Java GUI toolkit. I don't really see this as such a big deal - there are plenty of development tools that aren't written in the same target language, so although NetBeans is in some ways more "pure", Eclipse still gives you a rich platform to build whatever 100% Pure Java applications you might wish to build.
Having said that, one very nice thing about NetBeans is that one of the wizards available when you select File|New is to build a NetBeans plugin, so you can use it to extend itself! That sort of orthogonality and modularity is very valuable. I'm not sure if Eclipse has quite the same feature.
Having used both, I have to admit that NetBeans can be quite sluggish on anything but a recent PC. And anyone who has looked at Eclipse will concede that IBM has done a very nice job at producing a slick and responsive GUI.
Fortunately, there is nothing precluding you from developing a Swing app using Eclipse. The only question therefore is whether or not it makes sense for the IDE itself to avoid using Swing. IBM seems to have made a value call, and they have added some impressive features to Eclipse.
Now having said glowing things about Eclipse, I must say that NetBeans has some very nice features also. It has plugins for everything from XML to CORBA, and databases in between. And it seems to be improving at a good clip.At the end of the day, all we can really do is evaluate both products, and choose the one that best fits our needs. I will probably use both, on various projects for different reasons.
One cannot, of course, help but wonder if someone in IBM had a dry sense of humour in the choice of name - I wonder if they meant for their efforts to mean a Total Eclipse of the Sun?
All I can say is vive la difference! The more high-quality tools in the Java marketplace, the more compelling it is as a developer platform. And that is how we all benefit.