Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Garnet: Comprehensive Support for Graphical, Highly Interactive User Interfaces
Myers B., Giuse D., Dannenberg R., Kosbie D., Pervin E., Mickish A., Zanden B., Marchal P. Computer23 (11):71-85,1990.Type:Article
Date Reviewed: Jun 1 1991

The Garnet user interface toolkit allows users to create new widgets and to compose them to create application-specific user interfaces. Garnet emphasizes making it easy for users to create new styles of user interface objects such as buttons and menus. Its drawing capability allows the look of widgets to be tailored to specific applications. It has a builder that allows users with little or no programming experience to create new widgets.

Garnet seems useful mainly for making the job of prototyping user interfaces easier for programmers. While Garnet’s creators show admirable concern for end users who are not sophisticated computer users, the kinds of things that users can do with Garnet, such as creating a new style of menu, do not seem especially appropriate for end users and domain experts, who are more likely to want to configure ready-made semantic objects appropriate to their domains of expertise than to compose scroll bars and text-string widgets into new objects. Garnet offers no help for end users in terms of creating the rest of the application beyond the user interface; anything not explicitly supported in Garnet must be programmed in Lisp. It includes no support for communicating with the application--that is the application’s problem--which further limits what end users can do with Garnet. The authors mention that Garnet’s constraint system can be used to connect graphical objects to application-specific objects, but again, that requires writing Lisp forms. In any case, constraints are not a general-purpose mechanism for providing a channel between a user interface and an application.

Garnet is built on top of a rather unorthodox object system that flies in the face of much of what has been learned about object-oriented programming and knowledge representation in the last ten years. Abstraction and data integrity through typing (whether slots on frames or members on objects) are important foundations of system building. Garnet does not distinguish between classes and instances; the belief is that any instance should be able to serve as a “prototype” for other instances, but the power of abstraction is thus lost in a thicket of individual instances. Garnet does not distinguish between data and method slots--in fact, all slots are essentially of one type--and no type checking can be done. If a program sets the value of a slot that does not exist on an object, the slot is created automatically. While this provides some flexibility, the probability of error is extremely high.

The Garnet system makes an important contribution in taking the need for application-specific user interfaces and end-user participation in application development seriously, rather than in its specific functionality and implementation.

Reviewer:  Bonnie Nardi Review #: CR114976
Bookmark and Share
 
Garnet (H.5.2 ... )
 
 
Methodology And Techniques (I.3.6 )
 
 
Object-Oriented Programming (D.1.5 )
 
Would you recommend this review?
yes
no

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy