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 4
Page 4 of 6

The tool with the most visual programming capability is well named. VisualAge for Java possesses major strengths and only minor handicaps.

Click image for expanded view

VisualAge has the best support for visual programming.

It allows you to interact with non-visual objects (see

arrows pointing up on right side of screen), and more

than one object. In this example, a change in any input

field calls a method that we defined on the applet. Notice

the DOS application running in the task bar; this is the

help server that must be running to use VisualAge's help.

Strengths

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").

Weaknesses

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.

Strengths

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

Weaknesses

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.

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