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

As an IDC research analyst recently noted, 1997 was "the year of the [Java] tool." Indeed, in the June 1997 issue of JavaWorld, we offered the first comprehensive comparative review of the best JDK 1.0 tools (Asymetrix SuperCede 1.0, Microsoft Visual J++ 1.1, Sun Java WorkShop 1.0, Symantec Visual Café 1.0, and Visix Vibe). Since then, Java tools have matured, and now many provide full support of JDK 1.1 features. To help our readers evaluate this latest generation of visual integrated development environments (IDEs), JavaWorld in this issue compares the professional versions of the top six visual development tools for JDK 1.1:

  • Borland JBuilder 1.0 Professional
  • Cosmo Software Cosmo Code 2.5
  • IBM VisualAge for Java 1.0 Professional
  • Sun Java WorkShop 2.0
  • SuperCede Inc., SuperCede 2.0 Professional
  • Symantec Visual Café 2.1

Note that three of these six tools -- Borland JBuilder, IBM VisualAge for Java, and Cosmo Code -- are new (or were not released in time to be included in our last comparative review). The other three tools have been upgraded since our last review to include JDK 1.1 support and various enhancements.

The evolution of Java visual IDEs over the past nine months has been astounding. Last year, most Java tools wouldn't stand up against the capabilities of even the early versions of Borland C++. Fortunately, this new group of tools is powerful and friendly.

Review criteria

In this review, JavaWorld looked at the major Java JDK 1.1 tools that tout a visual integrated development environment. A great many Java tools have been released or improved in the past few months. We can't review every one of these, but we try to describe them all (as well as all sorts of other Java developer products) in JavaWorld's comprehensive Developer Tools Guide. (If the Tools Guide is missing your favorite tool, let us know.)

The reviewed tools are quite powerful now, and many are relatively inexpensive and/or provide free trial versions, so there are plenty of alternatives if you don't have much money to spend on tools. For example:

  • Parts for Java from ObjectShare has a free 30 day trial
  • The beta version of SNiFF+J Professional is available for free download from TakeFive Software
  • Super Mojo from Penumbra Software is available for an introductory price of 9.95

(See the Resources section for URLs.)

On one hand, only recently have some tools become JDK 1.1-savvy. On the other hand, the list of visual Java development environments is a long one; choosing the top candidates for this review was no easy task. Based on input from JavaWorld reader surveys, data from research companies, and the experience of the reviewer, we established a set of criteria. To be chosen for inclusion in this review, a given tool had to:

  • Be fully released (not in beta)
  • Provide support for visual programming, at least to the point of placing objects without programming
  • Provide good support for JDK 1.1, including the ability to create and consume beans
  • Claim a substantial marketshare among similar Java tools
  • Offer a "professional" edition or equivalent. (Products that are marketed primarily as "enterprise," "database," or "multi-tier" development environments, such as Sybase PowerJ Enterprise, inherently warrant a broader set of evaluation criteria, and thus were not compared to the professional tools in this review)

Of these criteria, the most difficult one to quantify is "substantial marketshare." What makes this so difficult is that beyond the top three leaders (VisualJ++, Café and Java WorkShop) the market analysts' opinions greatly differ. Using a variety of sources including JavaWorld's own reader surveys, we had to make our best guess.

Who didn't make the cut

We excluded Microsoft Visual J++ from this review because its new version (renumbered 6.0 to be in sync with the version numbers of other Microsoft development tools, such as Visual C++) wasn't yet released. (Just before our publication deadline, Microsoft did release a version 6.0 beta. But even if the post-beta release was currently shipping, it may not have met the criteria for this particular review.) For more information on Visual J++ 6.0, see "Microsoft takes wraps off Visual J++ 6.0: Software giant creates thicker ties between Java and Windows with WFCs" in this issue of JavaWorld. (And be sure to check out the extensive collection of hand-picked resources accompanying the VJ++ article!)

The current shipping version (1.1) of Visual J++ is not reviewed here because it hasn't changed substantially since we reviewed it last June. (Since then, Microsoft has added its Software Development Kit (SDK) for Java 2.0, which provides most JDK 1.1 support, but Visual J++ 1.1 doesn't fully support beans, and its resource editor supports only a subset of visual objects.)

We did not look at Visix Vibe this time because the JDK 1.1 version wasn't ready yet. Visix also is working on a JDK 1.2 version. Visix still will offer VFC, as these provide cross-platform support, high functionality and high performance (because the VFC are compiled to native code).

We excluded Metrowerks Code Warrior Professional because its support of the visual metaphor and JDK 1.1 is very weak. Its visual tool (Constructor) is not fully integrated in the IDE; it cannot generate all of the code to instantiate controls on the screen; and it does not have tools for bean creation.

Enterprise-level tools, which are made for multi-tier development, require a whole different set of criteria. If evaluating an enterprise-level tool, we would look at its support for working with databases, performing RMI (remote method invocation), and accessing legacy systems. We'd also expect tools of this level to have floating licenses and offer training and help-line support. For this reason, the enterprise version of tools and enterprise-specific tools like Sybase PowerJ are not reviewed. We hope to compare enterprise tools in a future review.

Testbed systems

Each tool was tried on two different machines, a Pentium II 266-megahertz PC (with 64 megabytes of RAM, a 5.2-gigabyte disk drive, and 20-inch monitor) and a Pentium 133-megahertz PC (with 32 megabytes of RAM, a 4.3-gigabyte disk, and a 17-inch monitor), each running Windows 95 OSR2 (OS Release 2). We created projects under each tool and evaluated them against a list of major criteria including the features which enabled us to rapidly create projects and create and reuse beans.

