A Small Matter of Programming by Bonnie Nardi

End users can and should write computer programs. Programming, when this book was written (1993), was the domain of the small group of technical elite who have the time and inclination to devote to unlocking its mysteries. Today this is still true. Yet writing computer programs is something that would be immensely useful to nearly everyone, particularly in business. Domain experts in a given realm could theoretically write a much better program to automate common tasks in their domain than a professional programmer, because of the domain expert's unique knowledge. But for the most part, this remains out of reach.

There are a few counterexamples. The two big ones the book focuses on are spreadsheets and CAD programs. Both have even novice users writing what could be called computer code almost immediately. What makes these tools accessible compared to traditional programming languages?

First, their domain-specificness. A spreadsheet provides high-level primitives like SUM(), which wraps up iteration and accumulation into a single operation. Writing the equivalent of SUM(C1:C9) in any general-purpose language would almost certainly be several lines of code, require creating a temporary variable, etc.

Next, the visual layout. Visual programming persay (trying to do everything by connecting lines and boxes, no code) has never worked, much as people have tried. But showing the structure of the program visually, while still allowing the user to write code, seems to be highly effective.

To my mind, the most interesting argument of the book is refuting the common belief that formal languages (which include mathematics and computer programming languages) are not natural for most people to use. Only "geeks" want to read or write in formal languages; everyone else prefers natural language, i.e. everyday speech and writing. But this argument is demolished by examining the formal languages used for knitting and on baseball scorecards. The first example is the most illustrative: if you look at any knitting instructions, you'll see that they have a formal language, which looks on its surface almost exactly like a programming language. It has iterations and subroutines, the code executes from top to bottom, and the shorthand used is remarkably similar to the way that programmers name variables.

What's more, knitters often change the instructions to customize their own quilts. So here you've got old ladies around the globe reading and modifying simple programs that they pass around to each other on paper. If this demographic can learn to read and write a formal language (given the motivation to do so), then it's hard to imagine that anyone couldn't.

Rating: 3 of 5
Back to book list
Other books by Bonnie Nardi: