Reviews
REVIEW: Brad Meyers, Senior Research Computer Scientist at Carnegie Mellon University, was guest speaker at our December meeting. Continuing on from his Ph.D. work at UofT on User Interface Management Systems, Meyers is principal investigator for the GARNET user interface development environment and its descendent, AMULET. Although tired with a sore throat, he kept us entertained with his contorted acronyms for sub-parts of the GARNET system. Meyers first motivated the need for research into helping UI designers and programmers. He reported on a study which found that 50% of code and time are devoted to the user interface. In other studies, it was found that the work could be sped up by 2-5 times by using conventional frameworks, such as MacApp and Microsoft Foundation Classes (MFC), which are now very popular. He emphasized that the approach in GARNET, which provides interactive tools, could speed up development by a factor of 10-50 times. Before describing details, Meyers gave an overview of the stages through which he saw his research progressing . Started in 1988, GARNET, based on X11 and LISP, has been through 6 releases. Its main goal was to explore building new kinds of widgets for the "insides" of application windows. He saw that this approach addressed mainly researchers who wished to quickly prototype and test new interface ideas. Since it ran slowly and was not based on a popular production language, many developers did not use it. His new project, AMULET, is based on C++ and is targeted to students of software engineering. The transition from GARNET/LISP to AMULET/C++ has resulted in an immediate 3 times speed up. Its goal is to "make the simple things simple, the complex things possible". Meyers hopes that this approach will attract developers to use the system in their products. AMULET is scheduled for release in early 1995. GARNET was designed to ease the development and implementation of highly-interactive, graphical, direct manipulation interfaces. Meyers distinguishes it from traditional toolkits by contrasting that toolkits are based on widgets (the "outsides" of windows) whereas GARNET is concerned about the "insides" of those windows. The system allows the specification of behaviours which may be constrained in some fashion. High-level tools allow these to be demonstrated without the need to write code. Meyers described the details of GARNET by explaining each layer in the system. The layers were: Windowing system Graphics and input layer Object system Constraint system Interactors (input/output) Widgets Interactive user interface tools In each layer, he described the justifications and some of the problems encountered in each. In general the approach was to provide support for a user interface idea and one implementation of an idea. For example, there are command objects in GARNET which store the user's interactions. This could be used to provide do/undo/redo actions for not only data entry but for dialogs. Whereas commercial systems provide do/undo/redo for things like typing, backing up to a dialog is not possible. With these command objects, this would be possible to implement and test. User interface tools with names such as Jade, Gilt, Lapidary, C32, Marquise, Garnette and Silk were shown on a video tape. Many tools had examples of programming by example (PBE) and programming by demonstration, other research areas of Meyers. In summary, Meyers gave a comprehensive overview of the issues of implementing and using UIMS's. He kept the audience entertained with his adeptness for reciting those acronyms for the various projects.
Meeting review by Gifford Louie