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

1 2 3 4 Page 3
Page 3 of 4

Perhaps the most notable characteristic of VJ++ is that it isn't a solitary effort. Microsoft has pulled together a collection of useful tools to make VJ++ a compelling suite. These tools include Aimtech Corp.'s Jamba, Neural Applications Corp.'s E-Mail Wizard, ObjectSpace Inc.'s Java Generic Library, Dimension X's Liquid Motion (which is now owned by Microsoft, thanks to its recent acquisition of Dimension X), and Bulletproof Corp.'s JDesignProT. Many other tools are available, some free of charge, from the Microsoft Web site.

If you are interested in JDK 1.1 features, such as JavaBeans, Microsoft has the beta release of its Java SDK 2.0 available for download.

RAD features

The only major disadvantage of VJ++ is that it isn't ideal for rapid application development. When you are in a mode of changing your dialog a lot, the extra step of generating code from the resource file seems extraneous when compared to the interactivity of the other tools. Also, you need to close the browser each time before running changed code; otherwise, you will run the old version.

Then there are the issues mentioned under editors -- the resource (graphic) editor doesn't give you access to all Java AWT controls, the code generation is a one-way process, and you can't add your own classes to the palette.


Microsoft has provided an excellent set of online documentation that is integrated into the Developer Studio to provide easy lookup for many of your Java questions. Help also includes pictures of most of the visual controls, based on the available styles of the particular class. In addition to some of the best online documentation, VJ++ includes the book Learn Java Now. For first-time Java programmers, this book provides a very good introduction to the language and leads the reader through the basic steps of writing that first meaningful applet. In addition to introducing Java, it also covers object orientation, animation techniques, multithreading, and VJ++ features, like Applet Wizard. The book's approach is particularly helpful; it begins by describing techniques in an easy-to-understand manner (including code snippets, sidebars, and tips), then shows you how to apply those techniques in tutorial examples.

Other features

Microsoft also has brought its Cabinet packaging technology to Java, which allows you to bundle all the classes your application needs into a CAB file, compress it, and distribute it with about half the download time. Using Java does not insulate you from versioning issues, so you might want to use CAB files to help solve some configuration management problems. You can use a CAB file to make sure that the appropriate version of components are matched with compatible versions of your program by delivering the program and the needed components together.

Another compelling feature of CAB files is that they can have persistence. This feature allows applets, which normally must be downloaded each time the browser is restarted, to stay (or persist) on your system, saving valuable time.

Microsoft has also tackled the limitations applets must contend with because of security restrictions by offering code signing. If your Java application must access files, or do anything else outside of the Java security "sandbox," some form of authentication, like code signing, is very important. Otherwise, the user has no way to know if the code can be trusted -- it may have been hacked, or it may not have come from a trustworthy vendor. When you sign a CAB file, your user is assured the code came from "the real you," and that it arrived unmodified. (Note that JavaSoft likewise now supports code signing with JDK 1.1.)

Symantec Visual Café 1.0

Click image for expanded view

Visual Café's environment is well integrated. You can

edit, run in the debugger, stop, edit, and run again

effortlessly. The debugger doesn't have trace points

and action points, but since it boasts every other

major feature -- and an excellent variable browser and

watch windows -- we don't think you'll miss them. You

can put a watch on a variable simply by dragging a

variable from the variables window to the watch window.

In some ways, Visual Café (VC) is at least a second-generation tool because it is heavily based on Symantec's Café, which itself is up to version 1.51. Rather than simply going after more functionality, however, VC is meant to be an easier-to-use product that automates basic tasks with an intuitive user interface.

Ease of operation and decent tutorials make VC a good tool for getting acquainted with basic Java. Within minutes of installing VC, even non-programmers can create basic Java applets to make Web pages more interesting, or trivial application programs.

In fact, Visual Café is the only tool that has any "visual programming" beyond the layout of the GUI, although this is limited to its ability to define some basic interactions between objects. For example, without coding, you can specify that when a user clicks on a button, an animation object will start or stop running. You can even graphically interact with non-visual components if their behavior has been exposed with the Java Reflection API (or in the future with Beans).

A few bugs hindered our use of VC. At one point, the Dialog Editor Palettes all went blank, and we had to re-install. When we re-installed to a directory other than the one we originally installed to, some new problems cropped up. The most annoying of these problems was that occasionally, the entire IDE would crash when the Restart button was pressed.


Feature-wise, VC is almost everything you would want from a "100% Pure Java" tool. Being a tool in the spirit of Pure Java, VC doesn't offer a lot of support for current paradigms like files. For example, although Java supports the FileDialog, Visual Café does not have an icon for it on the palette in the Dialog Editor.

Compiler and builder

Symantec's JIT (Just-In-Time Compiler and Builder) claims to be the fastest both in compile and runtime in the industry and is now included in JavaSoft's JDK 1.1 as the Performance Runtime for Windows.

VC project management is among the best. Projects can contain sub-projects, and you can call batch files to perform custom functions, such as call other tools. VC integrates easily with several popular configuration management tools, including SCCS and RCS.


VC's debugger is full-featured, and has remote debug capability -- that is, you can actually debug Java that is running in another machine. The debugger is tightly integrated with the Java virtual machine, allowing you enter Java code on the fly and see the result.


VC includes about 100 visual components beyond the basic AWT widgets. One valuable feature is that users can add their own objects to the tool palette -- a feature exclusive to VC at this time.

