Jump to ratings and reviews
Rate this book

The Software Arts

Rate this book

An alternative history of software that places the liberal arts at the very center of software's evolution.

In The Software Arts, Warren Sack offers an alternative history of computing that places the arts at the very center of software's evolution. Tracing the origins of software to eighteenth-century French encyclopedists' step-by-step descriptions of how things were made in the workshops of artists and artisans, Sack shows that programming languages are the offspring of an effort to describe the mechanical arts in the language of the liberal arts.

Sack offers a reading of the texts of computing—code, algorithms, and technical papers—that emphasizes continuity between prose and programs. He translates concepts and categories from the liberal and mechanical arts—including logic, rhetoric, grammar, learning, algorithm, language, and simulation—into terms of computer science and then considers their further translation into popular culture, where they circulate as forms of digital life. He considers, among other topics, the “arithmetization” of knowledge that presaged digitization; today's multitude of logics; the history of demonstration, from deduction to newer forms of persuasion; and the post-Chomsky absence of meaning in grammar. With The Software Arts, Sack invites artists and humanists to see how their ideas are at the root of software and invites computer scientists to envision themselves as artists and humanists.

400 pages, Kindle Edition

Published March 15, 2019

7 people are currently reading
126 people want to read

About the author

Warren Sack

3 books1 follower

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
5 (55%)
4 stars
2 (22%)
3 stars
2 (22%)
2 stars
0 (0%)
1 star
0 (0%)
Displaying 1 - 3 of 3 reviews
Profile Image for Doctor Moss.
588 reviews36 followers
April 17, 2021
Warren Sack has a unique eye for software and computing. Actually he brings a lot of eyes to it — computer science, philosophy, linguistics, art . . .

All of those perspectives enable him to take a fresh look at the history of computing, knifing in a critical analysis of how we have understood what computing is.

This is a very impressive book, and it took someone as unique as Sack to write it. You’ll find detailed knowledge at a technical level of all of those fields I just mentioned, and you’ll even find software code he’s written to illustrate and develop his points. I'd say he's done his homework, but that would be an understatement -- he's done enough homework for the whole class. I'm a little in awe.

Sack traces the roots of computing languages to the encyclopedists of eighteenth century France — Diderot, d’Alembert, and others who undertook the task, first proposed by Francis Bacon, of recording the procedures through which artisans produced their work. The encyclopedists, as Sack says, “paired the mechanical arts and the liberal arts.”

I can’t help but liken the task of the encyclopedists to that of interaction and software designers who observe and interview practitioners of such activities as project management, musical composition, accounting, or medical diagnosis as steps toward designing software to support or automate those activities.

And in fact those observations and interviews lead, through multiple steps, to a translation of what Sack calls “work language” (the language that the practitioners of the activity use to carry out and describe their work) into what he calls “machine language” (the language used by implementers to instruct supporting or automating machines, i.e., code, although Sack, I think, means to include higher level coding languages than machine code itself).

Sack draws direct lines from the work of the encyclopedists to what we recognize as the very beginnings of computing, in the work of Charles Babbage and Ada Lovelace.

For Sack, software isn’t so much a thing, or even a technology per se, as it is a “mode of thinking.” That mode of thinking is procedural and arithmetical, and it begins its development with the encyclopedists.

The standard story of the history of computing features mathematical logic at its core, tracing the maturation of logic as calculation through Boole, Frege, Cantor, and on up through Turing. To oversimplify, on this story, modern computers implement Boolean algebra, a mathematical treatment of the operations of formal logic.

Sack, in keeping with his focus on lossiness in translation, argues that, no, computers (or the logical machines designed by Turing) are not implementations of Boolean logic, at least not plainly and simply so. Unlike formal logic, the circuits that implement logical operations in computing machines are procedural. They require timing mechanisms (additional circuits) to perform operations when the values of the operation are ready, and they require additional circuits to define the states of those values before the operations are performed. Sack illustrates the differences with comparisons of the kind of truth tables used by Turing to define logical operations with Wittgenstein’s original truth tables (Turing, he reminds us, attended Wittgenstein’s lectures on the foundations of logic at Cambridge).

The point of difference may seem obvious, and I can imagine an “of course” reaction by some readers. But Sack is making a bigger point.

In fact, throughout the meat of the book, he is making two separable, but I think potentially complementary claims. One is that the ‘logic” which computers can be said to implement or not is a moving target — the idea that there is a “logic” behind all thought and reasoning, variously gotten at by systems of notation and inference, is a myth. The second is that any implementation (or “translation” in his terms) of logic into a machine (e.g., a Turing machine) is, like all translation, lossy. It doesn’t arrive at its target unaltered.

The complementarity between the claims would be that, at least in some instances, the implementation is itself the source of the historical mutations of logic — that the implementation actually redefines its source by “translating” it. The translation takes the place of its source.

Once it is established that logic is a production and not a kind of Platonic ideal, then such a replacement becomes plausible.

I’m not going to try to reproduce the spine of Sack’s arguments. They are complex arguments, and he tends, even by the design of the book, to follow a thread, develop it, and then jump to another thread. The book’s chapters distinguish these threads — translation, language, algorithm, logic, rhetoric, and grammar.

My one major criticism is that I don’t think he ever returns, even in his conclusion, to tying all of these threads together. At the beginning of the book, he does make a very large, over-arching claim, to the effect that the roots of computing (computing or programming languages) are in the liberal arts rather than in mathematics per se, as the standard story would have it. Hence the importance of tracing the development of software as a “mode of thinking” from the encyclopedists.

But he doesn’t tie it all up neatly in his concluding chapter. It’s kind of up to the reader. So here’s my crack at it.

Why does any of this matter? I think we have to go back again to the first parts of Sack’s argument, to the importance of the lossiness of translation. Really, and he says this as well, it isn’t so much a matter of lossiness per se as change — loss, addition, and change. And it happens every step of the way, from the encyclopedists’ translations of artisans’ work processes, to Boolean algebra, to Turing machines, and, finally, in Sack’s last discussions, to Chomsky’s arithmetized grammar and to the model of learning implemented in machine learning technologies.

Sack doesn’t say as much, but the humanities are what seem to have gotten lost in the translations. In fact, another theme to trace through the history that Sack depicts is automation, or even better, the autonomy of the computing machine.

He emphasizes that much of the development of computing was intended to relieve human labor of tedious computation and calculation — tasks that, in some sense, human beings shouldn’t have to spend their time on, so that they can devote themselves instead to more meaningful and valuable tasks. But, as it turns out, the meaningful and valuable tasks are what get lost. Chomskyan grammar has no need for meaning, and in fact takes its stand in an isolation of grammar from meaning. And machine learning (granting the quasi-exception of “supervised machine learning”) makes learning an autonomous activity of the machine.

I’ll come back to what I said in my first sentence — Sack’s story of computing is different. And the effect is to make you think a little bit differently about how we think about computing. And how we think about thinking as computing continues to develop.
Displaying 1 - 3 of 3 reviews

Can't find what you're looking for?

Get help and learn more about the design.