To minimize the possibility of mistakes, we did our best to verify our findings with the vendors.

How to navigate this review

We've organized this review into two main areas:

  • The General overview/summary section provides a good abridged description and evaluation of the reviewed products and their features. Here you'll find our comprehensive Major features table, as well as discussions of key concepts such as the visual programming paradigm, native compilation, and integration of manual programming.

  • The remaining six sections are product-specific, and extensively detail the strengths and weaknesses of each visual tool.

  • We also provide a comprehensive Resources section containing select links to related documents.

SUBHEAD_BREAK: General overview/summary

Java tools have grown a lot since we last reviewed them. So much so that many tools reviewed last June do not even meet the criteria today.

There are two main tasks in object-oriented programming: defining your classes and instantiating them -- or, in Java vernacular, JavaBean creation and consumption. All the tools reviewed here are adept at both creation and consumption of beans. In addition, each tool lets developers visually create and place visual objects, such as AWT classes, to create their user interface forms.

General information about the tools

General Information Price/AvailabilityBorland JBuilder 1.0 ProfessionalIBM VisualAge for Java 1.0 Pro

Cosmo

Software Cosmo Code 2.5

Sun Java WorkShop 2.0SuperCede Inc. SuperCede 2.0 ProfessionalSymantec Visual Café Pro Dev Edition 2.1

Free trial

version available

Tutorial versionEntry-level limited to 100 classes, virtually no help or online docsYesYesYesYes
Platforms supported for developmentWin95/NTWin95/NT, OS/2Win95/NT, SGI

Solaris (both),

Win95/NT, HP-UX

Win95/NT

Mac,

Win95/NT

Suggested price (Street price)99 (48)9 (1)29 (25)9.95 (same)95 (15)99 (75)

As we said earlier, many Java tools have been slow to adopt the friendly productivity features that Borland Turbo tools have had for years. These include rapid development features and great API-level help. At least as far back as 1992, for example, in Borland C++ you could place your cursor on a function name in your code, press a key, and get help on that particular function. You could then look at example code (which included any additional functions that might be necessary), and if you so desired, copy it into your code. This level of context-sensitive help with examples exists only in JBuilder, and even then only on the class libraries that Borland added.

Tools for Java, however, have some new things to worry about -- like layout managers. Much of this review concentrates on these language-specific items. For example, Java layout managers look at certain properties of the objects to determine how to place them. These properties are called layout constraints. GUI designers, when placing objects, should understand what object layout constraints make sense based on a given type of layout. Some tools (that were not included in this review) are so crude that they don't recognize the meaning of these properties. They allow you to put in only property names and values. It is up to you to look up which properties to use, and manually type them in with their values without the benefit of interactive error checking.

Disk space is not really an issue worth comparing on these products; they all take 50 to 60 megabytes for a typical install; Borland JBuilder can use up to 170 megabytes with all its goodies installed.

When using these tools, we recommend that you have at least 48 megabytes of RAM, and a screen capable of at least 1024x768 resolution. If you have a low-resolution screen, you'll be shifting windows constantly to uncover what you need. If you must use a lower resolution, SuperCede and Cosmo Code may best serve your navigational needs, thanks to their small floating palettes and tabbed dialogs.

All of the tools in this review are now form-based, which means that the GUI designer is fully integrated into the development process. This was not the case in last year's review, when Visual J++ used a separate resource editor for the GUI, and then you worked with files in the visual studio. All of the tools now support sub-projects, at least in the form of packages.

Major features

Requirements for a Java tool differ among individual developers. The items we've listed in the Major features table have been important -- even critical -- to some of your peers, but you need to decide how much they matter for your needs. In this section, we describe the major features and why they might matter to you.

What is a visual IDE?

To appear in this review, each tool had to support the basic visual creation of user interfaces -- that is, provide the ability to select a visual component from a palette and place it on your user interface. Some people refer to such tool as visual development environments (VDEs). The tool used to visually design the interface is known by various names, including designer, form designer, visual composition editor, visual editor, screen painter, screen editor, form painter, and GUI designer. In this article, we refer to them as GUI designers.

Developers need to place the components, and to modify their appearance, other attributes, and events. Ideally, visual IDEs let you quickly drag and drop components, and easily change the things that frequently need changing. If you have to wait a lot, this process can drain a substantial amount of time on a complex interface.

Many tools use the drag-and-drop paradigm, while others have you click on the component, then click on the destination. The amount of effort is almost the same for both, but most people prefer drag and drop. SuperCede and Cosmo Code use drag and drop; the rest use click and click, though Visual Café supports both methods for most purposes. VisualAge lets you set a "sticky" option so that once a component is picked you can keep placing instances by clicking in each destination.

How often your applications will use layout managers has an impact on your tool decision. With all tools except Java WorkShop's, all placement can be done free-form (with no layout manager). Only JBuilder, VisualAge, and Java Workshop let you visually place and move objects within a layout manager, so a lot of the complexity of working with the layout manager is hidden.

With Cosmo Code, SuperCede, and Visual Café, you need to understand the meaning of these properties so you can appropriately set the constraints, since this is the only way you can place and size objects correctly in a layout manager. But of course, if you want to freely place objects you can simply change the layout to "none."

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