HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML
 

Since the release of Sun's Java Development Kit last year, developers have been limited to using the command line interface to develop Java applets and applications. There have been a few Integrated Development Environments available from independent developers, but until now no major software company has released any. Symantec released Café at the beginning of March, pushed ahead of schedule by developers that wanted an IDE here and now. Café is now available for download from Symantec's Web site, and at the major software stores. I had the opportunity to check it out in all its glory for your approval.

Installation
I installed Café on one PC running Windows NT 3.5.1 and several running Windows 95. It installed without a hitch on the NT machine and two of the three Windows 95 machines. However, the other Windows 95 machine simply could not get past the intial setup bitmap without causing a GPF. The only apparent difference with that machine was that it was a Pentium 120 and the other two were a Pentium 90 and 486 75. Go figure! One of the Win95 PC's gave me a GPF the first time I ran Café. The next time I ran it the problem went away. Also, the setup created its own classpaths and other variables for Café, and inadvertently included quotes in the paths. I had to manually take these quotes out for the compiler to work. There is also a known problem with installing Café if you are running a disk compression program such as Stacker.

Documentation
Symantec wanted to get Café in the hands of developers as soon as possible, and as such, they're shipping it without any printed documentation other than the sixteen page install guide. It doesn't matter whether you download it from Symantec's Web site or buy it at Best Buy, you won't be getting a manual anytime soon. Overall, Café is not all that intuitive a product, so decent documentation is a real must. Since there aren't any printed docs, thank goodness they do include an online tutorial and plenty of sample projects. Café comes with fifteen of Symantec's own samples, and all twenty-five of Sun's JDK samples. It also comes with an online programming tutorial that takes you though the creation of a variety of code using Café, and there are fifty-four samples of that code included. There are also help files containing the Java API and programming specifications, as well as an extensive Café IDE help file. All of these help files are, well, helpful. However, I would recommend using a book such as Teach Yourself Java in 21 Days, or Java in a Nutshell hand in hand along with Café, in order to get a fuller understanding of what you're doing. Online documentation is fine only if it is an alternative to a printed manual. It seems that these days a lot of software companies are forgetting this.

The Nitty-Gritty - The Ingredients
Café is an extensive development environment, and it contains a lot of separate tools for creating Java projects, applets and applications. All of the workspaces of Café use a tabbed interface for easy access. Each workspace is customizable, allowing you to integrate your own tools into the environment. You can also create new workspaces to add to the tabbed list. Café features a nifty set of wizard-like visual tools called Café Express, which is made up of Project Express and AppExpress. Café's tools include the Programmer's Editor, Project System, Class Editor, Hierarchy Editor, Visual Debugger, and Café Studio: the form editor. I will describe each of them in detail in the sections that follow.

Café Views Palette
The main toolbar of Café is what Symantec refers to as the Views Palette. It and all the other toolbars in Café are movable, resizable, and dockable. The Views Palette allows you to open up the various design views by dragging and dropping the icons onto the desktop, or by simply double-clicking them. The five design views of Café are the Breakpoint View, Output View, Thread View, Watch View and Project View. As I became more familiar with Café, the Views Palette became a device that I found to be quite a time saver.

Café Express Agents
The Express agents are the wizards you use when you are first creating a project. Once you have used the Express agents, you can proceed to using any of the different Café tools to work on and develop your Java app. The Café Express agents consist of two wizards, Project Express and AppExpress.

Project Express
Project Express is a project builder used to add your already existing source files to the project. Project Express is also the utility where you create new source files. When using Project Express, you name the project, select the type of Java app you are building (applet or application), and the files you want to add.

AppExpress
The AppExpress wizard can be used to create a basic Java applet, application, or a Java Single Document Interface application. The SDI type app will feature your standard Windows menu and will also contain an about box. AppExpress generates the default code for an applet, which you can then use as a basis for more extensive Java development. If your target type is an applet, AppExpress also creates an HTML file with the soon-to-be-created applet already embedded.

Programmer's Editor
Café's Programmer's Editor, shown in Figure 1, features color syntax highlighting, customizable keystroke commands, a macro recorder and debugger, a search and replace engine, file comparison, right click ability for methods and keywords using the associated help file, and support for bookmarks and matching delimiter navigation.


Figure 1

Project System
The Project System in Café allows you to organize and manage the files that are in your project. These files include your source files, proprietary object files, class files, and html files. In the Project System you can:

  • Specify the type of application
  • Set compile options and project settings
  • Review and revise source files, or compile them by right mouse clicking on them
