News & Analysis
NetBeans: open-source project evolves
Tim Boudreau, Senior Project Manager, NetBeans Open Source Project, Sun Microsystems Inc., Czech Republic
4/1/2002 7:56 AM EST
History suggests that if an open-source project is designed to leverage the energy of the development community and offers an architecture that supports virtually unlimited change and adaptability, it will thrive and proliferate -often in ways that its creators never had envisioned. NetBeans is a perfect example.
NetBeans is an integrated development environment (IDE), an open-source tool platform and an application framework. It is both operating-system- and language-independent and supports multiple standards and technologies. Its capabilities span a broader range of the application life cycle. And it supports all development approaches-from individual to workgroup to collaborative.
The NetBeans developers recognized that the more they incorporated open and standard technologies into their project, the more freedom and flexibility it would give to its intended users. In fact, one of the early praises of code generated by NetBeans' form editor was that it was "clean"; that is, it did not lock developers into using any proprietary classes or libraries that they would then be required to deliver with their software.
In favoring openness during the evolution of NetBeans, the developers also were acknowledging one of the driving forces behind open-source development: No software company would ever find it strategic to implement all of the functionality that developers want.
The most critical decision in the initial development was to employ a modular architecture. Developers designed NetBeans around a generic application core, so that application-level functionality could be implemented through plug-in modules. That made it easy for other developers to make additional functionality available to the NetBeans user community via plug-in modules-and for users to tailor their NetBeans environment to their individual needs. The environment is thus able to function as an IDE, a tool platform or as an application framework.
Another key decision was to introduce open APIs. That choice had the effect of making NetBeans extremely extensible. Extensibility is a valuable trait in an open-source IDE, providing the adaptability necessary for evolutionary survival. Early on, developers began to use various tools to manage the NetBeans code. As they did, they reasoned that if they needed to use those tools, so would other developers using their IDE. So every time they worked with another tool, they made sure to integrate it into the IDE.
As a result, NetBeans included tools that made it more attractive to developers, such as version control support and Javadoc search and generation. More tool modules have been added to NetBeans since.
The decision to make the APIs more generic was not so much a decision as an evolutionary process. Every time the NetBeans team integrated another tool into the IDE, the new tool would reveal the strengths and weaknesses of the APIs. The developers faced an important choice: keep their APIs tuned to support a purely Java language-based IDE-and risk compromising the usefulness of the external tools-or make the APIs more generic and less Java-centric. They chose the latter path. NetBeans thus evolved from solely a Java IDE into a language-independent IDE framework.
Sun saw the potential to fulfill the need for an open-source development platform and concluded that the best way to integrate business processes and create e-business applications was through Java technology-based, open-source software tools.
Internet breadth
Sun bought the company that developed NetBeans and spun it off as an open-source project. From an evolutionary perspective, that was a key move because it gave NetBeans the ability to respond to environmental changes more quickly and accurately.
Realizing that open-source development is intensely collaborative, Sun's experts knew that simply releasing the source code to NetBeans was not enough to ensure its adoption and proliferation. Sun turned to CollabNet, a provider of solutions designed to facilitate global collaborative development over the Internet.
CollabNet worked with Sun to prepare the NetBeans Platform for the open-source community, contributing its SourceCast application, which lets geographically distributed software development teams work across multiple locations. SourceCast provides tools for revision control, issue tracking, mailing list creation and management, document and file management, project tracking, and Web-based administration.
In the process of spinning off NetBeans as an open-source project, Sun made the strategic decision to use a license that does not require modules bundled with the NetBeans platform to be either free or open-source. That was done to encourage the adoption of NetBeans beyond the open-source community, by the commercial software world. More than 100 companies now are building innovative plug-in modules that extend tools built with NetBeans technology, and 35 of them have already started to ship products.



