Alamo PC Organization: HOME > PC Alamode Magazine > Product Reviews

cat

Visual Cafe Pro 1.0 
A Software Review by Pete Cassetta

One 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, and C++.

 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 edition. 
 
 

Background on Java

Because 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++: 
 
 

  • Simplicity. Java omits some of the more complex features of C++, such as pointers, operator overloading, multiple inheritance, and the need to free allocated memory (Java frees all allocated memory automatically through a garbage collection mechanism). Although these C++ features can be powerful if used properly, they are also responsible for most C++ programming bugs.

  •  

     

  • Network-ready. Java was designed for Internet programming and has built-in features for dealing with TCP/IP, HTTP, and FTP. It is as easy to open and access objects over a network using URLs (Web or FTP addresses) as it is to access local objects.

  •  

     

  • Interpreted. Java is not actually compiled to machine code (instructions specific to a given processor family such as the Intel x86). Instead, it is compiled to "bytecode," which is then interpreted at run-time by a "Java virtual machine." Browsers such as Netscape Navigator 3.0 and Microsoft Internet Explorer 3.0 include a Java virtual machine so they can run Java programs. All mainstream operating systems will soon include a Java virtual machine; OS/2 Warp 4.0 is one of the few that currently does.

  •  

     

  • Portability. Because Java programs are compiled as processor-neutral bytecode, Java programs will run unchanged on any Java virtual machine, regardless of operating system or processor. Think about how great it would be if you could write a program once and have it work on Macintosh, OS/2, Unix, and Windows. With Java, you can!

  •  

     

  • Applets and Applications. A standard Java program is called an "application." However, you can also create "applets," which are small programs that are normally placed on Web sites and designed to run within the context of a Web browser.

  •  

     

  • Security. Because Java does not use pointers, Java programs cannot maliciously access private data areas in use by other running programs (as viruses often do). Also, when a Java applet is running within a Web browser, it can't read or write to the disk, execute programs on the computer, or connect to any other computers except the server it was downloaded from. This makes Java applets very safe--you're practically guaranteed that they won't do any harm to your computer.

  •  

     

  • Multithreading. Java has built-in support for multithreading, which is a programming approach that makes it easy for a program to do several tasks at once (e.g. display a large graphic while simultaneously downloading it from a Web site).

Visual Development with Visual Cafe

Visual 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 Cafe

OK, 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 Cafe

Since 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 developers. 
 
 

Documentation, System Requirements, and Support

Visual 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
 
 

Conclusions

Visual 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.