Languages for Developing User Interfaces

Full Reference

Brad A. Myers, ed. Languages for Developing User Interfaces. Boston: Jones and Bartlett, 1992. 480 pages. ISBN 0-86720-450-8.

Ordering Information

To order the book, Languages for Developing User Interfaces, you can send e-mail to or phone to (617-235-2210) with Mastercard or Visa number and EXPIRATION DATE, or by regular mail (prepaid either with card number or by check) to:

A K Peters, Ltd., 289 Linden Street, Wellesley, MA 02181.

The cost is $72.00.

A K Peters' page for this book.

Or you can order it on-line. For example: listing for this book

Preface of the Book

Computing is evolving from batch-based applications to interactive, graphical applications. However, most user interface software is still written using languages designed for writing text-based or even batch applications, such as Fortran, Pascal, C, or Ada. Researchers are investigating new approaches that may allow the next generation of computer programming languages to better support the creation of user interface software.

In addition, user interface designers are increasingly realizing that it is important to provide a high degree of end-user customization. In many cases, it would be ideal to allow end users to create their own applications. In a sense, this is what spreadsheets allow, since they can be "programmed" by their users. The success of spreadsheets shows that end users can learn to program, and that environments that support end-user programming can be successful.

At the SIGCHI conference in New Orleans in May, 1991, twenty leaders of the field got together in a workshop to discuss the future of languages for programming user interface software, and for end-user programming. These twenty were chosen from over 60 people who applied. The goal of the workshop was to discuss what types of computer languages would be appropriate in the future, and begin collaborations on creating these languages. This book contains the results of those discussions.

First, Chapter 1 presents an overview of the topic, and a summary of previous work. The first day of the workshop was spent with talks from the attendees. Chapters 2 through 18 contain the written papers that accompanied their talks. During the second day of the workshop, we broke into three groups to discuss various issues in depth. Chapters 19 through 21 report on the group results. Naturally, we discovered more issues than we resolved, and Chapter 22 contains a summary of the issues that were raised. We hope this will be seen as a challenge to future language designers.

In the user interface community, this book should be of interest to creators of toolkits, UIMSs and other user interface tools, as well as people creating end-user applications that want to provide end-user customization. In the programming language community, language designers would find this book useful, since future programmers will need to write modern user interfaces with their languages.

Table of Contents



Workshop Participants


1. Introduction, Brad A. Myers

Part 1: Programming Languages for End Users

2. The User Interface Is The Language, Michael Dertouzos

3. A Component Architecture for Personal Computer Software, David Canfield Smith and Joshua Susser

4. Design Support Environments for End Users, Mark Guzdial, Peri Weingrad, Robert Boyle, and Elpot Soloway

5. The Use-Mention Perspective on Programming for the Interface, Randall B. Smith, David Ungar, and Bay-Wei Chang

6. Why the User Interface Is Not the Programming Language - and How It Can Be, James R. Cordy

Part 2: Programming Languages for Programmers

General Goals

7. How Programming Languages Might Better Support User Interface Tools, Scott Hudson

8. Requirements for User Interface Programming Languages, Gurminder Singh

9. Languages for the Construction of Multi-User Multi-Media Synchronous (MUMMS) Applications, Ralph D. Hill

Models for Objects and Interaction

10. Ideas from Garnet for Future User Interface Programming Languages, Brad A. Myers


11. Constraint Imperative Programming Languages for Building Interactive Systems, Bjorn N. Freeman-Benson and Alan Borning

12. An Active-Value-Spreadsheet Model for Interactive Languages, Brad Vander Zanden

13. Properties of User Interface Systems and the Siri Programming Language, Bruce Horn

Concurrency and Time

14. A Foundation for User Interface Construction, Emden R. Gansner and John H. Reppy

15. User Interface Programming with Cooperative Processes, Toshiyuki Masui

16. Constructing User Interfaces with Functions and Temporal Constraints, T.C. Nicholas Graham

Representations for User Actions

17. Different Languages for Different Development Activities: Behavioral Representation Techniques for User Interface Design, H. Rex Hartson, Jeffrey L. Brandenburg, and Deborah Hix


18. Hints on the Design of User Interface Language Features - Lessons from the Design of Turing, James R. Cordy

Part 3: Workshop Reports

19. Report of the "End-User Programming" Working Group, Brad A. Myers, David Canfield Smith, and Bruce Horn

20. Report of the "User/Programmer Distinction" Working Group, Mark Guzdial, John Reppy, and Randall Smith

21. Report of the "Linguistic Support" Working Group, James R. Cordy, Ralph D. Hill, Gurminder Singh, and Brad Vander Zanden

22. Future Research Issues in Languages for Developing User Interfaces, T.C. Nicholas Graham


Index, last updated 29 May, 1997.