Contents
Guide
Pagebreaks of the print version
Software Studies
Matthew Fuller, Lev Manovich, and Noah Wardrip-Fruin, editors
Expressive Processing: Digital Fictions, Computer Games, and Software Studies, Noah Wardrip-Fruin, 2009
Code/Space: Software and Everyday Life, Rob Kitchin and Martin Dodge, 2011
Programmed Visions: Software and Memory, Wendy Hui Kyong Chun, 2011
Speaking Code: Coding as Aesthetic and Political Expression, Geoff Cox and Alex McClean, 2012
10 PRINT CHR$(205.5 + RND(1));: GOTO 10, Nick Montfort, Patsy Baudoin, John Bell, Ian Bogost, Jeremy Douglass, Mark Marino, Michael Mateas, Casey Reas, Mark Sample, and Noah Vawter, 2012
The Imaginary App, Paul D. Miller and Svitlana Matviyenko, 2014
The Stack: On Software and Sovereignty, Benjamin H. Bratton, 2015
Coding Literacy: How Computer Programming Is Changing Writing, Annette Vee, 2017
The Software Arts, Warren Sack, 2019
The Software Arts
Warren Sack
The MIT Press
Cambridge, Massachusetts
London, England
2019 Warren Sack
All rights reserved. No part of this book may be reproduced in any form by any electronic or mechanical means (including photocopying, recording, or information storage and retrieval) without permission in writing from the publisher.
This book was set in ITC Stone Serif Std Medium by Westchester Publishing Services. Printed and bound in the United States of America.
Library of Congress Cataloging-in-Publication Data
Names: Sack, Warren, author.
Title: The software arts / Warren Sack.
Description: Cambridge, MA : The MIT Press, [2019] | Series: Software studies | Includes bibliographical references and index.
Identifiers: LCCN 2018032131 | ISBN 9780262039703 (hardcover : alk. paper)
Subjects: LCSH: Electronic data processingPopular works. | Computer softwarePopular works.
Classification: LCC QA76 .S2164 2019 | DDC 005.3dc23
LC record available at https://lccn.loc.gov/2018032131
d_r0
For Jennifer
Contents
List of Figures
Plate I of the Encyclopdie entry for Pinmaker.
Plate II of the Encyclopdie entry for Pinmaker.
Plate III of the Encyclopdie entry for Pinmaker.
The general plan of Mr. Babbages Great Calculating Engine,1840. Reproduced with permission from Science Museum Archive/Science and Society
Picture Library: SSPL Image 10303657.
This flow chart was modeled on figure 7.2 from Herman Goldstine and John von Neumann, Planning and Coding for an Electronic Instrument (1947).
Illustration from Gregor Reischs textbook Margarita Philosophica, 1508.
Rules of addition for binary numbers.
The initial state of the addition of two binary numbers.
The addition of two binary numbers in process.
The final state of the addition of two binary numbers.
Rules of subtraction for binary numbers.
Letter from Charles Sanders Peirce to Allan Marquand, 1886. Image reproduced with permission from the Princeton University Library, Allan Marquand Papers, Manuscripts Division, Department of Rare Books and Special Collections.
All possible inputs and outputs for AND, OR, and NOT gates.
A half-adder with inputs 1 and 1, and output 10.
A looped inverter (oscillator or clock).
Boolean circuit for an SR flip-flop.
A single state of a one-dimensional cellular automaton.
An example rule.
Execution of rule set 254.
The eight rules of rule set 254.
The THEN portions, the consequents, of rule set 254.
Execution traces of rule set 0 through rule set 127.
Execution traces of rule set 128 through rule set 255.
Rule set 22 with one black square as input.
Rule set 22 with a random series of black and white squares as input.
The execution traces with one input of (a) rule set 110, (b) rule set 124, (c) rule set 137, and (d) rule set 193.
Rule set 110.
Rule set 110 with a random series of black and white squares as input.
The background pattern for rule set 110.
Gliders A1, A2, A3, and A4 move from left to right.
Glider C moves vertically. Gliders E and B1 move from right to left.
Gliders A2 and B1 collide.
A glider gun for rule set 110.
A derivation for the sentence The man hit the ball.
List of Tables
Truth table for AND.
Truth table for OR.
Truth table for NOT.
Truth table for binary addition.
Table for a set-reset (SR) flip-flop (or latch).
Series Foreword
Software is deeply woven into contemporary lifeeconomically, culturally, creatively, politicallyin manners both obvious and nearly invisible. Yet while much is written about how software is used, and the activities that it supports and shapes, thinking about software itself has remained largely technical for much of its history. Increasingly, however, artists, scientists, engineers, hackers, designers, and scholars in the humanities and social sciences are finding that for the questions they face, and the things they need to build, an expanded understanding of software is necessary. For such understanding they can call upon a strand of texts in the history of computing and new media, they can take part in the rich implicit culture of software, and they also can take part in the development of an emerging, fundamentally transdisciplinary computational literacy. These provide the foundation for Software Studies.
Software Studies uses and develops cultural, theoretical, and practice-oriented approaches to make critical, historical, and experimental accounts of (and interventions via) the objects and processes of software. The field engages and contributes to the research of computer scientists, the work of software designers and engineers, and the creations of software artists. It tracks how software is substantially integrated into the processes of contemporary culture and society, reformulating processes, ideas, institutions, and cultural objects around their closeness to algorithmic and formal description and action. Software Studies proposes histories of computational cultures and works with the intellectual resources of computing to develop reflexive thinking about its entanglements and possibilities. It does this both in the scholarly modes of the humanities and social sciences and in the software creation/research modes of computer science, the arts, and design.
The Software Studies book series, published by the MIT Press, aims to publish the best new work in a critical and experimental field that is at once culturally and technically literate, reflecting the reality of todays software culture.
Foreword: Software as a Mode of ThinkingAn Introduction
John Rajchman
The modern digital computer is the invention of two distinguished mathematicians, Alan Turing and John von Neumann, working in the heyday of a rich debate about numbers and logic and a grand search for the laws of thought, which they then tried to introduceperhaps it would be better to say translateinto the workings of a new kind of machine, the computer.
The story of this invention has often been told, that of Bletchy Park and The Institute for Advanced Study. Born of the urgencies of war, often elaborated in secrecy in government facilities against a formidable foe, and mobilizing its own science-tech sector, the invention would assume new forms after the war. It would become part of an ever-expanding military industrial complex, with us now as much as ever, with our giant global Internet companies, surveillance, hacktivism, cybersecurity, smart cities, and infrastructures. In the process, platforms themselves would pass from mainframe to PC to smartphone, increasing in speed, efficiency, and reach, and leading to the operations of our great number-crunching algorithms in finance, politics, and social media. The invention of the computer by these two great mathematicians, carried on in military secrecy, in short, has led to an enormous complex in government and economics alike, touching on many aspects of the ways we think and live.