Roaster Release 3 is the latest version of the Java Macintosh development environment from Roaster Technologies, a spin-off of long-time Macintosh developer Natural Intelligence. As an early market leader with a year of interim developer releases, Roaster's Release 3 is a solid, fully-featured, professional-quality development environment that integrates a variety of tools including a project manager, a syntax-sensitive editor, a class source browser, a class tree viewer, an HTML documentation extractor, a compiler and a source-level debugger. Release 3 also includes a beta preview of a just-in-time compilation runtime system. While Release 3 only supports JDK 1.0.2, a free JDK 1.1 upgrade will be available in August to registered Roaster Release 3 users. Roaster includes 90 days of free technical support from a very responsive and knowledgeable support organization.
Following the directions in the Read-Me file, you just drag a few folders onto your hard drive and restart. Though I generally prefer using an installer program, the manual installation is quick and easy. Roaster is bundled with so much extra software and example code that you will likely be referring directly to the CD-ROM later anyway. The user interface to Roaster is clean enough to allow a developer familiar with other project-based development environments to start working immediately. Documentation on Roaster is supplied in Adobe Acrobat 3.0 format (readers for 68K and PowerPC are included). The initial CD-ROM pressing included incomplete Release 3 documentation backed by a full set of Release 2 documentation that provides adequate coverage for most of the tools. The complete Release 3 documentation is now available for download from the Roaster site.
Roaster supports 68K and PowerPC Macs; in fact, Roaster works fine on older 68030 Macs that JavaSoft's MacJDK does not support. Launching the Roaster application brings up the main application menu that controls the project, editor, debugger and browser windows. When you create a new project file, a project wizard asks you some basic questions about the project. Based on whether you are creating an applet or a standalone application, the wizard creates the correct type of project file and a skeleton source file. You can open multiple project windows; each project can contain multiple Java packages and, of course, each package can have multiple source files. Using a popup menu in the project window, you can navigate directly to a method within a source file; select a method name and the editor opens the source file and goes to the selected method. These navigation facilities from the project window are very useful for large projects. If you put .class files in the project, you can view the Java byte code in the editor. You can also invoke the editor using the multi-file, project-wide search capabilities to find either method or class definitions. Roaster does not include a source code control system.
Once in the editor, you find a variety of functions to ease the creation of your code. At the top of the editor window is a user-configured toolbar that can contain a variety of tools - a method tag tool, a macro tool, clipboard tools, search tools, formatting tools, class/method creation tools and HTML entry tools. You select from a total of 25 different tools to place in the toolbar and each toolbar tool can have a hot-key. For example, you can use multiple copies of the named-clipboard tool to save a method declaration template, a standard copyright statement and other often used text. Typing the hot-key assigned to the clipboard inserts the text into your source file. To quickly navigate within a source file, you use the "method" tool to instantly go to any method in the current source file; the editor automatically creates tags for each method as you enter the method declaration.
The editor window is dual-paned to allow the simultaneous display of two sections of a given file. The editor includes user-controlled syntax styling, allowing for keywords and syntax constructs to be displayed in a different color or text style. Roaster knows the syntax of Java, C, C++, SQL and HTML. While there is extensive user control over the syntax styling, there is no user control over the automatic formatting tool. You either accept the defined bracketing and indenting format or you do all of your formatting manually. While the standard formatting style is generally acceptable, I found the lack of user control over formatting standards the biggest drawback in an otherwise excellent editor.
Often a class browser is better for viewing source code than a regular text editor. Integrated into the environment is both a class tree browser (the "class tree" item in the New submenu) and a class source browser (the "browser" item in the New submenu). Though somewhat similar, the two browsers provide complementary views of your source code. The class tree browser provides a graphical view of the inheritance relationships of your classes; this is a big help in understanding any large object-oriented project. The browser also uses a dual-paned window. Select a class in the tree display in the bottom pane and a summary of class information -the names of methods, instance variables and implements classes -is shown in the top pane. Using the class tree viewer, you can quickly navigate through the classes in your project and gain a good understanding of the relationships between classes.
While the class tree browser shows relationships, the class browser provides a way to navigate through the source code of your project one class at a time. The display is divided into two panes. The top pane is used for navigation and shows the packages defined for your project, the classes in a selected package and the methods and variables defined in a selected class. Select a package in your project and a class in that package and the lower pane of the class browser becomes an editor window, allowing full source editing using all the tools of the editor. Select a method or variable name and the editor goes to that position in the source file. With a large screen display, you can do all of your editing from the browser window. Both class browsers share a common legend for indicating the attributes, such as protected or static, of methods and variables.
The project window, editor display and class browser
Compiler and Runtime
Once you have written your source code, you can create Java byte code stored in either .class files or in a ZIP archive. Release 3 simplifies the task of creating cross-platform ZIP files. After compiling your code (or using the automatic Make facility), you can test your applet using either the Applet Viewer or by invoking a predefined AppleScript to launch your favorite Java-enabled Web browser. Roaster provides extensive support for AppleScript and comes with over 20 scripts to perform a variety of functions. Want to test with a different Java-enabled browser? It is a simple change to the script using System 7's AppleScript editor.
Applications run within the Roaster Runner environment. Release 3 significantly improves the support for running and debugging standalone applications and also includes support for the Java Native code Interface (JNI). JNI provides a standard mechanism to combine native code (such as code written in C) and Java code, though the result will obviously be platform-specific. With Roaster you can easily create double-clickable Java applications; a good example of this facility is the Netscape IFC creation tool bundled with the CD-ROM.
Roaster includes a comprehensive source code debugger that lets you closely monitor the operation of your code. The basic debugger window is dual-paned and functions like the source browser; package, class and member information are displayed in the top pane and source code is displayed in the bottom pane. The debugger also provides several informational display windows, including ones that list the currently loaded classes and active breakpoints, and display the local variables, current call chain, thread status and runtime stack. The debugger provides the usual set of controls, including start, stop, kill, step-over, step-in and step-out. Hitting a breakpoint brings up a display of the corresponding source code. If source code is not available, you can also debug byte code.
A sample debugging session
Documentation on the JDK 1.0.2 API is supplied in QuickView format along with a QuickView viewer. Not only does QuickView have a smaller program memory requirement than a Web browser or HTML viewer, the information loads much faster than when stored in HTML format. QuickView also allows searching of the API documentation and the addition of user notes. A unique feature of Roaster's JDK API help system is its ability to display all of the methods inherited from superclasses. Gone is the manual backtracking to determine if a class inherits certain behavior from a superclass. Support for the automatic creation of HTML documentation from source code files based on the javadoc convention is provided; compiling documentation is as easy as selecting a main application menu item.
While Roaster is a good value for just its development functions, Release 3 has gone beyond bundling “evaluation" versions of software, essentially advertisements, and includes fully licensed software that is of significant value to developers. Release 3 includes Object Design's ObjectStore PSE object database, OpenLink Software's JDBC to ODBC bridge package, Netscape's Internet Foundation Classes, OpenSpace's Java Generic Library and Microline Software's user interface component toolkit. Roaster's support for ObjectStore PSE is excellent. The back-end compiler that produces the persistence information needed by ObjectStore is supplied as a Roaster compiler plug-in. Over 300 example source files round out the bundled software.
User Interface Tools
Release 3 also includes some tools to support the creation of user interfaces. You can use the Roaster Interface Brewer, a SuperCard stack, to visually create user interface programs using AWT elements. The Interface Brewer is not yet complete in Release 3, but does provide some useful functions. Included with the Netscape Internet Foundation Classes is the Netscape IFC Constructor. IFC Constructor is a Java application that creates user interface programs using IFC elements; the inclusion of IFC in Release 3 is significant because of the recent merger of IFC with AWT to form the new Java Foundation Classes.
Roaster Release 3 is perfect for professional Java development. Roaster's tools are comprehensive and well integrated and the many extras, such as the ObjectStore and JDBC packages, are invaluable. At $49, Roaster is an incredible value and priced within reach of even occasional applet writers. Roaster Release 3 sets a new price/performance point for Java development environments.
About the Author