Café supports long file and directory names. You can choose the Sun Compiler or the Café compiler, which is much faster than the Sun Compiler. You can also specify whether to generate debug info or parse the code. Café allows you to use the Class Editor and Hierarchy Editor to obtain the class information without compiling the source. You can query the source code for methods by right mouse clicking on the source. And by dragging a source file from the Project Window to the desktop, the Programmer's Editor pops up loaded with the source file, ready to edit. The only problem I had with the Project System is not really a problem, just a nuisance. I could compile a source file if it was included in a project, but not by just opening the source file itself. It would be nice to be able to just compile a single source file that was not part of a project if I wanted. On the other hand, the Café compiler compiles source code up to ten times faster than Sun's compiler, and the Café Virtual Machine is about twice as fast as Sun's. It is still a definite improvement over just using the JDK, which, by the way, is included in its entirety with Café.

Class Editor
Café uses a three-pane class browser (Figure 2). It shows you a list of all the classes, methods and data members in your application, and allows you to navigate and edit them using the class editor. By clicking on a class in one pane, you are presented with a list of functions and data members contained in that class in another pane. By double-clicking on a function, the use of that function is extracted from the source and displayed in the lower pane. You can make changes in that part of the source (in the lower pane) and the original source file will reflect those changes.


Figure 2

Hierarchy Editor
Café's Hierarchy Editor makes it easy to create new classes dynamically by dragging and dropping from one class to another. Changes are instant in both the visual model and the underlying source and all open windows reflect the changes made. The Hierarchy Editor also allows you to navigate easily by double-clicking on the item in the visual representation of the class heirarchy and selecting the desired item in the pop-up menu.

Visual Debugger
Café features a visual debugger that can make the dreaded chore of debugging a much easier task. The Visual Debugger is shown in Figure 3. Written in C++, it is fast and won't conflict with your Java code. It is step-capable and able to inspect multi-threaded applications and applets, thread by thread. You can step through threads and methods. By double-clicking on any line in the source, that line of source will be executed and then the debugger will stop. Breakpoints can also be inserted in the source to further enhance the debugging procedure. These breakpoints can be conditional, causing execution to stop only when the condition is met. Breakpoints can also be toggled on and off, allowing greater control of the debugging procedure, without having to remove the breakpoint altogether. Another nice feature is that individual threads can be frozen while other threads continue to execute, and they can be "thawed," causing them to start executing again. Each thread can also by broken down by using the Call Chain, which displays the code methods and modules used by the particular thread. By dragging and dropping a module from a Call Chain into the Watch Window, you can view the contents of class members and variables.

Figure 3
Figure 3

Symantec says the debugger admittedly has problems with Windows NT 4.0 beta. They started testing Café under NT4.0, but ran into problems and went back to NT 3.5.1. These problems will be corrected in a future update, which will be provided free to registered users.

Café Studio
Café Studio is the much-talked-about Graphical Layout Editor, which is shown in Figure 4. It generates and adds the source code for menus and form elements by simply dragging and dropping. Among supported elements are buttons, edit controls, radio buttons, check boxes, list boxes, dropdown boxes, panels, and horizontal and vertical scrollbars. One problem with the Studio is that it uses absolute positioning of the components, and doesn't support Gridbag layouts, making portability and resizability a problem. However, it does make the creation of layouts look the same on all platforms, which is a plus.

Figure 4
Figure 4

Conclusion
Overall, Café is a robust, useable product. It is a typical 1.0 release, and still has bugs to work out, but it's well on the way to becoming an IDE that you can use to create commercially viable applets and applications. Quite a few users have reported problems with downloading Café from Symantec's Web site, but downloading any 12 MB file off the Internet can be a chore. It is available for downloading in smaller chunks, and should be available in regular retail stores by the time you read this. At this time, the only advantage of buying the packaged version of Café is that you'll have the CD. With the purchase of Café, whether via the Internet or retail store, you'll get a one year subscription for upgrades and bug fixes. Symantec is working hard to make sure that the problems that users report are taken care of, and that the bugs are either fixed or acknowledged. Even in its present state, Café makes a fine addition to the Java programmer's software library. It can reduce the time it takes to put your applet together, debug it, and include it on your Web page. That's a plus in my book anyday.

 

All Rights Reserved
Copyright ©  2004 SYS-CON Media, Inc.
  E-mail: [email protected]

Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.