VisualAge C++ v3.0 Review

By Dirk Terrell

Introduction
IBM's award-winning VisualAge C++ is a powerful set of well-integrated tools for C++ development. This product pushes C++ into the age of Rapid Application Development. Although it does require some understanding of object oriented programming, VisualAge C++ will enable even newcomers to C++ to create sophisticated Presentation Manager applications with very little coding.

The beauty of VisualAge C++, however, is that it is just as attractive to advanced programmers because of its extensibility. The central theme of VisualAge C++ is "construction from parts" and it provides the IBM Open Class library, a collection of hundreds of classes that provide most of the basic entities you need (such as user interface objects, collections, etc.), meaning that most of the time you don't have to write any code at all. However, implementing your own classes in VisualAge C++ is quite simple, and "reusability" moves from the realm of hype to that of reality.

The Good
Undoubtedly, the most exciting tool in VisualAge C++ is the Visual Builder, a tool for creating applications using drag and drop. The Visual Builder consists of three editors: the Composition Editor, the Class Editor, and the Part Interface Editor.

The Composition Editor is used to graphically design an application and the interface is well-designed and intuitive. Parts are placed on a canvas and connections are then made between them (e.g., a button's "Click" event is connected to a text field's "Paste" function). Connections are shown as arrows connecting the parts, with color and line type indicating the type and status of the connection.

The Class Editor is used to deal with details like modifying a part's constructor and destructor code, specifying library and resource files, and code files to be included when the application is built.

The Part Interface Editor allows you to define how a part will interact with others using attributes, events, and actions. Switching between the different editors is a matter of clicking a button in the bottom right corner of the window.

The heart of VisualAge C++ is the IBM Open Class library, a set of C++ classes for building applications that is cross-platform, enabling you to develop applications that can be recompiled for different target environments such as OS/2, 32-bit Windows, AIX, Solaris, OS/400, and MVS/ESA, with HP-UX and Macintosh on the way. Try that with MFC or OWL.

The library contains classes for user interfaces, collections, data access (only DB2/2 at the moment), complex mathematics, exceptions, and data types. I find the String classes quite useful because they have functions that mimic many of the functions available in REXX. The User Interface classes make it possible to design a GUI application for multiple platforms without having to learn the low-level API for each operating system.

Some people may prefer to skip the resource-hungry Visual Builder and code an application manually. In that case it is usually best to start with a skeleton application and then add to it. VisualAge C++ provides a nice tool for doing exactly this called Project Smarts. It can generate skeleton applications for: There are also plenty of sample applications to get you started. You can even add your own skeletons to Project Smarts.
 * User Interface Class Library Applications
 * Presentation Manager Applications
 * Workplace Shell Applications
 * Direct-to-SOM Applications
 * Data Access Applications
 * Visual Builder Applications
 * Resource Dynamic Link Libraries
 * C++ Dynamic Link Libraries
 * C Dynamic Link Libraries
 * IPF Context-Sensitive Help
 * IPF Document

VisualAge C++ comes with the venerable WorkFrame, an environment for organizing projects and performing various actions on them. WorkFrame is a very flexible environment for handling projects other than just your VisualAge C++ projects. I use it to work on Fortran projects with the Watcom compiler, for example. As you would expect, things like building, editing, debugging and execution tracing are available from within WorkFrame. You can even add DOS and Windows tools to the environment.

The editor that comes with VisualAge C++, the Live Parsing Editor or LPEX, is pretty good, and you can set it up to emulate the keystrokes of other editors, such as EPM. If you don't like the editor, you can, of course, make WorkFrame use the one of your choice. LPEX performs syntax highlighting (although it doesn't do so until you move to the next line unlike the Borland editor, for example) and automatic indenting. It also does some error checking as you type, detecting a lot of coding errors without requiring a compile. One useful feature is the ability to list the functions in a source file.

The VisualAge C++ debugger provides the usual tools: breakpoints, variable monitoring, and displays of the call stack and registers. It also includes tools like the Message Queue Monitor for monitoring PM messages, and the Window Analysis Tool for viewing a program's windows and their relationships to one another. VisualAge C++ also includes a Performance Analyzer for tuning your program and finding problems.

VisualAge C++ supports Direct-To-SOM, the ability to create SOM objects directly in C++ and have the compiler handle the creation of the SOM interface files.

The documentation is extensive. The hardcopy documentation is thorough, and well-organized, and the online documentation is even better.

The Bad
VisualAge C++ requires serious horsepower if you want to use the Visual Builder. IBM claims the minimum RAM requirement is 16 megabytes, but I have run it in 20 megabytes with lots of swapping on a very small project. Unless you have great patience, I recommend 32 megabytes as the realistic minimum. For C development IBM's minimum/recommended RAM amounts are 8/12, and C++ requirements are 12/16.

Installation is straightforward, but, again, the system requirements are steep. A full installation on my machine swallowed nearly 200 megabytes of disk space, with the samples and documentation consuming about 100 megabytes of that. You can, of course, install only those tools and samples that you need. Unfortunately, you cannot install VisualAge C++ to run from the CD. There are many things that would be nice to leave on the CD, such as sample projects and documentation, but the installation program has no option for doing this. That's not to say it is impossible, but it requires some extra work that could very easily be avoided with a better installation program.

The Ugly
As you might expect in a piece of software this large, there are plenty of bugs in VisualAge C++, but IBM has been good about releasing fixes. You do have to be very careful to apply the various fixes in the correct order, though.

IBM appears to have made a glaring blunder with Visual Builder. When you wish to compile your application, you save the file and generate the source code. But, there is no menu item for actually compiling the code! You have to open an OS/2 window and issue the make command manually. It's really not that big of a deal, but detracts from an otherwise polished piece of software.

The Verdict
Several years ago when I was still doing Windows programming, I fell for the hype of Microsoft's Visual C++ and was very disappointed with it. The hype surrounding VisualAge C++ is well-founded. It does not disappoint. Whether you are a C++ newbie or someone with years of C/C++ experience, VisualAge C++ will provide you with a development environment that is a joy to use.


 * VisualAge C++ v3.0
 * by IBM
 * MSRP: US$489
 * MSRP: US$449 (CD only)