A Small Matter of Programming asks why it has been so difficult for end users to command programming power and explores the problems of end user-driven application development. Drawing on empirical research on existing end user systems, A Small Matter of Programming analyzes cognitive, social, and technical issues of end user programming. In particular, it examines the importance of task-specific programming languages, visual application frameworks, and collaborative work practices for end user computing, with the goal of helping designers and programmers better satisfy the needs of end users who want the capability to create, customize, and extend their applications software.