The philosophy of software: code and mediation in the digital age

Bibliography

Berry, D. M. (2015). The philosophy of software: Code and mediation in the digital age. Palgrave Macmillan.

Abstract

“[This] 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”—Publisher’s description

Notes

In The Philosophy of Software, the author explores the materiality of software and code. He does so by positioning programming and writing code as labor that can be done more or less eloquent. This is enabling the author to apply other theories, as if programming would be understood as craft or creative endeavor.

Marx had to undertake difficult and laborious analysis of machinery, for example, before he was able to see clearly how it functioned and related to industrial capitalism (Page 20)

Note: Indirectly comparing himself to Marx is a power move.

Another important framing is how code is a meta-medium, a point that becomes crucial later in the book, when proposing and discussing the “Computational Image”.

Code is not a medium that contains the other mediums, rather it is a medium that radically reshapes and transforms them into a new unitary form. This super-medium acts as both a mediating and structurating frame that we must understand through its instantiation under particular physical constraints. (Page 21)

The author devises a relatively precise vocabulary (from the perspective of philosophy) to describe the various aggregate states and aspects of software and code which helps Conceptualizing Programming. I believe his vocabulary is a good start, but it doesn’t feel insufficient to describe all aspects. especially when going into everyday practice.

To help us to think about code more analytically, in this section I would like to introduce tentative Weberian ‘ideal-types’ to help us think about the different forms or modalities of code, namely: (i) digital data structure, (ii) digital stream, (iii) delegated code, (iv) prescriptive code, (v) commentary code, (vi) code object and (vii) critical code. (Page 65)

To illustrate his philosophical approach, as well as the acts of reading and writing code, Berry discusses a few examples:

  • The leaked Microsoft source code
  • Climate research code controversy
  • The Underhanded C Contest
  • The International Obfuscated C Code Contest

Although interesting reads, I had the feeling the discussion meanders a bit too far away from the core topics and wasn’t rooted enough in everyday programming practices. To frame this discussion on reading and writing code, Berry uses Latour’s concept of “tests of strength”. If I got this right, Berry ties the materiality of software (a thing mostly intangible) to this kind of resistance through these trials. I’d need to reread the introduction to this approach at one point, but it generally makes sense to me to tie the materiality of software to this concept.

The most critical takeaway is that he addresses a problem that I had a hunch about, but had not yet been able to articulate clearly. It’s about missing research that bridges the gap between what’s on the screen and what the machine does. I suspected that there is not enough research on this arc, mainly because the people doing the research lack know-how and knowledge in the respective disciplines and can’t build bridges.

Either they’re in the Platform studies, focusing on the hardware and platforms, they’re in the critical code studies focusing on code, or they’re coming from the side of the screen doing media analysis and visual studies. Berry describes this focus on the screen as a Screen Essentialism. He does, of course, address this divide philosophically, and he describes two different ontologies and builds on Heidegger and Sellar. Furthermore, he also goes briefly into Harman and his Object-Oriented Ontology, which I am more comfortable with. For Berry, there is on the one side being ready-to-hand (Zuhandensein), the abstract world of the tool that he sees in Sellar’s scientific image, that mostly hides from our direct experience. On the other side, we have Sellar’s manifest image, which would probably be Dasein with Heidegger, or the human experience and phenomenology.

Berry then claims that between these two images, or ontologies, there is a third one. The Computational Image, which does not physically mediate between man and machine, but nevertheless, through its vicariousness, can create a connection and allow phenomenology and experience.

This attempt to reconcile the two images in computer science is linked to a notion of massive computational power in order to reassemble the shards of experience that technical devices capture into a continuous and seamless human experience. In effect, computation aims to perform this task by fooling our senses, assembling the present-at-hand objects together at a speed that exceeds our ability to perceive the disjunctures. (Page 130)

Vicarious indicates that there are interesting implications relating to the mediated relationship that we have with this ‘hidden’ computational world that is revealed only through transformation and translation of its internal functioning into a form that is projected into our phenomenal experience. (Page 138)

He lost me partially when discussing Heidegger and Sellar, which is ok. I believe I will reread the chapter when the time comes.

In sum, computer scientists attempt to transform the present-at-hand into the ready-to-hand through the application of computation. (Page 130)

👀

To discuss the phenomenology of software, Berry brings up the aspect of participation and interactivity:

The notion that equipment creates a state of conspicuousness for dasein gives the computational device its specificity and marks it out as radically different from other media, which are more comfortably ready-to-hand. (Page 135)

In contrast a non-digital, analogue television is simple to use and presents a unified experience that withdraws so that the viewer can sit back and enjoy the show. When the television becomes digital, however, it is loaded with functionality, software, interfaces, menus and multiple options, such as the infamous red option button. The television is now a complex piece of machinery that needs constant Care, careful management, and quite simply is capable of both crashing or corrupting whilst viewing but also interrupting the viewing experience (Page 136)

While other media retreat to the background and can be forgotten, in terms of experiencing their materiality, computers, respectively software mediating between our phenomenology and the computing happening in the background, are always partially present, demanding our attention and participation. Without user input, the computer will not continue doing its thing.

These two last aspects, the Computational Image and the not-quite-so-ready-at-handedness, sparked an interesting hypothesis regarding my Dissertation subject. Berry talked a lot about code and programming practices, but little about programmers, despite starting out with Marx and labor. I am mainly interested in programming practices seen from the perspective of programming as a human activity and how this activity is conceptualized.

When thinking through programming practices through the Computational Image, with programmers in mind, they become people who internalized this mediating concept, and can translate their own human intentions into a machinic not-quite-ready-at-handedness. Willumsen calls this first and second order designing [@willumsenSourceCodeFormal2016]. They are, through their practice, creating digital artifacts that keep the user using, and the computer computing, by enabling a software-based feedback loop. In this Assemblage, the image on screen plays an important role, as it is one of the main phenomenological channels (next to physical interaction and sound). The video game programmer then has to create a Visuality that tells the game (narration), as well as enable this feedback loop through user-interface-like aspects (interfacing the mechanics).

This makes the Video Game Image a very specific and unique type of image, that differs substantial from the image of a film (which I already had a hunch about, but little vocabulary to express it). Haven’t read much Kittler, Flusser, Parrika or Gaboury yet, I wonder if this aspect will pop up there.