Good programmers invariably have a deep, intimate knowledge of their development environments -- be they full-blown IDEs, such as those reviewed here, or editors, such as emacs and vi/vim. This familiarity would suggest a high bar to switching IDEs, but in fact surveys show that many developers move to new IDEs every few years.
This migration can sometimes be the result of workplace mandates, or it can arise from a preference for a different way of working. This review can assist in this migration process by offering a comparative look at the differences among the leading Java IDEs: Eclipse, JetBrains IntelliJ IDEA, NetBeans, and Oracle JDeveloper. It also touches briefly on some alternatives.
The IDEs in this roundup reflect the remarkable richness and maturity of Java tools. They all have excellent support for coding and development; they also have strong support for refactoring, syntax checking, and debugging. These IDEs are generally fast and capable of handling large codebases without significant difficulty. Most of them enable you to deploy projects to servers directly from within the IDE and do remote debugging from your development system.
The characteristics that distinguish these products have shifted somewhat during the last five years. While the breadth of features for Java development separated the tools in the past, the primary differentiators today are ease-of-use, quality of documentation and help systems, and the range of plug-ins.
IDEs increasingly are becoming backplanes for plug-ins provided by external vendors. The Eclipse Foundation, in particular, has long espoused the plug-in approach. It's apparent in the Eclipse IDE, which as the tables below show, garners the prize for supporting the most technologies of interest to Java developers. However, this focus on add-ons comes at the cost of ease-of-use. As I explain when I discuss Eclipse, its designers made plug-in writing easy by shifting part of the burden to the user.
NetBeans and IntelliJ IDEA do a better job of balancing plug-in count and ease-of-use. Both have a good range of plug-ins, but they have kept a stronger focus on the user experience. As a result, they garner higher ratings in my report card. JDeveloper is likewise easy to use, but it has a tiny plug-in community. Further, its intimate linkage to Oracle's software stack makes it an unappealing choice for organizations that rely on software from multiple vendors. Were it not for this limitation, which is pervasively present in the product, JDeveloper would likely have a larger plug-in ecosystem and would be a stronger competitor with the other IDEs reviewed here.
Read more about developer world in InfoWorld's Developer World Channel.
This story, "Review: Top Java programming tools" was originally published by InfoWorld.