We test the top 6 Java visual IDEs

The latest pack of Java tools delivers full JDK 1.1 support, raises the bar on performance and features

1 2 3 4 5 6 Page 5
Page 5 of 6


Although new to Java development, VisualAge for Java is clearly a mature tool with features that both IT developers and part-time Java programmers can appreciate. It possesses several key features: support for connection to legacy mainframe applications with CICS, extensive support for visual programming, convenient bean creation, decent rapid application development (RAD) support, and worry-free ("fileless") file-handling.

With some IDEs, if you make changes and save a generated file to the wrong name, you may never get the file into the project. With most IDEs there is also the danger of picking a file name or directory that will conflict with the way the tool works. But VisualAge for Java doesn't store your source files in individual files; it stores them in a database. If you need to get to the files, you can export them. This does make it a bit less convenient to work with outside tools like configuration management software, but many developers will consider the trade-off worthwhile.

VisualAge for Java provides the most support for visual programming. IBM allows you to define interactions visually with all JavaBeans, even non-visual beans. VisualAge, like Cosmo Code, allows you to edit existing interactions, but it has several more features. For one thing, interactions can be more complex: VisualAge can combine data from more than one object, and go to more than one object. Also, because there can be a lot of interactions, the screen can get rather complex with all the lines on the screen representing these interactions. VisualAge for Java distinguishes itself again in this arena with its ability to show only certain kinds of connections by applying several filters. Most other Java tools allow you to show only all connections or none.

Because there can be a lot of interactions, the screen can get rather complex with all the lines on the screen representing these interactions. VisualAge for Java distinguishes itself again in this arena with its ability to show only certain kinds of connections by applying several filters. Most other Java tools allow you to show only all connections or none.

VisualAge's GUI designer (like those of JBuilder and Java WorkShop) lets you drag and drop objects to place them in a layout manager like GridBag layout, so you do not have to completely understand the complex layout constraints to use these layouts. It also (like JBuilder and Visual Café) lets you select multiple objects upon which to perform operations, including copy, cut, and changing of properties.

One unique feature of VisualAge's GUI designer is that it allows you to set a "sticky" option so that you can repeatedly place the same kind of object. Another unique feature of this editor is that it allows you to change the type of a bean after it is placed. Like all visual products, VisualAge has a property editor. This one has a mode to show or hide "expert" properties, although this usually adds only such banal fields as "enabled" (which turns a control on or off).

Creating JNI interface to C++ functions is facilitated by a wizard called the C++ Access Builder. The enterprise version of VisualAge for Java offers wizards to create beans to access databases, perform remote method invocation (RMI), and interface with IBM's CICS (Customer Information Control System, pronounced "kicks").


The downside of VisualAge's fileless approach is that it makes it difficult to integrate with outside tools. This can be a minor annoyance if you don't like the editor or other tools of VisualAge, but it's a major problem if you need profilers, testing tools, or multi-user configuration management. You can still use external tools, of course, but you will have to export files from the framework, and then import them if the external tool makes any changes. IBM is going to publish its framework APIs to open up the IDE through IBM's Object Connection program. Vendors of tools that want to work with VisualAge for Java can find out more by going to the tool's Web page (http://www.software.ibm.com/ad/vajava) and clicking on Business Partners.

VisualAge for Java is not compliant with JDK 1.1 in one sense: It does not support inner classes. This means that you cannot define a class within the scope of another class. You can work around this problem by defining all classes at the package level, or by importing bytecodes. This problem will be fixed in version 2.0, scheduled for release this summer. Registered customers of VisualAge for Java Enterprise 1.0 and 1.01 will receive a version 2.0 update automatically.

For developers doing commercial development, the single-user repository capability of VisualAge for Java may be insufficient for managing your configurations. The professional edition cannot do multi-user configuration management (CM). Also, a good CM tool needs to do more than versioning of individual files, it needs to remember which version of each file and build option is used to create a particular release. IBM's own Team Connection is a good example. Because of VisualAge's fileless nature, it is difficult to work with configuration management tools. If you need multi-user CM, you must get the enterprise version of VisualAge, which now includes team-oriented configuration management.

