During the past several years, Borland has been in the doghouse as the stock price has languished. But with new management, the company has been showing strong signs of resurgence. Evidence of this is the release of JBuilder, an integrated development environment for Java. But instead of being a tool to make cool Java applets for Web sites, JBuilder is positioned for what Borland calls the "InfoNet," which includes corporate development for the Internet, intranet and extranet.
Borland has three JBuilder flavors. First, you can buy the Standard Edition ($99), which is primarily for beginners. The Professional version (which I'm reviewing and retails for $299) provides tools for creating enterprise databases. Lastly, there is the Client/Server Suite (which is expected to be shipped in November). With this, you can create industrial-strength multi-tier applications with RMI and CORBA.
To run JBuilder Pro, you will need at least a Pentium/90 MHz, 32 Mb of RAM and 50Mb of hard drive space.
JBuilder's RAD is Really Rad
Developing Java projects typically includes working with many files, which can clutter your desktop. Well, not JBuilder. Its IDE is a mixture of the best elements of Delphi and C++ Builder, as well as common sense. The innovative JBuilder IDE, called the AppBrowser, combines the design, code, debugger and explorer windows onto one unified screen. First, there is the Navigation pane, which is on the upper left. This is a tree-level browser of your project. Click on any file - image, HTML, text or .java - and it will appear in the Content pane, which covers most of the screen. On the bottom edge of this screen is a tabbed menu, where you can switch to the Editor, UI Design or document (these are reference documents) modes.
In the Structure pane, which is located on the bottom left of the screen, you have three options. In the Project Browser mode there is a hierarchical tree of the packages, classes, interfaces, variables and methods of your project. Next,you can use the Directory Browser, which allows you to search your hard drive for files. Finally, you can view Opened files. As the name implies, this is a list of the files you have edited.
As for the source editor, it has the necessary features: color highlighting of keywords and variables, searching across all files, auto-indention and bookmarks. In fact, if you are a hard core C++ programmer you can switch JBuilder to either the BRIEF or Epsilon code editors. Unfortunately, even though you can record-and-play back keystrokes, you cannot save a list of macros.
JBuilder provides a variety of wizards to make your programming experience much more productive. With these wizards, you can quickly develop frames, dialogs, panels and classes. Two extremely useful wizards are: 1) Application Wizard, which creates a menu bar, toolbar, status bar and About Box - the wizard will even generate header comments; 2) Applet Wizard which also generates header comments, as well as standard methods (for example, init) and an HTML file. You can also add parameter variables. Another useful wizard will allow you to convert an existing applet to an application and vice versa.
Innovative GUI: JBuilder's development environment
is built for productivity. You do all your work in only one window,
thus avoiding the common problem of desktop clutter.
Bringing Your Programs to Life
JBuilder is based on the JDK 1.1 and thus, all its components are JavaBeansª. On the tool bar, you have access to over 100 Borland and third-party JavaBeans. These include tab, outliner, multi column list, chart, spreadsheet, font chooser, color chooser, grid and tree control.
You only need to drag-and-drop the controls onto the AppBrowser and you have JavaBeans. To add functionality, you have the Interaction Wizard. Click a class and select the component for which you want to generate an event for. The wizard then creates a listener and method for the event.
You can customize the Interaction Wizard. For example, suppose you purchase new third-party JavaBeans or create your own. You can add these to the Interaction Wizard and specify the relevant events.
In fact, all the JavaBean components are "live." For example, if you attach a list component to a database, you will instantly see the items of the selected field in the database.
A slick tool is the Menu designer. Visually, you can create both menu bars and pop-up menus. With the designer, you can easily create separator bars, keyboard short-cuts, checkable items and submenus.
But eventually you will have do coding. JBuilder uses "two-way" editing, in which the source code and the UI are synchronized. For example, if you resize a component the code will automatically be updated. Or, suppose you instantiate a component, such as a list box. This component will immediately appear in the designer window.
The compiler uses Borland's SmartChecker technology, which compiles at 10,000 lines per second. This technology does not compile based on a time stamp of a source file, but on the interdependancies of source files.
Then JBuilder will debug your program. If you find errors, you can perform such functions as tracing into or stepping over a method call, breakpoints, and watching certain variables or expressions.
Wizards: Why reinvent the wheel? With JBuilder,
you have a variety of wizards to develop applets, applications,
database applications and so on - to make your job much easier.
JavaBeans and Databases
Crucial to any language is having reusable components. With JDK 1.1, now Java has its own - JavaBeans. But unlike the typical components (such as Windows OCXs), JavaBeans are architecture and platform independent, which is important for enterprise environments.
Using JavaBeans Express, it is extremely simple to create JavaBeans. First, select File | New and click the New Bean icon. This writes a skeletal JavaBean in your code editor. You will then code the JavaBean. Next, you use the Deployment Wizard. Here, you select options such as: zip, zip compressed, JAR and JAR compressed. Finally, you will select Tools | Configure | Add from the Package. Select the file and page and click OK. You will see the new JavaBean on your component Palette, which can then be dragged onto your AppBrowser.
As for creating databases, Borland has DataExpress technology. Basically, you can drag-and-drop data-aware controls that have pure JDBC connectivity. Since the JDBC drivers are written in Java, your databases will be platform-independent.
You are not restricted only to pure Java drivers. You can use the JDBC-ODBC bridge (from SunSoft) but since this is a DLL, you would not have platform independence.
JBuilder has a database tutorial which shows how easy it is to create business applications. First, you drag-and-drop the data-aware JavaBeans of QueryDataSet and Database onto your AppBrowser. Use the Component Inspector tool to choose the type of connection (for example, JDBC). You will then know instantly if the connection was successful, which makes debugging less strenuous. Select the Query option from the Component Inspector and you will see a dialog, in which you will enter a SQL statement. Again, JBuilder will say if the query is successful. Finally, you will hook the query to a grid component and see it instantly fill with data items.
Of course, JBuilder is not perfect. I would have liked to see integration between JBuilder and C++ - which is the case with SuperCede. Another nice feature would be a wizard to convert JDK 1.02 projects into JDK 1.1 projects. It would also be nice to be able to import Visual Café and J++ projects.
Despite all this, JBuilder is an outstanding product. You can create extremely sophisticated JDK 1.1 projects much more productively. This product was definitely worth the wait.
About the Author
Tom Taulli is the CEO of Blueprint Interactive (www.bpia.com), which develops Internet applications for the enterprise. He can be reached at [email protected]