Code: Writing for Humans and Machines

There’s a level of irony that even for our most abstract symbol systems, on the level of human interaction, language persists. In other words, even though a computer might abstract a line of Python code a level further into a series of 1’s and 0’s, the programming language has been designed to accommodate for the human proclivity to deal with information through computable symbols, which is to say, with words. Of course, there are a number of differences between natural language and computer code, but the extreme formalism of code seems the most immediately obvious.

Of course, any computer code needs to be designed in such a way that the human “writer” can input instructions to the machine without ambiguity. Furthermore, the code must be designed in such a way that accommodates for the material limits of computer design. In other words, the code must account for the key insight of information theory (that the message does not matter) and must account for the material process of reproducing a message at a different point, which, in our computing devices as they exist today, means being designed according to the limits of boolean logic.

Code exists in this liminal space: it must be meaningful to the coder and meaningless to the computer (in the information theory sense of meaninglessness). In this way, it must account for the semiotic possibilities of human cognitive faculties, as well as the material limits of the computer. Because of this bi-directionality, computer code differs from perhaps all other writing practices in the course of history in that, on some level, it needs to contain both symbols that say and symbols that do.

It has become the practice of some avant-garde artists, particularly in the earlier days of personal computing, to exploit this very affordance of programmable media by constructing highly formalized poems which can both be read by a human reader as well as run as an operational program. One such attempt at this bi-directional code/poetry is shown in an excerpt here by literary artist/theorist, John Cayley.

Even if the human side of this poem is awkward and constrained by the limits required for maintaining its status as working code, it proves an interesting point about the design of programmed languages: that they always have to account for the semiotic processes of both the man and the machine.

Works cited:

Cayley, John (2002). “The Code is Not the Text (Unless it is the Text)”. Electronic Book Review.

Wing, Jeanette (2006) “Computational Thinking.” Communications of the ACM 49, no. 3: 33–35.