ABSTRACT

Many researchers have noted the difficulty of building user interface software. It has long been the case that the user interface portion of a typical implementation often consumes more than 50% of the total effort [Myers 92b]. In response, the last decade has seen a great deal of research in systems designed to ease this burden. User interface management systems (UIMS), interface builders, and toolkits have all emerged as viable tools to support this task. As a result, much more sophisticated interfaces can now be contemplated as a part of many applications and in fact graphical interfaces are now a requirement for many application areas. However, while the tools available for constructing user interface software have changed dramatically in the last decade, the underlying support provided by programming languages has not kept pace with these changes. In fact, many developers involved with the creation of new user interface tools have begun to feel that the languages that they are using to implement the tools do not support their tasks well and are becoming a burden. This

106 Scott Hudson

chapter considers how this situation might be improved and how programming languages might better support the development of tools for user interface software.