Which Java visual development environment is best for you?

Read this comparative review of 5 top tools so you can quickly pick the one that best meets your needs -- and avoid wasting your precious time with the others

If you're one of those macho developers who likes nothing more than a command line and a text editor, stop reading this review. This article focuses on the Java development tools that cater to the rest of us: visual integrated development environments.

In this review, we focus on Java development tools available on PCs running Microsoft Windows 95 or NT, because the majority of Java developers use such machines. Collectively, the five tools in this review boast hundreds of thousands of users on Windows. Many of these tools are, or soon will be, available on at least one other platform (the Mac or a Unix flavor such as Solaris). (Non-Windows developers take heart: JavaWorld plans a follow-up to our August 1996 review of Mac IDEs, as well as occasional reviews of new tools for other platforms.)

To qualify for this review, tools needed to be visual IDEs for Java. That is, the tools needed to have a graphical (dialog) editor, a code editor, a compiler, a project management and build controller ("builder"), and a debugger -- all integrated to work well together and produce code in Java.

With any comparative review of multiple development tools, the reviewers and editors face the insurmountable challenge of including the latest release of each of the top tools on the market. This is a rapidly moving target in any case, and especially tough with the hyper-evolving Java tools market. This review was no exception: The lineup of products and version numbers changed several times during the multi-month review, and as we publish this, updates of these products are being released. Furthermore, the first release of new tools, like IBM's Visual Age for Java, Borland's JBuilder and Metrowerks' CodeWarrior, are being shipped. Yet if we waited a few weeks or a few months to conduct the review, the same problem would occur. Tools vendors (thankfully) refuse to sit still, making it all but impossible to schedule a review such as this to satisfy every contender's wishes. Impassioned pleas such as "Just wait for version 2.0 to ship next month!" and "But we're about to release our new development tool!" won't cease next month -- or next year. Therefore, we pushed ahead.

We looked at the leading vendors' products and found that the following five fully released Java tools each provided a visual development environment on Windows 95/NT (as of April 1, 1997):

  • Asymetrix SuperCede Java Edition 1.0
  • SunSoft Java WorkShop 1.0
  • Microsoft Visual J++ Professional 1.1
  • Symantec Visual Café 1.0
  • Visix Vibe DE 1.0

