NetBeans has made large strides in market share (measured by rate of adoption) during the last five years. According to an annual survey of Java IDEs published by New York-based BZ Research, NetBeans was in use at 17.9 percent of respondents' sites in 2005. As of this year, that number had doubled to 35.7 percent. This is by far the largest increase in adoption of any Java IDE during this period. In terms of popularity, NetBeans is now safely ensconced in the No. 2 spot behind Eclipse.
Part of this success derives from the careful attentions of its former host company, Sun Microsystems. When Oracle acquired Sun earlier this year, there was considerable concern in the Java community regarding the fate of NetBeans. This concern was intensified when Oracle withdrew its support for Sun's open source projects, such as OpenSolaris and the Kenai hosting project, among others. NetBeans' fate appeared so uncertain, we postponed this roundup until we could get a definitive word about the IDE's future from Oracle.
Oracle's decision to continue supporting NetBeans was communicated to us by Duncan Mills, the company's head of product management for developer tools. Said Mills, "We actively support both JDeveloper and NetBeans. JDeveloper is used internally and by our enterprise customers, who need a tool that robustly supports the Oracle Fusion Middleware solutions. NetBeans is our IDE offering for users who want an environment to develop with other technologies. We hope that they will eventually want to migrate to Oracle solutions and JDeveloper." With this pronouncement, it is safe to expect that NetBeans will continue its active pace of development. As mentioned in the introduction, due to Oracle's recent Java-based litigation, this continued sponsorship is a double-edged sword.
What stands out about NetBeans are its ease-of-use and a design that favors lightness and simplicity. Even the download site has features that delight. For example, to download NetBeans, you go to a screen that has a grid of the various editions (combinations of plug-ins and platform) preconfigured for certain tasks. Download what you need. Eclipse has a similarly useful feature, whereas IntelliJ and JDeveloper provide a single, omnibus download.
NetBeans' editor with a list of to-do tasks extracted from the code in the bottom panel.
Examining the matrix of options highlights one of NetBeans' distinguishing features: support for languages that other IDEs ignore, namely JRuby and JavaFX. (NetBeans also has built in support for PHP and C/C++.) JRuby was originally developed at Sun, which explains its high profile in NetBeans. Charles Nutter, one of the JRuby lead developers, averred the superiority of NetBeans' language support in a recent conversation with me. JavaFX, the desktop scripting language, is bundled because Oracle strongly committed to the technology. (However, there is widespread skepticism that the language will ever gain traction, so its inclusion might be more for show than in response to user demand.) Unfortunately, NetBeans dropped support for UML diagrams, which it offered until recently.
NetBeans was completely redesigned several years ago, and it retains the simplicity and ease of navigation it acquired then. Things work as expected and the necessary options are rarely hard to find.
Unlike IntelliJ, which performs only syntactical analysis as you type, NetBeans constantly compiles in background. (Eclipse has a similar feature as a configurable option.) This means as soon as you finish editing, you can run the code. NetBeans also creates an Ant build file in the background for each project. A useful resource for developers, the Ant file guarantees that the build done by the IDE can be reproduced exactly by the developer.
NetBeans ships with a built-in profiler, a JUnit unit test generator (that emits barebones tests, not enough to thoroughly test the code, but sufficient to get started), and a wizard for internationalising strings. For enterprise work, a download option bundles Apache Tomcat or the GlassFish Open Server. To monitor running apps, NetBeans uniquely integrates support for JMX (Java Management Extensions) and JConsole.
Plug-ins for NetBeans are significantly fewer in number than Eclipse (and roughly on a par with IntelliJ IDEA). The old wisdom that Eclipse plug-ins eventually migrate to the lesser used platforms has been belied by the reality. As I mentioned previously, many tools today are written for Eclipse and ported no further. Perhaps if NetBeans continues to gain adoption at the same rate it has enjoyed during the last five years, this will change, but for the moment the plug-in gap is NetBeans' greatest limitation. In all other respects, NetBeans is the most user-friendly Java IDE.