The Philosophy of Software is a critical introduction to the subject of code and software, and develops an understanding of its social and philosophical implications in the digital age. The book has been written specifically for people interested in the subject from a non-technical background and provides a lively and interesting analysis of these new media forms. Software is a tangle, a knot, which ties together the physical and the ephemeral, the material and the ethereal, into a complete system that can be controlled and directed. However, software exceeds our ability to place limits on its entanglement, for it has in the past decade entered the everyday home through electronic augmentation that has replaced the mechanical world of the twentieth century. From washing machines to central heating systems, children's toys to television and video; the old electro-magnetic and servo-mechanical world is being revolutionised by the silent logic of virtual devices. It is time, therefore, to examine our virtual situation.
There were some thoughtful observations on how the use of software differs fundamentally from other tools, but David Berry's understanding of software is pretty rooted in the late-90's. For example, he valorizes close-to-the-metal C programming and calls object-oriented programming a "fundamentally Taylorist" mode of production. That dismissal is a bummer, because I think modern programmers do some of their most interesting philosophical work when domain modeling (whether using OO or functional techniques): I think any exercise in domain modeling amounts to constructing the ontology of the business problem being solved.
I didn't fully digest the later chapters on this reading (lots of references to Heidegger!), but I think he did a decent job of capturing the experience of using software as an end user.
It was a "pleasure" reading Berry's book. I think it's an aspiring book as it really tries to turn attention to the meaning that code and software in general assume as part of society. I did, however, disagree with a lot of his remarks, e.g., he calls Object-Oriented programming a "Taylorist technique" (pp. 40), which is utterly ridiculous. Sometimes it feels like the varied information that he presents is somewhat arduous to digest. At times I found myself bewildered by the multiple definitions of software/code - prescriptive? (pp. 32), running (pp. 32+94-) and crystallised code? (pp. 39). Despite some difficulties with explaining, Berry fantastically delivers an analysis of new media forms. What the book is in need of is a theoretical discussion of how software really interacts with different kinds of societies...