One of the difficulties facing Java developers is the frenetic pace of change, and Symantec's Visual Cafe Java rapid application development (RAD) tool is a prime example. It provides a delightful visual environment with components compatible with JDK 1.02. However, Symantec missed out on Sun's JDK 1.1 which introduces a new event model and a new component model called JavaBeans.
What follows is based on the JDK 1.02 version of Visual Cafe, in the expectation that a future update will bring these important new standards into the product.
Visual Cafe looks reassuringly familiar to anyone who has worked with Visual Basic, Delphi or other RAD environments. There is a form designer and a tabbed component palette, providing all the basic AWT widgets along with numerous additional components including a tree view control, calendar, animation control, slider controls and many more. All these controls are written in Java and should run on any Java Virtual Machine, provided of course that the Symantec classes are available on the server hosting the applet.
A just-in-time compiler comes with Visual Cafe, that dramatically speeds execution on systems where it is installed, including Netscape browsers which now include this as standard. Once a component is placed on a form, it can be customised using a properties window. You can also write code to respond to events. For example, by right-clicking a button object you can open the Java source for the application or applet. Next, an event such as Clicked is chosen from a drop-down list. This creates an event handler for the Clicked event, for you to insert code as required.
To speed up development, Visual Cafe offers an Interaction wizard which writes code automatically. Interactions involve a trigger component and an action component. The wizard connects an event in the trigger component with an action in the action component. The classic example involves a button, a textbox and a list control. Clicking the button adds the contents of the textbox to the list. The Interaction wizard easily generates the code for this functionality. You link with non-visual components such as database views as well. The snag with the Interaction wizard is that it cannot handle complex processing, but at least it can create a starting point for your own code.
Editing and debugging
Visual Cafe has an excellent set of editing and debugging tools. The editor itself has syntax highlighting and right-mouse options for setting and clearing breakpoints or going to the definition of a keyword. You can configure the editor for HTML as well as Java source code. There is a class browser which shows all the classes in the project with their data and methods. An editable pane in the class browser shows the source code. The Hierarchy editor shows the inheritance relationship between classes. You can even edit these relationships by drag-and-drop. When debugging, there are windows for breakpoints, call stack, threads and variables. You can change the value of a variable on-the-fly. There is also support for remote debugging.
There are standard and professional versions of Visual Cafe, the latter of which comes with a set of database tools. The key element is a bundled product called dbAnywhere, a piece of middleware that handles database transaction requests for Java applets and applications and uses the JDBC API. Drivers include Oracle, Micro-soft and Sybase SQL Server and ODBC.
Also supplied is version 5.5 of Sybase SQL Anywhere. There are licensing restrictions on both SQL Anywhere and dbAnywhere, concerning what you are allowed to deploy and how many simultaneous connections are permitted.
In short, you can expect to pay additional licensing fees if Visual Cafe is used for a significant database project. A further complication is that Symantec has announced a change of allegiance. Future versions will be bundled with Informix Universal Server instead of the Sybase product.
Like other RAD environments, Visual Cafe has data-aware components which ease the creation of database forms. There are three non-visual components; a session object which connects to a server, a connection object which specifies the data source, and a view component which defines an SQL Select query.
Controls such as text fields and grids can then bind onto the view component, to create instant database applets. Another tool is the dbNavigator, which lets you connect to a dbAnywhere server and gives a tree-view of connected databases. You can drag-and-drop fields from dbNavigator to a Visual Cafe form.
Although Visual Cafe's database features can produce impressive results, there are snags. One is that the data-aware components only work with dbAnywhere. You can connect to JDBC source through code, without using dbAnywhere, but if you do then the RAD data-aware components no longer work.
Another problem is that Symantec's on-line documentation is poor. In fact, Visual Cafe's documentation is poor overall, with help in three formats; Windows help, Adobe Acrobat, and HTML, but with no integration between them. The database features are described sketchily in Windows help, while the dbAnywhere API is presented in HTML. What is lacking is any sort of guidance on how to create advanced database applications.
Assessing Visual Cafe
The arrival of the JDK 1.1 with the JavaBeans standard makes Visual Cafe a more appropriate Java tool. Symantec says its component classes are written with JavaBeans in mind and that the upgrade path will be smooth.
But even so, the 1.02 version of the JDK (without JavaBeans) as used in Visual Cafe, now looks dated.
Visual Cafe successfully combines a component-based visual designer with strong supporting utilities like the code editor, the debugger and the class browser. Symantec now needs to integrate JavaBeans and other JDK 1.1 features, along with support for Java Foundation Classes (JFC) .
The matter of JFC is critical. In December 1996, Symantec threw in its lot with Netscape, announcing that "future versions of Visual Cafe will include the hosting of the Netscape Internet Foundation Classes (IFC) components in the Visual Cafe environment". Such a version has not yet appeared, however, and presumably will not now appear since the IFC are to be superseded by the Java Foundation Classes, the official JavaSoft class library that apparently will include elements of IFC.
The flip side of the coin is that most current browsers only support JDK 1.02. Final versions of Netscape 4.0 and Internet Explorer 4.0 are expected to support JDK 1.1, but even if these products do deliver complete compatibility, the installed base of browsers will not change overnight.
Java is an exciting but immature standard, and these (in) compatibility problems are the price to be paid.
Symantec now has two Java lines. The older series, simply called Cafe, is aimed at developers who prefer working with code, while Visual Cafe tackles the RAD market. Both are still current, and at the time of writing Cafe is ahead in some respects, with JDK 1.1 support already enabled.
Clearly, Visual Cafe needs to be fully integrated with JavaBeans and preferably with JFC as well. The company also needs to recognise that not everyone will want to use dbAnywhere for Java database connections and there is the matter of on-line documentation which must be addressed.
This is the one area where the Microsoft Java development tool (misnamed Visual J ) is well ahead.
There is strong competition emerging in the form of PowerJ from Sybase, JBuilder from Borland, and VisualAge for Java from IBM and Symantec will need to work hard to maintain Visual Cafe's market lead.
PRODUCT & CONTACT DETAILS
Standard version u169 plus VAT.
Professional version including dbAnywhere, SQL Anywhere and Netscape FastTrack web server #479 plus VAT. Contact Symantec at www.symantec.com or telephone 0171 616 5600.
And, yep, it'll run Android rather than RiscOS
US engineering giant's cost-cutting outsourcing plan is on the rocks, according to insiders
HP Envy X2 laptop only affordable if you've got loadsamoney
Counterfeit code-signing certificates enabling hackers to hide malware being sold by cyber criminals
Certificates can be used as part of layered obfuscation to evade detection by anti-virus software