Andrew Binstock compares popular favorite Eclipse 3.3 and recent Jolt award winner NetBeans 6. Find out how these free, open source development environments compare out of the box, feature-for-feature, and gain insight into the hidden quirks and bonuses that could make deciding between them easier.
There is perhaps no area of programming tools where competition is as intense as in the Java IDE market. Even though there are only four primary players -- Eclipse, NetBeans, IntelliJ IDEA, and Oracle JDeveloper (Rational and CodeGear JBuilder build on Eclipse) -- all vendors except Oracle watch their competitors intently and rush to add new differentiating features. (Oracle's product is primarily aimed at internal use and at buyers of the company's Fusion Middleware stack.) The competition is most intense between Eclipse, NetBeans, and IntelliJ IDEA, likely because those products have the most active communities of users and those users tend to be personally attached to their preferred environment. Of the three, only Eclipse and NetBeans are free and open source.
The timing of this review is driven in part by the release of NetBeans 6.0 in late 2007. This new version is probably the most important in the product's history -- a history that predates the other IDEs. NetBeans was first released by Sun in 1999, after it was acquired from a Czech firm; it was open-sourced a year later. During most of the intervening years, NetBeans has been an inferior product to Eclipse. No matter how much you might have disliked Eclipse, switching to NetBeans was not a wholly palatable choice. It had brilliant features, no doubt, but it lacked basic conveniences all the other IDEs offered. As a result, those who tried NetBeans often found it a frustrating product.
Sun finally got the message and during much of 2007 it completely revamped the IDE's editing functionality. In a fit of surprising candor, the project leads specifically announced that their goal was to provide an editing experience similar in quality to that of IntelliJ IDEA, a product distinguished by its friendly and intuitive interface. NetBeans 6.0 fulfills much of this mandate and has really elevated itself into the same tier as Eclipse. For the first time, serious Java developers have a true choice when it comes to free, open source IDEs.
This review looks at NetBeans 6.0 and Eclipse 3.3/Europa side by side, comparing them out of the box based on the principal factors that typically weigh in the choice of an IDE. The review concludes with a graded checklist, which is based on my weightings and priorities. You can use the checklist as a framework for evaluating which IDE best suits your needs and preferences.
The out of the box experience
Both IDEs are simple to download and install. For this review, I examined Eclipse v18.104.22.168 (Europa) and NetBeans v6.01. The download Websites for both products offer various configurations of features and plugins to match your project needs.
Eclipse installation consists of unzipping a download file. As long as you have Java 5 installed on your system, simply clicking on the Eclipse icon will get you started. Once you do, however, you are confronted with an annoyance particular to Eclipse -- workspaces. A dialog box appears and asks you to specify your workspace, which is defined in this dialog as the place where Eclipse will put your projects. Why do you need a workspace and what pieces of your projects go there? Does test data go there, do integration tests? You can't tell and -- here's the rub -- Eclipse won't tell you, because this dialog has no Help option.
If you later create a project and don't place it at the first-level subdirectory of your Eclipse workspace, you receive an error message. If you click on the Help button to find out more information, the help system takes you to a generic menu, from which you have to work your way back through the links to the dialog in question. Even then, the insistence on projects being in first-level directories is never explained or even mentioned. The help system in Eclipse is one of its most conspicuous weak points, and the need for workspaces as special project areas is one of its peculiarities.