Computer Science as Rhetoric and Performance
Brian Marick, Testing Foundations
When we think about how communication works, we usually think that we have knowledge in our head, we pack it into a message, we send that message over a communications channel to another person, who then unpacks it. That assumption is embedded in our very language, in sentences like "It's hard to put this idea into words." Michael Reddy called this the "conduit metaphor," and it's false.
It's better to think of communication as provoking a listener to assemble a meaning. Or, sometimes, to perform in a particular way without ever assembling a meaning. Humans aren't much like computers receiving a packet, or even computers running a program.
Discarding the conduit metaphor has all sorts of implications, but I only have room to discuss the creation of program text. That text not only has to serve a flawless but unforgiving reader (some computer) but also a flawed but creative reader (any person). Because of the latter, we ought to study rhetoric, the art of persuasion, and literary criticism. (I'm especially fond of reader-response criticism.) But because we're the first in history to produce one text for two so radically different audiences, we also have immense scope for discovery, not just relearning.
I want to go a step further. Programming is usually a group performance, one where a person's ongoing creation interweaves with everyone else's. What could we learn from a serious study of theatre, musical performance, improvisatory comedy, and group decision-making and brainstorming techniques?