The design of software toolkits embodies a fundamental tension. On the one hand, it aims to reduce programmer effort by providing prefabricated, reusable software modules encapsulating common application behaviours. On the other, it seeks to support a range of applications, which necessitates avoiding an overly-restrictive commitment to particular styles of application behaviour. We explore this tension in the domain of collaborative applications, which we believe are particularly subject to problems arising from this tension. Based on an analysis of the basic issues of flexibility in toolkit design, we explore opportunities for the design of toolkits which avoid application style commitments, with illustrations from two toolkits which we have developed. A comparative analysis of these two approaches provides insight into the underlying questions and suggests new design opportunities for toolkits that provide a framework for application enhancement and extension. Key words: collaborati...
Paul Dourish, W. Keith Edwards