of the most highly hyped technologies during recent years has been Java,
an Internet-aware programming language from Sun Microsystems. Although
Java holds great promise, its potential has been mostly unrealized so far
due to the limits of available programming tools. With the introduction
of Visual Cafe, Symantec has finally delivered a professional development
system that makes Java a practical alternative to Visual Basic, Delphi,
Visual Cafe 1.0 is available in two editions: standard ($195 street
price) and Pro ($455 street price). I reviewed the Pro edition, which includes
database tools in addition to the facilities included with the standard
Background on JavaBecause Java is relatively new, I will review some of its distinctives before describing Visual Cafe. If you are already familiar with Java, just skip this section.
Java is a programming language that was patterned after C++. Like
C++, it is object-oriented, encouraging programmers to package their code
into functional units which can easily be reused. Java syntax is also similar
to that of C++, which makes Java easy to learn if you already know C++.
Here are some of the ways in which Java differs from C++:
Visual Development with Visual CafeVisual Cafe is a Rapid Application Development (RAD) tool, which means you can put much of your program together using drag and drop procedures. As you drag and drop away, Visual Cafe is busy in the background writing and updating your program. Remarkably, you can then open the source code Visual Cafe has written for your program, make some changes, and you'll see them immediately reflected in the design window.
Drag and drop programming is nothing new; Visual Basic and Delphi programmers have been doing this for years. But Visual Cafe provides an excellent implementation of this approach for Java, and has several noteworthy features. The first is a large library of pre-built components that you can add to your program. In addition to the usual buttons, scroll bars, dialogs, etc., there are a number of more elaborate components which are very useful: a calendar control, data input controls formatted for telephone numbers, zip codes, etc., HTML links, and multimedia components for playing sound, displaying images, animations, or even a slide show. Visual Cafe includes several cute animations such as a fireworks display and text that bounces around.
Another interesting aspect of Visual Cafe is its support for "interactions." These are connections between two or more controls on your design form. For example, suppose you wish to design a simple slide show. You first place the three components on the form: the slide show, the previous button, and the next button. You then modify the properties as appropriate, such as typing in the label "Previous" and "Next" for the two buttons, and telling the slide show which graphic files to use. To make each button work, you add an interaction. This simply involves drawing a line from a button to the slide show component, and answering a few questions in the wizard that pops up. Voila! A working slide show applet without having to write a single line of code!
The only downside to interactions is that while you can create
them visually, to update or delete them you must manually edit the generated
source code. This seems counterintuitive in such a visual product, as almost
everything else you create visually can be updated and deleted visually.
Java Development with Visual CafeOK, the visual development features are great. Fortunately, they are also supported by a very complete and solid Java development environment.
Drag-and-drop is only one of several ways you can edit a project in Visual Cafe. Visual Cafe has a capable source code editor, which supports color syntax highlighting. There are two comboboxes at the top of the window. The left one, labeled "Objects," lets you pick the component you wish to edit (the Previous button is selected). The right one, labeled "Events/Methods," lets you further zero in on the code of interest. These comboboxes let you easily zero in on any portion of your project's code.
The window on the right lets you modify any of the "properties" (essentially data items) for components of your project. Here you can specify the font used to display the button, the button's label, etc.
A final editing option is to open the "hierarchy editor," which graphically shows the relationships between different classes used in your project. This helps you see how your objects fit together, and can be a very powerful and convenient way to browse large projects.
Once you create a project, Visual Cafe gives you several options for running it. A Java virtual machine is included for testing Java applications (standalone Java programs). An applet viewer is also included to let you quickly test your applets (small Java programs designed to run within a Web browser). A licensed copy of Netscape Navigator 3.0 is also included for testing applets, and Visual Cafe will generate an HTML page you can use to test an applet with Navigator.
One of the shining stars in Visual Cafe is its debugger. To start
it, you simply choose "Run in debugger." This starts a debugger that is
as professional and full-featured as any I have seen for other programming
languages. You can set breakpoints (including conditional ones), step into
or over methods, watch variables or even expressions, change the values
of variables, even freeze or thaw individual threads of a multithreaded
program to help find tricky synchronization problems.
Database Development with Visual CafeSince Java applets cannot modify files on the client computer where they are executing, it would seem that Java is unsuitable for database development. Database management has always been an important use for computers, so if Java can't view or update databases, this is certainly a major limitation. Well, with the "Pro" edition of Visual Cafe, Java has now become a very capable database programming language.
Visual Cafe Pro includes Symantec's dbANYWHERE Workgroup Server. This is a "middleware" database server which sits between the Java applet and a database server program. Although Java cannot access or modify files directly, it can ask dbANYWHERE to do so on its behalf. dbANYWHERE then takes care of sending the request to the database server, and returns the result to the Java applet. This lets Java programs do pretty much anything they want to with databases, provided the user has legitimate access to the database (i.e. can enter a valid username and password at run-time).
Database development is very nicely integrated into Visual Cafe Pro. The visual paradigm is used for connecting to a database; you drop an "Add Table Wizard" onto your design window, and a wizard pops up that lets you specify the database and fields you wish to access/modify. It puts them on the form for you, and you can then move them around as necessary, add additional data aware components to the form, add interactions between components, etc. You can get a basic Java applet together for browsing/updating a database in a minute or two.
Keep in mind that you may need to spend extra money to get everything
you need for database development. The dbANYWHERE Workgroup Server that
comes with Visual Cafe Pro includes fully licensed drivers for Microsoft
Access and Sybase SQL Anywhere Professional. Drivers are also included
for Oracle and Sybase databases, Microsoft SQL Server, and ODBC, but these
have a limit of two simultaneous connections. To get the full-blown drivers
with no connection limit, you need to buy the full dbANYWHERE Server (note
there is no "Workgroup" in the name), which costs $1200 for the first driver,
and $500 for additional ones. These prices are clearly aimed at corporate
Documentation, System Requirements, and SupportVisual Cafe's documentation is sorely lacking. For a product that sells at this price, Symantec could at least include a printed manual with overview and tutorial information. The only printed documentation is a set of 25 flimsy pages stapled together with very basic installation information and technical support contact numbers.
Online help is decent, but again, it lacks overview information, making it hard to get your bearings with this product. Fortunately, a very well-written 104 page electronic tutorial is included (in Adobe Acrobat format) that will get you up to speed with Visual Cafe. It fails to cover database development or the Java language itself however. A good Java language reference (not tutorial) is included in Windows help format, which I appreciated. References for the Java and database APIs are included in HTML format, which I find a pain to use (you have to start Navigator to look things up).
In short, you might want to consider buying a decent book on Java development with Visual Cafe Pro to go along with this product. If you're new to Java, a good Java tutorial would also help.
System requirements are listed as Intel 486, 16 MB of RAM, Windows 95 or NT 3.51/4.0, a CD-ROM drive, a VGA adapter, and 30-40 MB free disk space (50-60 MB is needed if you will install the dbANYWHERE Workgroup Server). I tested under Windows 95 on a 90 MHz Pentium with 24 MB of RAM at 800x600 screen resolution. I found this configuration to be barely adequate. In particular, my swap file grew quite large when running Visual Cafe, and the multiple window design of the development environment really cries out for a high resolution display. I think a realistic minimum hardware configuration for this product would be a 100 MHz Pentium with 32 MB of memory and a 1024x768 pixel display.
Telephone support is free for 90 days after purchase. After that
you must pay or rely on support through CompuServe/AOL forums or discussion
groups on Symantec's Web site. Once you register, free updates can be downloaded
from Symantec's Web site.
ConclusionsVisual Cafe is a ground-breaking product which has transformed Java from an interesting technology to a viable programming language for a wide range of projects. This is a top-notch, professional development environment. The visual tools let you rapidly put together a user interface and add database links, the flexible and nicely integrated editing facilities let you efficiently flesh out the non-visual aspects of a program, and the full-featured debugger gives you everything you need to find and fix bugs. If you're writing Java programs today, this is the tool of choice.
Pete Cassetta lives in Universal City with his wife Lydia and son Peter. He has been developing commercial software products since 1986 and currently operates Fingertip Software, a publisher of products for multilingual computing.