The entry-level version of VisualAge is available for free download. It is supposed to be the same as the professional version, but limited to the creation of 100 beans. In reality, the entry-level version is also missing all help documentation. What is available in this version is "hover help," which is IBM's version of what Microsoft calls "tool tips," and some documentation on PDF files that is without a table of contents, searchable content, thumbnails, or hyperlinks. How bad is this? Imagine having to look things up in a book that required you to search one sequential page at a time! Our advice is, if you are past the evaluation stage, just buy the professional edition. A hundred bucks is cheap for this tool and its documentation.

Like most tools (except Visual Café), VisualAge's debugger will work only in its own VM, so you cannot use it to find problems that happen only in the application's user environment. (For example, a problem may occur only when an app is running inside a particular version of a particular browser on a particular operating system and CPU.) Also, remote debugging is supported only when the target is an IBM Java VM on an AS/400.

IBM's help is not context sensitive, even to the point that it doesn't know what part of the tool you are using. In order to access help, you must be running a help server.

SUBHEAD_BREAK: Sun Java WorkShop 2.0 http://www.sun.com/software/Developer-products/java

Java WorkShop 2.0 is a huge improvement over version 1.0, providing better performance, usability, and features. The tool still has a long way to go in order to be competitive, however, and the other Java tools prove to be rapidly moving targets.

Click image for expanded view

Java WorkShop's GUI designer does not operate in an

intuitive manner, but once you get used to it you'll

find it quick for building the layout. WorkShop hides

the complexity of layout managers better than most

visual tools, but there isn't any connection or

interaction wizard. Not only does Java WorkShop provide

no assistance for writing events, it complicates the

process by the use of groups and "shadow" classes.


Java WorkShop was the first of these six reviewed tools to support JDK 1.1, and WorkShop has continued to include the latest release of the JDK and JFC. (Not surprising, considering both WorkShop and Java itself come from Sun Microsystems.)

Java WorkShop integrates with SCCS, RCS, and PVCS configuration management (CM) tools. It also comes with a profiling tool built-in, although its tool does not provide the specific advice offered by VTune, Intel Corp.'s performance monitoring and tuning tool.

Java WorkShop includes a multimedia tutorial to teach you how to use the product, and (like most tools we reviewed) a project wizard to help begin projects .

Once you are accustomed to it, Java WorkShop's GUI designer may be the fastest in creating the GUI of your product, especially if you are going to be using a layout manager. With the tool you will not need to understand layout constraints in order to deal with complex layouts like GridBag. You can move the objects simply by dragging, and you can make them span grid cells simply by dragging their handles.

Java WorkShop is the only tool that we reviewed that is available for Solaris (for SPARC as well as Intel computers), Hewlett-Packard Co.'s HP-UX, and SCO Unix.

Sun also now offers a separate tool called Java Studio for creating applications without programming. Java Studio uses the visual programming paradigm to allow you to create applications, applets, or beans, by using existing beans and connecting them. You can use Java WorkShop to create interesting beans, then export them to Java Studio. This review article concentrates on Java WorkShop, but where noted, comments in this article also apply to Java Studio. At this time, Sun offers a discount if you purchase both tools together. (For details about Java Studio, see Resources below.)


Java WorkShop is written in Java, but it is not a good example of portability. When tested on Windows, many portability issues surface that were left unresolved, despite both the use of the Java language and the presumed skill of the tool's creators. These problems make the tool less convenient than it should be. Problems included truncated prompts, inappropriate default locations for projects, and non-standard (even self-inconsistent) adherence to key conventions. Reading user documentation that includes instructions for all platforms is not much fun. It is a lot like multilingual instructions, but here it's even harder to know what you can skip.

Selecting an object in the GUI designer of Java WorkShop is difficult: You have to move the cursor over the object, watching for when the cursor changes. Only then are you on a handle. WorkShop's GUI designer also isn't compliant with Windows style. (Java Studio has this problem too, and non-programmers might be even more frustrated.) When you start to create a GUI, Java WorkShop creates a panel with a GridBag layout. Inserting rows or columns is not done with the insert key, or a right-click pulldown menu, or any other menu, or any other place that you might have guessed.

