I recently had the opportunity to work with the NetBeans Developer IDE 2.0 for Java. Although the marketplace seems to be flooded with application development environments for Java programming, the team at NetBeans is offering a slightly different approach toward Java development. While the vast majority of Java-integrated development environments (IDE) are designed to run primarily under Windows-based operating systems, the NetBeans folks have built their development environment completely within Java itself. The result is a programming environment that runs on any platform that can support a JDK 1.1.5 environment.
NetBeans is based out of Prague in the Czech Republic and was founded in July of 1997. It is a privately held company with a number of high-profile investors, including Esther Dyson, CEO of EDventure Holdings. The NetBeans IDE has been designed around three basic concepts: functionality, platform independence and extensibility.
The NetBeans philosophy is that application developers need a powerful, robust IDE in order to successfully develop and deploy enterprise applications. Furthermore, the development environment should be able to support multiple platforms, even if the developer is primarily deploying to a single environment. Finally, the IDE itself should be extensible and support the ability to integrate new tools and features directly into itself as necessary.
I downloaded the NetBeans installation kit from their Web site, which is packaged as a single 7.7 MB Installshield program. NetBeans is offering version 2.0 of the NetBeans Developer, and you're free to download the software for trial purposes, noncommercial or educational use, free of charge. They're in the process of completing work on an Enterprise edition of NetBeans that will support some additional features, including the Cloudscape embeddable Java database due for release in early 1999.
The installation went very smoothly and I was able to get the software installed and running in only 15 minutes. During installation the program searches your system for the location of your JDK 1.1 files. The system recommends version 1.1.7 of the Sun JDK, but I was able to select the 1.1.5 release that was already installed on my system without any problems. As part of the installation, the software configures the NetBeans development environment to use the JDK that you select during the question and answer phase. Although I installed the IDE under Windows NT, I looked through the newsgroups on the NetBeans site and on various other Java newsgroups for comments on installing the software on other platforms such as MacOS and Linux. In general, the product seemed to install reasonably well on all of the various platforms.
Using the IDE
NetBeans is a pleasure to look at, as you can see in Figure 1.
NetBeans is a Java application, which is one of the biggest differences between the IDE and other Windows-based Java development environments. NetBeans is developed with the Swing JDK libraries and offers the crisp, distinctive look that you get with Swing. The IDE provides a menu that allows you to switch the look and the feel of the IDE to the various styles that are supported by Swing, including Metal, CDE/Motif and Windows; I chose to use the Metal style, as shown in Figure 1. One of the features of the IDE that NetBeans promotes is that it's highly extensible. Because the environment is written in Java, you can actually customize it to a larger degree than is possible with some of the traditional, Windows-based Java development tools. However, the IDE can be slow from a performance perspective. NetBeans recommends a P133 processor with 48 MB of RAM on Intel platforms for development. Although I was using a P200 with 64 MB of RAM and Windows NT4.0 SP4, the IDE routinely took over a minute to start up from the desktop. Also, navigating between menu choices and panels was sluggish, and I saw similar comments from developers in the newsgroups.
The desktop IDE is divided into a number of sections. The critical element is the Main Window, which is displayed as the top panel in Figure 1. The Main Window is well organized and I was able to get to most functions easily from the menus and icon buttons. At the bottom left of the Main Window panel is a set of three tabs that switch the focus of the IDE between the three various stages of development: edit, run and debug. If you're used to working with a multidocument interface style of development, you'll need to become familiar with the bevy of windows used by NetBeans. I wasn't able to find a way to mimic the MDI style of interface for the development environment. To make the process of managing so many windows easier, NetBeans offers the Workspace concept, which allows you to decide exactly which windows are open during edit, run and debug. I tend to want to see project information while I'm running and was able to use the Workspace technology to keep the Explorer window open during program execution. The Explorer window, shown on the left-hand side of Figure 1, organizes the various parts of the hierarchy, including the repository, templates, control panel and environment settings. The repository keeps track of all the file objects used by the IDE, and the templates provide ready access to blocks of functionality for your projects. NetBeans claims that their IDE is one of the most customizable interfaces on the market, and you can see some validity for this claim in the control panel, as shown in Figure 2. Between the control panel and the environment settings, I was able to tinker with almost every aspect of my development viewpoint.
NetBeans generates code for you and it also keeps track of code that will be regenerated so you never have to step over that code when you edit. You have complete control over how the source code will look in the edit window, including fonts and colors, as shown in Figure 2. In fact, NetBeans provides sets of preconfigured displays that I used to rapidly change the look and feel of the various editors. By virtue of these two panels you can customize all of the major components such as editors, debug windows and output windows to behave exactly as you wish, and this is part of what makes NetBeans interesting.
One of the nicer features of the product is the MultiWindow concept, in which all open editors appear as tabs from a single-edit window. I was able to use this feature to switch between editors, and you can undock any one of the editors as desired. There are numerous productivity enhancements that augment your development efforts, including the Connection Wizard, which can construct forms without requiring you to write Java code by hand. You can click from the source object to the target object and select parameters, methods and properties. NetBeans will create the Java code and display it for you in the MultiWindow editor. When you are ready to test out your code, NetBeans provides a lightweight, built-in.HTTP server so you can test your applets with all of the constraints that'll apply when running from a remote Web server. Although the current version of the software doesn't support JDK 1.2, you can test JDK 1.2 applications by specifying a JDK 1.2 VM when you execute the application. The software ships with four tutorial applications that'll help you get acquainted with the NetBeans environment. I found them to be reasonable - but not exceptional - tutorials.
NetBeans is in the process of building an Enterprise version of the NetBeans Developer that will include support for features such as RMI, Enterprise Java-Beans and JDBC. This version will also include interfaces to version control software, which isn't provided with the current Developer Edition. I would recommend looking at NetBeans if you need to develop on multiple platforms or are looking for a less expensive Java IDE.
Client: Dell Pentium II 200 MHz, 64 MB RAM, 4 GB disk drive, Windows NT 4.0 (Service Pack 4), ViewSonic 15-inch SVGA monitor, 3COM Etherlink XL Adapter and 8X CD-ROM.
About the Author
Jim Milbery, an independent software consultant based in Easton, Pennsylvania, has over 15
years of experience in application development and relational databases. You can reach him
at [email protected] or via his Web site at www.milbery.com.