All of the tools reviewed are based on JavaSoft JDK 1.02 (except Visix Vibe, which uses its own libraries); some vendors are now offering JDK 1.1-based updates to their tools. (Check the vendors' Web sites for the latest update information.) Bear in mind that these updates are not tested in this article, and we don't know how strongly the tools support the new functionality. For example, JDK 1.1 includes JavaBeans, but the updates may not yet include a wizard to help you create your own Beans.

We selected and evaluated these tools using the criteria described in the Review criteria section below. To help developers reading this review consider longer-term issues, we've supplemented this comparison with some details about the features expected in forthcoming versions of the products reviewed -- as well as a discussion of the major products that are not included in the review. See our sidebar that details "Java developer products not reviewed."

Review criteria

Each of the five tools has taken an entirely different approach to supporting Java. As a result, each might be appropriate for certain situations. You need to determine which features matter most to you. With this information in hand, you'll be able to use this comparative review to learn the details about each reviewed product so you can make an informed choice. This review has a section devoted to each tool. Each tool-specific section contains notes about the tool's approach, and exceptional or missing features in the following subsections:

  • Editors (visual screen layout tools as well as code editors)
    • Graphical editor for laying out your dialogs without writing code to put controls and static items like text, lines, circles, and squares on your screen.
    • Full screen text editor for editing code.
  • Compiler and Builder (Project manager)
    • At a minimum, they easily add or remove files from a project and understand which files have been updated and need to be rebuilt.
  • Debugger
    • At a minimum, we expect a debugger to allow us to place breakpoints, examine and change classes/variables, handle multiple threads, single-step through code, and step into or over functions.
  • Libraries
    • We expect all the JDK 1.02 libraries including AWT. Additions or missing classes are noted.
  • Documentation/demo/tutorial

    • Good online documentation (including a user's manual for the tool, and Java language and API references) is expected. A printed manual is now considered optional.
    • All tools have a Web page for support information, product updates, and, in some cases, a free trial version.
  • Other Features
    • Anything else exceptionally good or bad about the tool.

We did not benchmark compiler performance in this review. We find that the speed at which the compiler runs is not the big factor in development cycle times. Rather, the key factor is how fast you can make a change, compile, and test to see the effects of that change. These issues are covered in each section's RAD features discussion.

Many of the tools, when used on their own, are a reasonable solution for learning Java and creating simple applets. For building industrial-strength applications, however, it is important that they integrate well with other tools (like configuration management and testing tools), support sub-projects, and have the ability to build reusable components. The ability to create a fully compiled executable is important if you require high performance, or wish to hide the implementation of your program. You need to establish the importance of these features in order to rank the tools based on their merit in your organization.

Features at a glance

The table below gives you a good idea of the overall capabilities of a tool. Using this table, you should be able to quickly narrow your choices. For example, if you want to run on both Windows and Solaris, you have only two choices: Java WorkShop and Vibe.

Product features table

Asymetrix SuperCede 1.0

Microsoft

Visual J++ Pro 1.1

Symantec

Visual Café 1.0

SunSoft

Java WorkShop 1.0

Visix

Vibe DE 1.0

Retail Price

49.95

9

99

9

9.95

Supported Development Platforms

Win95/NT

Win95/NT

Mac,

Win95/NT

Solaris,

Win95/NT

Solaris,

Win95/NT

Program Types

Applets/Apps

Applets/Apps

Applets/Apps

Applets/Apps

Apps only

Executable Applications

Yes

No

No

No

Yes

Complete Support for 100% Pure Java

Yes

Yes

Yes

Yes

No

ActiveX Supported

No

Yes

No

No

Yes

Free Trial

Version Available

Yes

Yes

No

Yes

Yes

Java Native Method Support

Yes and RNI

No, uses RNI

Yes

Yes

No, uses RNI

Conditional Breakpoints

Yes

Yes

Yes

No

No

Asymetrix SuperCede 1.0

Microsoft

Visual J++ Pro 1.1

Symantec

Visual Café 1.0

SunSoft

Java WorkShop 1.0

Visix

Vibe DE 1.0

Trace Points

Yes

Yes

No

No

No

Action Points

Yes

Yes

No

No

No

Display/Change Variable

Yes

Yes

Yes

Yes

Display only

Additional Java Class Libs

Yes

Yes

Yes

Yes

No

Ability to Add Your Own Objects to Palette

No

ActiveX/OLE objects only

Yes

No

Java classes or ActiveX/OLE objects

Integrates with CM

No

Yes

Yes

Yes

No

Integrates with Computer-Aided Test Tools

No

Yes

Yes

No

No

User Can Integrate Tools into Builder

No

Yes

Yes

No

No

Printed Manuals

(Not Booklets)

Getting Started, User Guide

Learn Java Now

No

No

No

Sub-Projects

No

Yes

Yes

Yes

Yes

For a definition of terms used in the table and elsewhere in this article, see the sidebar Glossary of Terms.

Asymetrix SuperCede Java Edition 1.0

Click image for expanded view

SuperCede is shown here in the applet debug mode.

It has the applet running in its own viewer with

additional windows for variable watches, message

output, and an on-the-fly Java code interpreter,

called the "Debug Scratch Area," which allows Java

code to be executed in the scope of the applet being

debugged. The top portion of the screen contains

the project-management portion of the IDE.

Approach

SuperCede (SC) is the only tool that allows you to use Pure Java to create Java byte code applets or applications and still allow you to create binary executables that run at approximately the same speed as native C/C++ implementations. Asymetrix based the implementation of its Java and C++ classes on the same object model that allows you to easily integrate the two languages.

Editors

The SC editor environment does not have a lot of extra bells and whistles, but it does come with the more advanced common features, such as Java and C++ code color formatting, macro support, and ability to import non-SC applets. However, SC lacks some key features that are useful to large-scale development projects, such as the ability to search for text in all files in a project, nest sub-projects within a project, and integrate with outside tools.

Although the SC environment is designed for RAD development, we did uncover a bug trying to create a layout manager object to the code that would work with controls that were added via the visual builder instead of dynamically created by the code. This takes away a little flexibility, but the tool more than makes up for it with the ability to dynamically make changes in the visual forms and/or code editor and see the effects of the changes instantly.

Compiler and builder

Only two tools, Asymetrix SuperCede and Visix Vibe, can fully compile Java into fast, stand-alone executable programs and libraries (DLLs). The unique advantage of SuperCede (SC) is that it supports Pure Java solutions that let you generate and compile Java code to SuperCede's highly optimized Java virtual machine (VM). The SuperCede Java VM can be used to compile code on-the-fly or as a Web browser plug-in. The SuperCede VM provides a high-performance Java runtime program that boosts the performance of Java to C++ speeds. Asymetrix claims performance that is 50 times better than interpreted Java and up to 5 times better performance than the best just-in-time (JIT) Compiler and Builders. See http://www.asymetrix.com/products/supercede/news/benchmarks.html for more information on their claims.

Debugger

In addition to standard debugging features, SuperCede has a two additional and powerful features called trace points and action points. Trace points are set like breakpoints, except messages can be output to the debug window instead of stopping execution. This approach helps you avoid adding print statements all over the code to track execution points. Action points let you execute a piece of code each time a specified point is reached, without necessarily halting the execution of the program.

Another cool feature of the SC debugger is the Scratch window, which allows you to enter Java code on the fly and run it in the current scope of the debugging environment.

SC's applet viewer doesn't enforce the security rules that a standard browser might, allowing you to bypass these issues during the development phase. For example, an applet can access local files within the applet viewer even though it can't when it's running within a Java-compatible browser. For this reason, you should always test applets within their true context -- Web pages that represent their actual uses -- to make sure everything works as intended.

Libraries

Asymetrix implemented its Java and C++ classes using the same object model that provides seamless integration with C++ to facilitate the creating of Java wrappers for C++ programs or C++ wrappers for Java programs, so that either can call the other. Using SC, you can call C/C++ code directly, or by using the more complicated Java Native Method scheme.

Also, Asymetrix has bundled a number of other libraries with SC. These include Netscape's Internet Foundation Classes (IFC), ObjectSpace Inc.'s Java Generic Library (JGL), and Object Design Inc.'s ObjectStore Persistent Storage Engine (PSE). (For more details about JGL, see the article "Need a good set of abstract data structures? ObjectSpace's JGL packs a punch!," also in this issue of JavaWorld.)

RAD features

SuperCede is well-suited to rapid application development (RAD) because it offers the fast cycles of changing code, applying the changes, and showing the results. Its "Flash Compiler and Builder" technology allows you to make changes to a running program, such as editing the event handlers, and apply the changes with a simple click of the Update button. The program will continue running from where it left off, with the new behavior in place. In SC's "bounce" demo, for example, you can change the circle into a square, or change its color. When you press Update, the new object continues moving on the screen from the position of the old object.

Documentation/demo/tutorial

SC comes with a full interactive demo that not only demonstrates the different features of the tool, but also covers the Java language itself. SC also comes with a full-blown client/server application that implements a Fantasy Sports Draft. This great example covers many issues, such as handling multiple logins to a server with multiple threads, as well as real-time interaction among multiple threads.

Other features

1 2 3 4 Page
View Comments
Join the discussion
Be the first to comment on this article. Our Commenting Policies