Published on ONJava.com (http://www.onjava.com/)
 See this if you're having trouble printing code examples

NetBeans: Open IDE, Open Platform, Open Source

by Tim Boudreau, coauthor of NetBeans: The Definitive Guide

You may already be familiar with the NetBeans Integrated Development Environment (IDE), the product of the NetBeans open source project -- it's a world-class multi-language IDE in its own right, and forms the the basis for development tools from Sun Microsystems (SunONE Studio), Compuware (OptimalJ), and a number of other companies.

But you may not know about some of the fascinating uses to which the IDE's architecture has already been put within the industry -- outside of the realm of development tools. NetBeans' core infrastructure is that of a "generic desktop application," which may be reused to create solid, cross-platform applications in record time.

The NetBeans Platform

The key principle driving the surge of interest in NetBeans is that the IDE is modular. This means that there is a "core," the generic desktop application, with all of the components common to such applications. There is infrastructure for managing these components, such as actions, windows, data storage, settings storage, and so forth. To make an IDE, a set of modules are bundled with this core runtime. These are what provide the functionality that makes the NetBeans IDE an IDE. The support for the Java language is a plug-in module. The code editor is a plug-in module. Every piece of useful functionality the NetBeans IDE offers is provided by modules. Branding (splash screen, application name, etc.) is easily alterable using Java resource bundles. Thus it stands to reason that, if you use the NetBeans platform and a set of non-IDE modules, you end up with an application that is not an IDE.

As James Gosling, creator of the Java language, puts it: "What attracts me to NetBeans is the fact that, contrary to the marketing material, it is not an ... integrated development environment. It is better described as a DDE -- a disintegrated development environment. At its most basic, NetBeans is just a spine. It is a framework that components can be plugged into. When you run NetBeans, almost everything you see is a plug-in."

What the platform provides is a set of well-defined APIs and abstractions for implementing functionality quickly and easily. Developers do not have to worry about managing code for menus and windows (although if special presentation is needed, this is possible). Almost all desktop applications will need these things. It makes sense for the runtime to handle this logic and not trouble the developer with coding them unless it is needed. The same is true of persistent user-configurable settings, access to data, and the hierarchical presentation of data. The NetBeans Open APIs provide abstractions and infrastructure for all of these things.

Think of the NetBeans platform as conceptually similar to an application server. An application server is a runtime which provides an execution context for arbitrary Enterprise Java Beans components. It provides abstractions that allow developers to concentrate on business logic, while common requirements are handled by the runtime itself. The NetBeans platform is a runtime in which arbitrary modules execute. The runtime handles much of the grunt work of building an application. Developers get to concentrate on implementing their logic, not on reinventing the wheel.

Real-world examples

But all of this talk about the wonders of a platform is meaningless without examples of companies and individuals benefitting from using it. To get an idea of just how broad the uses of this toolset are, consider some of the companies and institutions using it:


There will always be a place in the world for "fat clients." The NetBeans platform brings to desktop applications the same advantages that J2EE architecture brings to server-side applications:

By taking advantage of this free, standards-based toolset, developers can build complex applications faster and with greater assurance of robustness.

NetBeans: The Definitive Guide

Related Reading

Coming Soon!
NetBeans: The Definitive Guide
By Jack J. Woehr, Vaughn Spurlin, Simeon Greene, Jesse Glick, Tim Boudreau

In NetBeans: The Definitive Guide, you'll find out how to use this IDE to its fullest, making your Java programming more efficient and productive than ever before.

For More Information

Please attend the NetBeans technical session at OSCON, on Tuesday, July 23, 2002 (in the Sea Breeze II room from 8:45am to 12:15pm) and learn how to build your own modules for the NetBeans IDE or applications built on the NetBeans Platform.

For more information on NetBeans-related activities at OSCON, see the NetBeans OSCON pages on the NetBeans Web site.

The source code is accessable via anonymous CVS at cvs.netbeans.org. Ongoing development of the platform, proposals, and support happen on the NetBeans public mailing lists, which are also accessible via newsreaders at news.netbeans.org.

Tim Boudreau is a product manager and software engineer with Sun Microsystems in the Czech Republic. He has been working with NetBeans since 1999.

Return to ONJava.com.

Copyright © 2009 O'Reilly Media, Inc.