IDE Strengths by Development Area
I will be the first one to admit that no review is perfect. The respective team behind each IDE probably could make counterarguments to the many points in this article. It is simply impossible to evaluate all the possible development needs (and this review barely covered topics such as RCP, UML, JUnit, and reporting support), so obviously your choice of IDE should be based heavily on the particular Java technology with which you are most comfortable.
Each of the IDEs reviewed here can do an admirable job in pretty much every facet of Java development. However, some are better than others, depending on whether you are doing Swing, web, or enterprise development. So I organized the review summary into these subject areas.
If your shop specializes in Swing development, NetBeans is definitely the way to go. Matisse is simply way ahead of the competition. If for corporate reasons you have no choice but Eclipse, then I definitely suggest MyEclipse with its Matisse4Eclipse builder. After those two choices, I would rate IDEA (due to its support for JGoodies Forms) next and Eclipse's default Visual Editor dead lastway behind any competition. It should simply be avoided, period.
Things are a lot more heated here. I would give a clear advantage to IDEA, followed by MyEclipse, and then NetBeans. Due to lack of build-in Struts support, the base distribution of Eclipse isn't much of a contender.
The three are in quite a tight race in this category as well. Once again, I feel IDEA comes out on top here, followed closely by Eclipse/MyEclipse, and the basic support offered by NetBeans in last place. Admittedly, this ranking would look a lot different if you take the NetBeans Visual Web Pack into consideration (assuming its limitations are acceptable), which would move it into the front of the pack.
For JPA support, I would rank NetBeans first (simply due to the quality of its generated code and support for properly setting up the persistence units), followed by IDEA, and lastly the still limited functionality of Eclipse's Dali project. If you are willing to abandon the standard JPA approach and accept straight Hibernate as an alternative, then MyEclipse becomes a worthwhile contender as well.
For enterprise development, I'd say IDEA wins out with its rich support for both J2EE and Java EE 5, followed closely by NetBeans (which also does an impressive job here), and last is Eclipse/MyEclipse (mostly due to their current lack of support for Java EE 5).
Ignore .NET at Your Own Peril
If Eclipse is the 800lb. gorilla of Java IDEs, Microsoft is a menacing 10-ton King Kong somewhere in the background. As someone who has done a lot of work in C#/.NET in the past few years, I keep quite up to date on what Microsoft is doing in .NET 3.0 and its next version of Visual Studio (codenamed "Orcas"). I hope none of the Java IDE vendors are getting too comfortable and resting on their laurels, because Microsoft is putting a massive amount of R&D effort in both libraries and development tools. Thus, the Java ecosystem can remain healthy only if it can match that (or even better, exceed it as in my humble opinion it has done with Matisse, JPA, and EJB 3.0).
Companies and technologies that have ignored Microsoft's impact have usually ended up in the dustbin of IT history (and I write that as an ex-Sybase/PowerBuilder developer who has seen a once great tool mercilessly crushed under the weight of both its own mistakes and Microsoft's seemingly never-ending resources). I am very glad to see that the mistaken old Java mentality of "release the APIs first and then wait for the development tools of varying quality to appear much later" is being aggressively replaced with "release the APIs and world-class development tools for them as soon as possible", since that is exactly what Microsoft has been doing for years.