Right now it seems as if Eclipse is comfortably at the forefront of the open source Integrated Development Environments (IDE) category, and rightfully so, as the Eclipse foundation has done an impressive job of putting together not only a first rate product but also a first rate development/user/contributor ecosystem surrounding it. However, the NetBeans community is also worth mentioning as an equally competent and feature-rich Java IDE. Netbeans has progressed astoundingly to the point that it is currently capable of providing Java developers with an equitable development environment and platform for Java & J2EE systems. This recent progress is significant because a little more than three years ago Eclipse pretty much had NetBeans whipped in terms of functionality, stability and overall capability as an IDE.
From the 4.X releases into the current 5.X series (5.5 beta 2 is the latest of which) NetBeans has blossomed from finding its footing as an open source project and community to one that is powering robust Java client-side and web development. As time progresses NetBeans should evolve into the engine which powers the next generation of Java (Java SE 6 & Java EE 5) firmly enabling the language to take the next step it was expected to take all the way back with Java 1.4 and J2EE 1.4.
The interesting aspect of this transition is going to be the fact that it coincides with the emergence of development languages/paradigms/platforms like Ruby, PHP, AJAX that are supposed to 'kill Java.' Of course Java has been dying (along with parent Sun) for about 3 or 4 years now, so you never know. The larger growth opportunities for NetBeans will be balanced by the availability of other newer alternatives that promise to do what Java does but lighter, faster and more compactly.
Despite being in a position marked by tantalizing opportunity, NetBeans still has its proverbial back against the wall. It absolutely must seize this set of opportunities and begin to expand its ecosystem the way Eclipse has done so well. If the community fails to do so, it risks extreme marginalization by its bigger IBM sponsored rival. Eclipse is beginning to literally eclipse [it's too bad a pun for it to be intended] other development environments and is on the verge of establishing a brand name within what is supposed to be an open source category. Equipped with this brand name and IBM's backing it has the potentially to gently move other alternatives out of the picture through the establishment of unofficial industry standards (think the Eclipse project format).
To effectively avoid falling by the wayside, here are some potential differentiators that NetBeans can and should leverage:
- Java EE 5- It's coming to an enterprise developer workstation near you...like it or not. If NetBeans is positioned early in the game as the de-facto development tool, there's quite a bit of mindshare to be had.
- TIGHT integration with other Sun open source efforts - The word tight is in bold caps for a reason. For example, it should be as easy (relatively) to get going with OpenESB as it is to create a Java class within NetBeans. Easier said than done, but ultimately worth the effort.
- Concentrate on the Java development community - Sun lords over the JCP and controls Java; it should at least hold its own as a Java IDE written in Java, amongst Java developers. Eclipse is going to take the cake with its support of other languages, but that should be of little concern.
- More outreach - Proactive pursuit of integration with the increasing number of Java based open source projects and products.
Granted, these come from an analyst who isn't charged with establishing the vision, mustering the resources and executing a game plan. However, they can be done and it won't take $10 million to get them done. Plus, the benefits of doing so is going to help establish a stronger community that creates revenue opportunities for Sun along the lines of what IBM is already reaping with Eclipse. Not to mention, ensuring the health of a competitive balance for a rapidly expanding Eclipse hegemony.