Java WorkShop and VisualAge for Java are the only tools we've seen that isolate the generated code into a separate files. You can modify the other files. To us, this seems a lot cleaner than having designated areas of a file that shouldn't be modified.

Unfortunately, Java WorkShop can't print files -- a shortcoming we find unacceptable. If a tool wants to be our framework, it needs to facilitate all the common tasks.

Although Java WorkShop 2.0 is much faster than its predecessors, the entire framework is still rather slow. Tasks like reading large help files into a browser and conducting searches take too long, and the wait is all the more frustrating because it is unclear what WorkShop is doing while you wait. (No icons change; you just see a message in the status bar and the slow-turning animation in the corner of the browser.) The slowness is due in large part to the browser's lack of random access -- a weakness that really shows when using help files.

For example, in order to find documentation on the MainHelper class, we brought up the help contents, and then searched for MainHelper. After about 10 seconds, this search returned one hit, in the "Index of all Fields and Methods" help file. When we clicked on this entry, the browser began to load the file, and we received a cryptic status message indicating that it was going to the spot in the file containing the keyword (MainHelper). However, despite the fact the file resides locally and is less than one half of a megabyte, Java WorkShop never seems to finish loading the file and getting to the keyword. After five minutes of watching the elevator bar get smaller (indicating that the file was still loading), we finally gave up and killed the help process -- which also killed Java WorkShop itself. After several failed attempts at accessing the same file with WorkShop, we tried an alternative approach: With Netscape Navigator we brought this file up in just a few seconds, and in just few more seconds searched and found the keyword in many places in the file.

In the next release of Java WorkShop, Sun plans to integrate Studio. What we don't know yet is whether Studio will increase its support of visual programming, or remain a bit behind VisualAge.

SUBHEAD_BREAK: SuperCede Inc. SuperCede Professional 2.0 http://www.supercede.com

It is clear that SuperCede did more than create a tool; it directly addressed in version 2.0 two of the main complaints about Java: speed and legacy code support.

Click image for expanded view

Floating palettes and other small separate windows make

SuperCede quite usable even in low resolutions (800x600

or less). Notice that edit and debug operations are on

the screen while the applet is running, so you don't have

to bring up different windows to make changes and try

them out.


In last year's review, SuperCede was the only tool with a native compiler. Now Visual Café also offers a compiler, but only SuperCede's compiler will work for all JDK 1.1-based programs and class libraries. This is because SuperCede compiles any bytecode file, whereas Visual Café can compile only most Java source files.

SuperCede also provides the best integration with C/C++ code because it supports JNI as well as direct calling of C/C++ functions. It also includes a C/C++ compiler and debug support. SuperCede manages to provide all this support for other paradigms while being fully JDK 1.1-compliant. You can use C++ code easily within SuperCede thanks to its shared-object model. An additional benefit of this is that it is easy to derive and use C++ classes from classes implemented in Java. SuperCede is the only tool in this review that supports ActiveX; it thus lets you directly use thousands of software components that already exist for Windows.

SuperCede is the tool with the most RAD-oriented features. It goes beyond the incremental compilers of IBM VisualAge for Java because it can reflect some changes in code without restarting the program. It works like this: When you run your program you can make changes to it without stopping the program; most changes will take effect when you press the Update button.

SuperCede and Visual Café can detect that a change was made to an active function and give you the option to restart from the beginning, restart from the changed function, or resume. SuperCede goes further in that it can detect that a change to an inactive function (such as init) resulted in a change to global data. With SuperCede, you are presented with information detailing what was affected (global data, active methods or both) and given the restart options.

SuperCede also is unique in that it includes a Visual Basic-to-Java source conversion. (Note, though, that we have not tested this feature.)

SuperCede's GUI designer (like those for Cosmo Code, JBuilder, VisualAge for Java, and Visual Café) lets you select multiple objects and perform copy and cut operations.

