| <HTML> |
| |
| <HEAD> |
| <TITLE>Vision Statement of the NetBeans Open Source Project</TITLE> |
| <META NAME="NAV_LINK" content="Vision"> |
| <META NAME="NAV_PRIORITY" content="6"> |
| <link rel="stylesheet" type="text/css" HREF="../../netbeans.css"> |
| </HEAD> |
| |
| <body> |
| |
| <h1>Vision Statement of the NetBeans Open Source Project</h1> |
| |
| <p><h3>A look back</h3> |
| |
| <br>Let's look a little into the past. NetBeans started as a Java IDE. At |
| the beginning it was like every other IDE with an editor, GUI designer, |
| debugger, etc. The IDE was written in Java and it ran on any platform. The |
| people writing it were developing NetBeans using NetBeans (they still are). |
| After a while the IDE began to evolve in some interesting ways: |
| |
| <P>Open APIs were introduced to make the IDE extensible. The |
| team developing it grew. NetBeans was open sourced. Developers began |
| to use various tools to manage the code. In each case, it proved worthwhile |
| to integrate the tools used to develop the IDE into the IDE itself. The result |
| is that NetBeans contains things like version control support, building |
| using ANT, Javadoc search and generation and more. |
| |
| <P>Each new integration showed the strengths and |
| weaknesses of the APIs. As a result, the APIs were evolved to be increasingly |
| generic, to accommodate the maximum number of use cases, while making |
| the minimum assumptions about those use cases. |
| |
| More and more the developers worked to make NetBeans not just a Java IDE, but a |
| platform for tools no matter what language or technology was being used. |
| NetBeans became more of a platform, integrating a huge variety of tools |
| into a seamless environment, enhancing, not compromising, the usefulness of |
| those tools by themselves. |
| |
| <P>This turned out to be even more valuable than it seemed. For example, |
| when you integrate a debugger from one place, source control system from another, |
| and a code browser from a third into the same environment, you end up |
| with something greater than the sum of its parts. And so the concept |
| of a "tools platform" was born. |
| |
| <P><h3>IDEs and Platform</h3> |
| <BR>IDE stands for Integrated Development Environment. Integration in |
| old-fashioned, monolithic IDEs meant a set of tools are available as part of a single |
| program. Yet development today needs more than this kind of integration. A |
| better meaning for integration can be had by looking at the modern software |
| development process. Applications and application development |
| |
| <UL><LI>Are multiplatform and distributed - various OS's, servers, |
| workstations, handheld devices, etc.</LI> |
| <LI>Are multi-language - Java, HTML, C/C++, Perl, Python, etc.</LI> |
| <LI>Use various technologies and standards - databases, XML, Servlets, JSP, UML, ...</LI> |
| <LI>Go through many stages - such as design, modelling, implementation, |
| documentation, deployment and support.</LI> |
| <LI>Are developed in a variety of styles - from individuals, to small teams, to |
| large distributed teams, to open source.</LI> |
| </UL> |
| |
| <P>A really good, useful IDE should work with the tools used by people |
| playing different roles in a project, integrate them and make them available |
| as a part of one environment. An IDE should cover all aspects of the |
| application and stages of the development cycle, and which can be used by |
| all members of the development team. |
| |
| <P>Providing tools for all the aspects of development, and |
| integrating them in the deeper sense of the word is not an easy task. |
| Therefore, our goal is to create a Platform which achieves these goals, and |
| let everyone add their own tools to it. We know that there is no "one |
| size fits all" IDE - so it is better to empower developers and |
| teams to customize the IDE to meet their unique needs. |
| |
| <P><h3>Where we are going</h3> |
| |
| <div class="rarticle"> |
| <div class="ml15"><B>We must ensure the NetBeans Platform is solid, stable, performant and |
| backward compatible</B>, since it is the foundation of other |
| projects. At the same time we have to work toward maximum |
| extensibility and the most generic and flexible framework possible. We |
| will continue to develop and release NetBeans IDE and focus |
| on making it a powerful and popular IDE for developing in Java and other |
| languages.</div> |
| </div> |
| |
| <div class="rarticle"> |
| <div class="ml15"><B>We will improve NetBeans simultaneously in all areas in an iterative |
| way.</B> There will be times when the above goals contradict each other, e.g. |
| purity of the APIs vs. backward compatibility vs. performance vs. genericity |
| - these are not always compatible. Especially in such cases the community |
| should determine the right course of action in broad discussion, |
| preserving backward compatibility where possible, and providing workarounds |
| to keep existing integrations effective.</div> |
| </div> |
| |
| <div class="rarticle"> |
| <div class="ml15"><B>We will continue to encourage use of NetBeans IDE for development |
| with any language or technology.</B> Addition of support for new languages and |
| technologies will continue.</div> |
| </div> |
| |
| <div class="rarticle"> |
| <div class="ml15"><B>We will continue to make the sources public under a very liberal license</B> |
| which will allow both individuals and companies to benefit from |
| participating in the project. By providing |
| a safety blanket - the source code is always available, and the license does not |
| prohibit modifications to it - those who integrate with it can feel comfortable because |
| they are not at risk of vendor lock-in.</div> |
| </div> |
| |
| <div class="rarticle"> |
| <div class="ml15"><B>We will continue to grow the NetBeans community</B> |
| We believe that it is not possible to achieve these goals without a |
| thriving community. NetBeans is developed as an open source project. We |
| believe that this development model is ideal for building such a platform. |
| Every piece of information, every special case, every experience integrating |
| something new reveals new paths and new possibilities. |
| Community-based, public development allows everyone to benefit from each other's experiences. |
| Something that develops from this process is "institutional memory". We need |
| to learn from our experiences, and incorporate the lessons learned into what |
| we do next. Community makes that happen.</div> |
| </div> |
| |
| </body> |
| </html> |