Sense and Structure: Towards a Textual Analysis of Software
Software is, among other things, a text. It differs, however, from most texts we're familiar with. It's constantly changing, and is collaboratively authored. It's only loosely ordered, if at all. Our reading of software is generally instrumental; we read it in order to write it. And, perhaps most importantly, software has explicit boundaries; our interfaces are perforations, allowing it to be safely torn apart and rearranged.
Unfortunately, the relationship between software and other texts has been, as yet, barely explored. Most analyses of software, even by those with backgrounds in literature or linguistics, treat it as an opaque compiled artifact. This talk, drawing on ideas from analytic philosophy, semiotics, and literary studies, will try to make the textual qualities of software more obvious, both to those who write it and those who analyze its effects.
- On Sense and Reference by Gottlob Frege
- Naming and Necessity by Saul Kripke
- Philosophical Investigations by Ludwig Wittgenstein
- What is an Author? by Michel Foucault
- The Open Work by Umberto Eco
- Evolvability by Marc Kirschner and John Gerhart
- The Conduit Metaphor by Michael Reddy
- Metaphors We Live By by George Lakoff and Mark Johnson
- The Programmer as Navigator by Charles Bachman
- Plato’s Pharmacy by Jacques Derrida
Zach works at Microsoft Research, where he’s helping to design and build a framework for conversational interfaces. He is the author of Elements of Clojure, and is currently working on a new book, tentatively titled On Software Design.
- Elements of Clojure: https://elementsofclojure.com
- Designing a Framework for Conversational Interfaces: https://www.microsoft.com/en-us/research/group/msai/articles/designing-a-framework-for-conversational-interfaces/