Ben Olmstead’s “Malbolge” programming language either challenges or confirms the claims Kittler makes in “There Is No Software,” but I can’t decide which. I’ll lean toward “challenge” since that would probably result in a more interesting discussion. Kittler’s main claim that the internal workings of the computer are obscure and that the Church-Turing thesis means that even reality should be regarded as a digital computer restates the reality and appearance dualism in digital terms. Human beings are just the epiphenomena of an underlying computational reality.
Only having access to the appearance, rather than the reality, the human user cannot claim authorship or control over the activity of the computer (hence we have no control over our writing). While the confusing languages Mateas and Montfort discuss seem to confirm Kittler’s obscurity, one has to remember that a human programmer still wrote the programs and that the authors are able to explain them to the reader. Indeed, they are only obscure because the programmers excavated unused or elliptical ways of writing otherwise common statements. How the source code appears to the programmer makes little difference to the machine code the microprocessor will receive. The obfuscation of the source code and the obscurity of the machine code simply make it difficult—but not impossible—for the human programmer to predict the hardware’s output. Comparing the source code with the output is usually the only way of debugging the program, or making sure it “runs properly” on the computer hardware. The obfuscated code, then, emphasizes that programming languages have conventions and idioms for making the source code comprehensible to all programmers versed in that language, just as a natural language’s idiom makes it comprehensible to other speakers of that language.
Malbolge, however, shows that programming languages not only have conventions to make them comprehensible to the programmer but to the computer. As Mateas and Montfort state, Olmstead’s language is minimalist (making the commands hard to remember and difficult to distinguish from variables or data), uses a trinary machine model, does not execute commands in order, and constantly mutates in memory. The minimalism’s conflation of command and data makes the source code more like the undifferentiated sequence of digits flowing into the microprocessor’s control unit. In this respect, the obscurity of the machine code bubbles to the “surface” of the source code. However, the trinary machine model (when most digital computers use a binary model), the nonlinear execution of instructions, and the code’s constant operation on itself as data in memory mean the Malbolge program will often not run at all. By turning those traits that make the code obscure to the user (no distinction between command and data, etc.) back on the computer, the program and consequentially the hardware become nonoperational.
If the only successful Malbolge program requires the cooperation of a human programmer and weak artificial intelligence, how can the computer’s functions be “real” in contrast to the “appearance” presented to the human programmer and user? Rather than showing that we humans have no control over our writing (and by extension our thoughts and ideas), the difficulty of the Malbolge programming means that humans have to acknowledge that the translation of inputs and outputs between the user interface and the machine code introduce new (non-human) readers and writers into the creative process. Readers and writers that use different conventions for communicating over different media. This conclusion could be read as supporting Kittler’s position that no so-called human subject exists and that therefore only the logic of technology matters. I would instead read it as Kittler putting too much emphasis on technology and computation. Where then do we put the emphasis? Do any of the new media code art pieces we’ve looked at this week help answer that question? Whatever our answers to those questions, I think that we would have to look at the dynamic exchange between human and digital computer.