For database programming, SuperCede includes both JDBC APIs and Java Data Objects (JDO). JDO is SuperCede's implementation of Microsoft's ActiveX Data Objects. SuperCede claims this makes it more convenient to deal with a database, by allowing you to do most operations without writing any SQL code. What we find is that this isn't always less complex: you are writing with objects that basically are like embedded SQL. That is, you write SQL statements as a parameter to a method call on the database object.

The combination of a compiler, easy access to native code, the Visual Basic translator, and support for both JavaBeans and ActiveX makes SuperCede the best tool for organizations with legacy code. It is rare to find a tool that effectively serves IT needs while at the same time making us down-in-the-trenches programmers happy with such good RAD support.

Perhaps the most amazing thing about SuperCede is that for now it is available for free. You can download the standard edition (not the professional edition reviewed here) for free from SuperCede's Web site, or order a CD for only 0. SuperCede plans to continue this offer at least until mid-April.


In the code generated by the GUI designer, the placement and labelling of objects is hidden in a persistent object-store file (specifically a Java serialized object file), so placement and labelling is difficult for the developer to programmatically change. Although the resulting Java code is legal, it cannot be reverse engineered by other products (like JBuilder and Visual Café) into a visual representation. Like most tools, SuperCede does not offer reverse engineering.

The packaging and literature say that Starbase Versions are included, but during installation Versions asks for a serial number and lock code (which you can leave blank for the evaluation version). The user does get a full version of Starbase Versions. However, due to a miscommunication between SuperCede and Starbase, the necessary serial number and key is not in the box. SuperCede thought Starbase was going to put this information on its insert (in the partners catalog), as it did with version 1.2. If your box does not have this insert, send a note to sctech@supercede.com to get the serial number and key.

SuperCede's GUI designer doesn't provide a visual way to define interactions (events of one object acting upon another, as in VisualAge, Visual Café, and Cosmo Code). The GUI designer doesn't provide a way to visually place non-active GUI objects like lines, circles, and other geometric forms.

SuperCede's GUI designer also does not allow you to change properties of multiple objects. (JBuilder, VisualAge, and Visual Café offer this feature.)

Help is incomplete, with no information on interactions, wiring, and many other issues. The Java API help is a duplication of Sun's standard documentation, with no detailed explanation or examples.

SUBHEAD_BREAK: Symantec Visual Café Professional Developer's Edition 2.1 http://www.symantec.com/domain/cafe/deved/features.html#b

Visual Café has a rich feature set -- and a memory appetite to match.

Click image for expanded view

Visual Café has the only debugger of the reviewed

