One of the toughest battlefields in the advanced systems market is in graphical user interface (GUI) development tools. About 35 combatants skirmish for $64 million in annual North American sales, with more entering the fight each day (or so it seems).
Of course, the good news for developers of Motif applications, the consumers of these tools, is that competition improves the breed and (hopefully) holds down prices. (There's more good news expected for this developers this month. See the sidebar Common Desktop Environment expands on Motif. ) Based on sales information from market researcher X Business Group (Fremont, CA), we picked five popular contestants for this comparative review: X-Designer, UIM/X, Builder Xcessory, TeleUSE User Interface Management System, and XFaceMaker. (To get an early impression of the new CDE Application Builder, send an e-mail message to email@example.com.)
What's a GUI development tool? Though the implementation varies slightly, each tool consists of an on-screen canvas where the interface is constructed and edited, a collection of preconfigured interface elements (called "widgets" in the trade), and (with three of the tools tested) a callback editor, which helps the developer stitch the GUI into the application. (With a series of screen shots, we outline how to build a GUI using one of these tools. To learn how to get our tutorial send an e-mail message to firstname.lastname@example.org.)
Marketeers steeped in the nuances divide these tools into two categories: Interface Development Tools (IDTs) and User Interface Management Systems (UIMS). IDTs are simple interface builders and are represented in this review by X-Designer and Builder Xcessory. UIMS do everything IDTs do with the addition of a scripting language for tying the behavior of the interface to the application. UIM/X, TeleUSE, and XFaceMaker are considered UIMS.
The Advanced Systems Test Center reviewed four of these tools three years ago. At the time, all were relatively new, so we focused on how easy the tools were to use, which is now a given. The burning issues today involve team development and supporting complex applications through long life cycles. How well do these tools maintain existing code? How extendible are the widget palettes? How does each enforce style guidelines?
In brief, all succeed to varying degrees. Differentiating the products became a matter of nits, not howling flaws, and all shared many strengths. With the exception of X-Designer, each has adopted the "drag-and-stretch" approach to interface design; you select a widget to add to the interface, then you position the mouse and stretch out a box for that widget. X-Designer has taken (in our view) a simpler click-and-add approach to the drawing of the interface. Both approaches have strengths and weaknesses; often the decision comes down to a matter of taste.
All generated clean, though not flawless, code. However, with a few tweaks, the author overcame the problems he experienced compiling the apps. All five will generate C, C++, and User Interface Language code; some also generate Ada code. The author conducted his tests on a Tatung Super COMPstation 7/30 (a SPARCstation 10 clone) running Solaris 2. The author spent two months examining the products by developing small sample interfaces.
Of the two IDTs, the author prefers X- Designer (and IDTs in general) for its intuitive design. It is the highest scoring product overall. If you need an interface fast, you need X-Designer. If, on the other hand, rapid GUI development is less of a concern and you need a tool to help manage a large application over time, we recommend UIM/X, a UIMS. (Upscale from UIMS are cross-platform development tools. We review Neuron Data's Open Interface on page 42.) We look at the IDTs first.
Imperial Software Technologies X-Designer 3.2
Installation of X-Designer 3.2 is simple, and this IDT uses Globetrotter's FLEXlm license manager, so licensing is straightforward. While Imperial includes but one document, it offers a thorough tutorial detailing sections on X-Designer's advanced features.
Upon launch, X-Designer brings up a single window, which, like TeleUSE and XFaceMaker, encompasses a widget palette, work area, menu bar, and operation buttons. (By contrast, Builder Xcessory and UIM/X separate the palette into its own window.) X-Designer is a switch-hitter, though. By selecting the Separate Palette toggle on the Palette menu, you can separate the widget palette from the main window. This option allows a larger work area.
The widgets initially appear as icons, but like its competitors, X-Designer lets you display labels with the icons, or labels alone. X-Designer has its biggest win with the speed of interface creation. X-Designer will track the latest selected widget and allow you to add children to it, or its parent, by clicking on the widgets in the palette. You can draw a simple warning window that has a label widget and three push buttons with just six clicks of your mouse button -- with that complete, you can go straight into setting resources. This leads to very fast prototyping, and these prototypes are also easily modified for the actual task of creating product interfaces.
The X-Designer palette is naturally extendible, both with widget definitions and third-party widgets. In both cases, X-Designer has one of the easiest approaches. By setting a definition from the Palette menu, you can place a widget grouping or specific style, and then incorporate the widget on the palette. Even better, for third-party widgets, the XDconfig program eases much of the setup needed before relinking the X-Designer executable.
If there is a weakness with X-Designer 3.2, it is with the callback editor. While callback code is now saved between code generations -- a major step forward from version 3.0 -- for callbacks beyond the most simple routines, you still need to edit the generated code. This could very well involve repeated ventures into and out of X-Designer as you edit and test callbacks. Having the option to build callbacks on line should be at the top of Imperial's to-do list.
The X-Designer tutorial allows a user to start using the product within a day, so new employees are likely to be productive quickly. The ability to enforce interface standards is a big plus, as is the ability to group widgets and re-use them across multiple applications. X-Designer 3.2 remains an excellent tool earning the highest score of the GUI builders tested.
ICS Builder Xcessory 3.1
Integrated Computer Solutions' Builder Xcessory 3.1 is easy to install and to to run, since it employs FLEXlm as its license manager. (ICS sent the full-blown edition of its IDT and not the "Lite" version [a.k.a. Moolit] Novell offers with UnixWare's software development kit.) Once launched, it presents users with three attractive windows: on the left is a widget palette, center top is a browser window, and center bottom is the resource editor.
The palette is the most attractive of the tools examined. Each standard Motif widget is represented with a colorful graphic depiction and a text description below. The display is configurable, with only the image or the text being options for display. Furthermore, the widgets are grouped by type, and each type can have its display iconified within the palette simply by clicking on the folder symbol for each category. This makes the palette easy to manipulate, as you can select a group of widgets for display and iconify the rest. The widget palette also is expandable. You may add widgets you have created or other commercial widgets just by recompiling Builder Xcessory.
Unfortunately, several of the variants of the dialog template found on the UIM/X and X-Designer palettes are not present on the Builder Xcessory palette. These can be created from the standard dialog widget and added to the palette, but it would have been nice if they'd been there from the start.
It is easy to get started with interface creation simply by selecting widgets. You are not restricted to the selection of top-level widgets either, since Builder Xcessory will create the necessary widgets for you. This is a nice feature that is not offered by some of the competitors. Also, by selecting Keep Parent from the View menu on the tree browser, the palette will disable widgets that cannot be children of a selected widget, and will allow for the automatic addition of the child widget to the interface. Without Keep Parent, you end up drawing the child on the parent, and if this widget cannot be a child, you end up with a new top-level shell.
One weakness of Builder Xcessory is the lack of a callback editor. Apart from built-in callbacks, (which are expandable) the developer will need to generate code and edit a separate file to create specific callbacks. Multiple iterations are usually necessary for complicated applications, which may result in programmers conducting multiple code generations and tests.
Builder Xcessory meets the requirements of building large interfaces well. The product is easy to learn and comes with a thorough tutorial; this means new employees do not need a long ramp-up time when they join the team. More importantly, a company can develop its own interface styles and systems, and lock these to ensure a uniform look and feel to a product line. Builder Xcessory also allows the grouping of widgets into classes, which also helps ensure a common look and feel. Finally, Builder Xcessory does retain the user's code for callbacks by expanding the callbacks source file on multiple saves, instead of overwriting it.
One nice feature of Builder Xcessory is that it connects with other Unix tools and products. Support for RCS and SCCS source code control systems is built in, as well as support for CenterLine's CodeCenter and ObjectCenter, Pure Software's Purify, and Mercury Interactive's XRunner. These features help the user create bug-free code.
Builder Xcessory 3.1 offers an easy-to-learn interface and the most attractive, intuitive palette. It is designed to work with other development tools and includes features for large project work.
Visual Edge Software UIM/X 2.6
As the sales leader, UIM/X 2.6 sets the standards by which the other Motif GUI builders are measured. Developed by Toronto-based Visual Edge Software, this UIMS is sold through resellers (including IBM, HP, Centerline, Bluestone, and Black & White Software) who often reshape UIM/X to meet their customers' needs. Installation is easy, and the product came prelicensed, so the author didn't have to deal with license keys. By default, the UIM/X palette displays icons only for each widget, but by selecting the View pull-down menu, you can change this to include widget names, and therefore eliminate the icons.
The palette is a new addition from two years ago and is a significant bonus. It also is broken into categories, with primitive widgets, managers, menus, dialogs, shells, and gadgets. In the iconic form, the complete set of default widgets will be displayed; should the palette be expanded or the labels displayed, there is a scroll bar for perusing the widgets. Each category of widgets can also be hidden from view by clicking on the arrow button next to each category name. The palette is also expandable, either by subclassing existing Motif widgets, building compound widgets, or re-compiling UIM/X to include either third- party widgets or self-designed widgets.
The UIM/X palette offers the most thorough representation of Motif widgets. Though they aren't necessary, some widgets like the ScrollBar and Scale have two representations, based on their orientation. These can, of course, be changed in the resource editor. Unique to UIM/X, though, is the complete collection of Dialogs. These include special dialogs for information, warnings, errors, selection boxes, and many other possibilities. The inclusion of these widgets greatly eases the development effort.
A nice feature of UIM/X 2.6 is its callback editor. This means that an interface designer can include the actual C code for any callbacks within the scope of UIM/X. This makes code generation easier, as you don't have to worry about overwriting previously programmed callbacks. Using the UIM/X style editor, you can force your application developers to use a standard set of resources for your widgets, which helps with a common look and feel. These features make UIM/X a good choice for both large and small applications.
By any measure, UIM/X 2.6 is a success. In its unaltered state it offers a full list of features with an easy-to-learn interface; it's a top seller and is available from VARs with customized functions for vertical (and not so vertical) markets.
Thomson Software Products TeleUSE 3.0.1
Of the builders tested three years ago, TeleUSE (formerly owned by Telesoft) showed the largest gap between potential and implementation. TeleUSE was ambitious in scope, but suffered from disorganized documentation and a confusing interface.
Thomson Software Products owns TeleUSE User Interface Management System 3.0.1, and the transformation Thomson orchestrated is remarkable. The documentation has been expanded and reorganized and the interface is much improved.
TeleUSE is the most ambitious of the five products reviewed. Not only is TeleUSE a GUI builder, but its "D" language makes TeleUSE a dandy application prototyping tool. TeleUSE 3.0.1 incorporates many of the features required for large projects, including the ability to freeze widget configurations and resources to ensure a common look and feel across a product line.
The author installed and licensed TeleUSE without a hitch. (The company uses a home-brewed license manager.) After starting TeleUSE, the first thing a user sees is the Session Manager. This is a flow chart consisting of three layers: Presentation, Dialog, and Application. In the Presentation layer, the user draws the interface. Then it's on to the Dialog layer, where the user adds callbacks and other functions. The Application layer allows the user to test the interface.
By combining these three layers in an overall manager, TeleUSE can be used at every stage of the interface development process. However, this does lead to a more complicated product, and it can confuse the interface.
VIP is the standard interface drawing tool for TeleUSE. It looks similar to the X-Designer main window, except the widget palette is broken into several panes -- one for Motif widgets, one for Styles, and one for the application. Thomson Software Products has added color to the palette, which makes for a more attractive display. The widgets are not identified with labels, and some icons are cryptic. The only way to identify the icon is to click on it with the first mouse button, and its name and type will be displayed above the work area. This is awkward and could be improved by automatically billboarding its function as the mouse passes over an icon.
Gadgets are separated from widgets on the palette, and several Dialog templates are available immediately. An advantage of the TeleUSE approach is when a widget is selected from the palette, a brief help message appears describing the use of that widget.
TeleUSE shines in setting look-and-feel standards throughout an application (or a whole development staff). You can move a button (or even a group of widgets) to the work area, save a copy to the module box (below the palette), and edit its resources. The resources will maintain a common look, even after changing resources on the interface that have previously been set. We noted this three years ago, and believe this feature is crucial for large applications with long lives.
TeleUSE also includes fleet tools for expanding the palette with third-party and user-developed widgets by relinking the application. One weakness a product the size of TeleUSE has is that learning the full functionality is not an overnight job. It may take more time to train employees to use TeleUSE than its competitors. For users managing big applications with long life spans, however, the gains in interface consistency and programmer efficiency will be well worth the training pain and out-of-pocket costs. (At $7,500, TeleUSE is the most expensive of the five products tested.)
Non Standard Logics XFaceMaker 3.0
Since the author had not tested Non Standard Logics' XFaceMaker before, he spent more time with this UIMS than the others. Overall, XFaceMaker is not as polished as the other four GUI builders tested, but it still does its job.
The product installation went well, but the author had to play phone tag to get the license running. NSL uses its own unique license server. Unfortunately, XFaceMaker 3.0 has a bug in one of its license scripts, which required a fix by hand. Once the license was repaired, the product was ready to run.
XFaceMaker is one component of NSL's Widget Factory, which is available separately. The Widget Factory includes tools to construct widgets (XDrawMaker) and integrate them into a coherent interface design package. The Widget Factory as a whole provides a good top-to-bottom approach, but it is out of the scope of this review.
Upon launch, XFaceMaker presents a single-paned window, with separate areas for a widget tree, a palette, and a message section. The palette shows only the shells available for creation; to view other widgets you need to select the category from a menu. You can view multiple categories, such as container widgets, and primitives simultaneously, but you should resize the palette pane of the window to see all the options. (A scroll button also is available.) None of the buttons have labels, although they are usually obvious, and the graphics themselves are attractive. Fortunately, when you pull the mouse over one of the buttons, the name of the widget it represents is displayed.
For the widget tree, there is a panel of buttons that represent commands like cut and paste. These graphics are not as obvious, but again they are bill boarded by dragging the mouse. They also function as drop targets -- a nice benefit.
Overall, though, the user interface here does not match the higher standards set by its competitors. It is less intuitive and consequently a little bit more difficult to use.
An interesting feature of XFaceMaker is the built-in interpreted language for callbacks, FACE. When you are editing resources, you can add a callback written in FACE and test the callback from within XFaceMaker. There is even a debugger provided for checking the FACE scripts. This speeds testing of an interface. An excellent feature of FACE is that it converts cleanly to C code when the code is generated. Code generation was more difficult with this product than with the others. The intuitive approach generated only some of the needed modules, but we eventually figured out the procedures. We had some minor problems with the generated code's Makefile. It did not include the standard libraries for Solaris 2, requiring us to edit the Makefile by hand so we could compile our interface.
When looking at the needs of a large product, XFaceMaker stands proud. The palette can be extended by relinking the code with user-supplied modules or by using XDrawMaker to design new widgets. The widgets and widget collections can be frozen to allow a line of products to perform in a similar style.
Overall, NSL has packed a lot of good ideas into XFaceMaker 3.0, but despite the extra time the author devoted to the product, he found it difficult to use, and many of its details need attention.
Documentation & support
X-Designer's documentation consists of a single, but complete user's guide. Built into X-Designer's price is 12 months of support via e-mail, telephone, or fax; this includes all upgrades.
Builder Xcessory comes with a single user's guide. Purchasers get one hour of installation support. There is a World Wide Web page for frequently asked questions and a mailing list, but support from the company beyond the first hour costs $1,600 per year.
UIM/X includes three books as its documentation. Two points highlight the tutorial: At the start of each chapter it indicates how long each lesson should take; and a chart cross-references the product's features and the tutorial chapter in which they are taught. Visual Edge does not support UIM/X directly. Instead, you receive support from the VAR that sold the product.
TeleUSE ships with 10 documents, which are clear and complete. A support contract costs 20 percent of the purchase price and includes product updates, telephone, and e-mail support.
XFaceMaker lacks a tutorial. It comes with a three-month warranty that includes installation support and minor upgrades. Annual support costs $800 per license for XFaceMaker and includes telephone, e-mail, and fax support.
What to buy
Choosing from among these products can be difficult, since the quality of these tools ranges from good to excellent. In his personal use, the author has found X-Designer to be the best product (and not just the best interface builder) of the many he has reviewed. Still, it gets a strong challenge from UIM/X, Builder Xcessory, and TeleUSE.
X-Designer is the fastest product for drawing an interface and generating code, although fellow IDT Builder Xcessory is not far behind. The primary difference between the two is that Builder Xcessory incorporates a rubber-banding approach to sizing widgets on creation, whereas X-Designer places widgets and allows the resizing as an attribute to be changed. Neither product provides a callback editor, but both retain user code between product invocations, allowing you to change the interface without needing to recode callbacks.
If you prefer to edit your callbacks within the tool, UIM/X is the best product. Not only does it have a very extensive widget palette, but it includes a callback editor and provides its own library of function calls for easier access to Motif functions.
Positioned as a comprehensive UIMS for large projects, TeleUSE provides a complete, end-to-end solution, but at the cost of complexity. That is a necessary trade-off of a UIMS. XFaceMaker has not yet arrived in the same class as its UIMS brethren.
About the author
James C. Armstrong Jr. is a contributing editor with more than 10 years of interface development experience. He can be reached at email@example.com.
XFaceMaker is hurt in the Documentation score by the lack of a tutorial. UIM/X and TeleUSE had the most comprehensive documentation available.
The Support score is based on the available hours and cost. Imperial Software provides free support for X-Designer customers for the first year -- the only company reviewed here doing so. UIM/X does not support users directly; resellers provide the support. Advanced Systems frowns on this policy as this can, generally speaking, result in uneven service.
Performance was a difficult score to quantify. Timing of interfaces was more dependent on human speed, not the software, and comparing code was tricky. This was scored based on the time required to complete a moderately complex interface. We also adjusted the performance score based on how well the vendors implemented features. A clever but cumbersome-to-use feature will increase the Features score but depress the Performance mark. X-Designer proved to be the speediest tool, followed by Builder Xcessory and UIM/X.
The clearest and easiest-to-use Interface is Imperial Software's X-Designer, but Builder Xcessory and UIM/X are not far behind.
The open systems community will realize its long-term goal of a uniform look-and-feel desktop application set and programming environment in mid-March.
CDE 1.0 is a significant superset of the X Window System and Motif version 1.2.x, and vendors assure users that current Motif 1.2 and Open Look 3 applications should run without a hitch. Motif 1.1 applications that are staticly linked are also expected to run well under CDE.
A number of core vendors contributed a range of technology components. Novell's Unix Systems Group supplied the Motif libraries and UnixWare client applications; IBM supplied its Common User Access Model technology for file access and management; Sun Microsystems contributed its Calendar and MailTool deskset applications, its ToolTalk messaging infrastructure, and the AppBuilder GUI development tool for CDE. Hewlett-Packard provided a large portion of the starting code framework for CDE, derived from its HP VUE.
CDE, however, will not be a conglomeration of ill-fitting technologies. Most components, including Motif, have been enhanced or reworked, with an eye towards ensuring a smooth transition for developers and users.
For Motif developers, an expanded set of optional resources has been added to make the behavior of existing interface widgets more intuitive. For instance, toggle buttons in Motif can be used to make a mutually exclusive selection -- one out of many -- or to select several items from a group. Both, however, look similar. A new optional resource will change the shape of mutually exclusive radio boxes from diamonds to circles, and use a check mark to indicate non-exclusive selections.
Other optional resources change the appearance of slider widgets to distinguish between read-only and read-write, enable the middle mouse button to behave like Open Look rather than Motif, and enable an alternative set of cursors that will be more intuitive during drag-and-drop operations.
Five new widgets have been added -- SpinBox, MenuButton, ComboBox, Editor, and Term. The SpinBox enables a user to cycle through a text list or increment/decrement numbers. The MenuButton is a lighter-weight alternative to a CascadeButton because it is used outside a MenuPane. Both are similar to widgets in Open Look. The ComboBox is a combination of TextField and Selection List reminiscent of Microsoft Windows. The Term widget provides VT220 emulation, text rendering and scrolling, and margin and tab support. The new Edit widget expands on the capabilities of the Motif Text widget by adding search and replace, simple formatting, spell checking, and undo capabilities.
The workspace management capabilities of HP VUE have also been expanded in CDE; they include a powerful tag-based Help utility to which ISVs and internal developers can code, a user-configurable icon bar, and a user-configurable number of alternative workspaces. The underlying APIs also have been exposed so that other applications can be integrated into the core desktop environment. -- Barry D. Bowen
If you have problems with this magazine, contact firstname.lastname@example.org
Last updated: 1 March 1995.