InfoWorld review: Top Java programming tools
Eclipse, IntelliJ IDEA, NetBeans, and Oracle JDeveloper continue Java's tradition of rich and diverse development tools
Top Java programming tools: Eclipse 3.6
Eclipse is the dominant Java IDE by all measures, especially in terms of adoption and the size of its plug-in ecosystem. It reached this prominence due to the decision of its original parent, IBM, to spin it off to a separate foundation, where Big Blue could fund its continued development and Eclipse could also draw the support of other vendors who might otherwise balk at contributing to a vendor-owned product. This strategy has worked well, in part because it was well funded and because of the choice of management personnel, who have done an excellent job of reaching out to contributors, building a community, managing the progress of subprojects, and avoiding controversy.
The importance of Eclipse's vendor independence was made clear earlier this week, when Google publicly announced that the IDE is its platform of choice for Android development. While Oracle's NetBeans might have once been a candidate for this recommendation and technology commitment, Oracle's recent suit against Google has conclusively precluded such a development. Politics matter in this marketplace, and Eclipse has always played this card adroitly.
What is missing from the Eclipse formula is superior technology. Eclipse has long been a middling Java IDE that many people use but few people love. It has improved steadily over the years, on the basis of annual releases that are carefully synchronized across major components and delivered to the market in the June timeframe. This year's release, version 3.6, code-named Helios, adds several new features to Eclipse. I'll get into those shortly.
The design of Eclipse is unusual in several respects -- all of which make it a sui generis IDE, with the result that knowledge of how other IDEs work has little carry-over value when using Eclipse. The core concept is that Eclipse runs using perspectives, which are different ways of representing the panels and layout of the IDE. These perspectives can at times be radically different depending on the activity. It's a design that caters to plug-in development, but at the cost of inconveniencing the user, who must cope with sometimes dramatically different layouts depending on what activity is being performed.
Within the basic Java development environment, Eclipse forgoes conventions and requires users to align with its vision. Before you can create projects, for example, you must first create a workspace. Within the workspace (a concept that has no counterpart in the other IDEs) you build projects. You can also create working sets, which are portions of the workspace grouped as if they were separate entities. This reliance on workspaces means that creating or migrating projects can be a tedious process -- poorly supported by wizards with unusual and unexplained options. The concept of "just do it" does not exist in Eclipse. Almost everything requires filling out dialogs or choosing options that are either indistinguishable or unintuitive.
Eclipse's Java coding perspective.