tools that supports the major VMs (Microsoft, Netscape,

and Symantec's own). The debugger, which shows a lot of

runtime information at all times, makes it easy to add

variable "watches." Notice that placing your cursor over

a variable will show its value (like a tool tip, if the

variable is in-scope). Visual Café also boasts an

expression evaluator, but it is not as powerful as the

scrapbook in VisualAge for Java.


Of the tools that have gone through a prior generation, Visual Café is perhaps the least changed -- but we mean that in a good way. The prior version already was mature and highly capable. The biggest improvements in the new version are the documentation, the support for JDK 1.1, incremental compile/debug, and the compiler, which allows you to create native applications.

Of the reviewed tools, Visual Café has the only debugger that works on Symantec's JVM, Netscape's JVM, and Microsoft's JVM. This is a great feature for developers because many software bugs in your Java code might be reproducible only in a particular VM.

Visual Café and JBuilder are the only two-way tools in this review. That is, they can reproduce the visual representation of your GUI code, as long as certain rules are obeyed.

When we last reviewed Visual Café, we considered it the best tool for rapid application development (RAD). Now Symantec has added incremental compile/debug capability to Visual Café, and in a very mature way. The problem with incremental debug is that some changes typically will have no effect unless the program is restarted. As you debug your code, you can make changes. When you stop or resume program execution, Visual Café recompiles and gives you the option to restart the program.

Visual Café automatically saves the file when you compile or resume debug after making a change. It also can automatically save the file periodically while you are editing, and it automatically backs up files when you save them.

Native applications created with Visual Café have many advantages. Besides the obvious issue of speed, Symantec has managed to make the binary version of the class libraries much smaller than the normal JDK. Instead of needing a 9-megabyte classes.zip file, a compiled Java application needs only the dynamic load libraries (DLLs) that are actually used in the application. Using all of the DLLs would require about 4 megabytes.

Visual Café has a lot of features for working with the source files, such as global search and replace. Its file-compare tool would be a lot more useful if it had some options, such as the ability to ignore lines that differ only in trailing spaces. (In the reviewed version, if you bring up a file in the editor and save it to a new name the tool will spot many differences between the saved file and the original file. This is apparently because Visual Café's editor options can affect how spaces and tabs are handled, and the default settings are different than when the samples were created.)

The Visual Café Professional Developer's Edition also comes with Visual Page (an HTML authoring tool), Netscape Communicator, and the Netscape Communicator patch to run JDK 1.1. We aren't going to give you a complete review of Visual Page, but it seems like a decent program (although it does some things that not all browsers will like, such as providing end-paragraph tags (</P>). Also, Visual Page always wants to force the author's choice of fonts, rather than allowing the browser defaults. We've found the JDK 1.1 patch necessary where Netscape freezes on a system upon starting Java.

From the original Café, through this latest release of Visual Café, the area most improved is documentation. Visual Café now excels both in printed and online documentation. The problem with the documentation of most tools is that it is simply a screen-by-screen breakdown of the components of the tool. This would be fine if you wanted to memorize the tool. But when you want to get things done, you need a manual that is task-oriented, in which you don't have to know what part of the tool performs a particular function. Visual Café's extensive User Guide (more than 400 pages) is an excellent example of the right way to do documentation. Getting Started offers an extensive introduction, covering installation and creating your first applet as well as describing a couple of debug scenarios, the other online and printed documentation, and where to get more information and support. The Visual Page User Guide (more than 140 pages) is also well done, bringing the total printed documentation to about 750 pages.

Visual Café's visual editor does assist you in defining interactions between components, even non-visual components. However, it does not assist you in visually changing these interactions; you'll need to edit them in source code. And it does not show interactions visually on the screen (such as the "wires" of Cosmo Code and VisualAge for Java).

Visual Café is the only tool reviewed that is available for the Macintosh.

Although all the tools have their own Web sites with future information, Symantec goes further by providing newsgroups on its server.


Most problems with Visual Café are minor or easily fixable system-configuration issues. The two biggest problems are occasional crashes and its tendency to hog memory. Most crashes are caused by errors in the configuration: Usually either CLASSPATH points to the wrong libraries, the system doesn't have enough virtual memory, or multiple versions of certain DLLs (like javai.dll) exist. Admittedly, we encountered some of these problems because we've been using so many other IDEs that we had four copies of javai.dll on our review system. However, there are some sequences of use (such as changing the display order of a panel in a flow layout, and then compiling) that cause a crash. Symantec has acknowledged these problems in its newsgroups and is working on solving the problems.

Make sure you have at least 100 megabytes of virtual memory to assure Visual Café will run without crashing. Also, if you run with less than 64 megabytes of actual RAM on Windows 95 (NT requires even more memory), the tool will be slow.

The online help is better than most, but it still needs improvement, particularly on components that Symantec supplied. For example, when you display help for a pressed-on button for a value in the PropertyList, you can get help on inane things like Font.size but not for other attributes that aren't so obvious. (For example: What does Value signify for a ListSpinner? This component is supposed to list text items, but Value appears as an integer.)

Finally, one experienced developer told us that Visual Café's editor doesn't provide enough muted colors for viewing your source code. It seems silly, but if you spend 12 hours a day writing code, you can get a headache if the source code windows are glaringly bright or excessively dark. Visual Café's only muted color is gray.

SUBHEAD_BREAK: Select links to related documents

1 2 3 4 5 6 Page 5
Page 5 of 6