RAD features

VC is highly interactive. Code changes often show up immediately on the dialogs, and vice-versa. For users of other visual programming tools like Visual Basic, VC will seem natural with its point-and-click access to objects and their properties. VC's editor is configurable to act like a variety of different editors. It comes with "personalities" to make it act like Emacs, Norton, and Brief, and you can add your own. Also, the editor is macro-programmable.


VC includes about 20 examples, such as slide viewers, an e-mail client, fireworks, flames, and other animations. Visual Café Pro (which will run you 99) includes database capabilities and even more examples (about 90). Both Netscape and Informix have decided to sell Visual Café Pro as their recommended Java solution.

The online documentation is good -- much better than it was in Café 1.5: classes and methods are fully described, as are their arguments, return values, and exceptions.

Other features

Symantec's standard Café product, at a price of 9 (including the book Teach Yourself Java in 21 Days), is a lower-end product with a subset of features.

The upcoming version of Visual Café features incremental build, debug and compile, and full support for JDK 1.1 and JavaBeans. (A beta version of this updated software should be available in June for download from Symantec's Web site.) Symantec also plans to support cabinets in the future with VC.

Visix Vibe DE 1.0

Click image for expanded view

This sample application that comes with Vibe provides

a great way to get to know ActiveX. Here we can see that

the sample app has declared that it wants to be notified of

certain events (such as NavigateComplete, DownloadBegin,

DownloadComplete, Quit, and Property change) from the

Internet Explorer ActiveX control. In this picture, we are

putting a breakpoint in the handler for one of these events.

MS VJ++ makes this a little easier because the Java Type

Library Wizard can be used to generate Java wrappers for the

events for an ActiveX control.


Almost a decade ago, when cross-platform toolkits first arrived on the scene, they were often viewed as the least common denominator (LCD) between platforms. Visix Software Inc., with its Galaxy tool, was one of the first to break the bounds of LCD and deliver full richness to all platforms. Visix provides (among other things) excellent geometry management, internationalization (English and Japanese resource files are provided; users can add their own), and a PostScript-like drawing model that allows complex transforms on all platforms.

With its Vibe product, Visix brings "the Power of C++" to Java. Visix treats Java as a language that can be used with native code libraries to produce rich applications that run fast on all major platforms.

Vibe's IDE offers many of the features of Visix Galaxy -- a high-powered, cross-platform development system that costs more than 0,000 per desktop. Vibe uses Visix Foundation Classes (VFC), which are based on the cross-platform libraries used in Galaxy. These libraries are quite rich, and are recognized by some experts as the best cross-platform libraries available. Because these libraries are native code, they run fast, and because they are cross-platform, they are available for Windows, MacOS, OS/2, and the most popular flavors of Unix.

The IDE uses a lot of tabbed dialogs and split windows. It allows you to get to different parts of the application quickly and have a lot of relevant information on the screen at the same time.


Vibe's editor had the best auto-indenting; you can use one of several different styles of indenting, or you can define your own style.

The dialog editor's geometry management is powerful, but the metaphor used to represent it (struts, springs, etc.) takes some getting used to.

Compiler and builder

Although it allows you to create Pure Java applications, Vibe is not the ideal for "Pure Java" enthusiasts. It doesn't support applets, and the AWT widgets are not graphically represented on the palette of the dialog editor. Furthermore, some of the JavaSoft examples will not work because Vibe does not support Java's Native Method. Therefore, if you want to use native code, other than what is provided in the VFC, you'll need to put it into an OLE/ActiveX control to get to it.

Like most of the other tools reviewed, Vibe allows sub-projects within projects. All of Vibe's examples are sub-projects within a project called Example, so you can compile them all with one click. Once you do kick off a large compile job like this, though, you find an inconvenience: You can't interrupt Vibe's builder. It won't stop until it compiles the whole project, unless you kill it from the operating system.


Vibe's debugger, like that of JWS, does not have variable watch windows, conditional breakpoints, trace points, or action points. Unlike JWS, however, this debugger won't let you change the value of a variable. On the positive side, the debugger is very easy to use and makes good use of screen real estate.


Vibe excels in its support of ActiveX by providing a wizard that generates the Java class to encapsulate the control. While developing test applications, we found it easy to use ActiveX components that our system has picked up from applications, or from browsing the Web. Because of Vibe's support of OLE automation, your Java application can control other applications, such as the browser.

The ActiveX/OLE support in Vibe is not quite the same as the ActiveX support in Visual J++, so if you convert programs between the two, you will have to make some changes to the calling syntax.

RAD features

Changes you make to the layout or attributes, such as changing labels or changing the usage of struts and springs, show up immediately without compiling.


Approximately 50 examples are included, none of which are the JavaSoft examples. What is unique about these examples is that they look like real applications: many have splash screens and About boxes. Some have advanced features such as drawing graphics outside their client window.

Other features

Vibe also has the distinction of being the lowest-priced tool reviewed. Overall, Vibe is a tool for serious applications (not applets), and a bargain at 9.95.

Visix promises versions of Vibe on Mac, OS/2, AIX, Irix, and Linux. Visix's ability to effectively produce these releases on schedule will be a powerful argument to support its portability story.


As you can see, each of these tools offers a collection of strengths and weaknesses. After reading this comparative review of five top visual Java IDEs, we hope you're able to narrow your choices down to the tools that will best satisfy your needs.

1 2 3 4 Page 3
Page 3 of 4