It’s easy to make offhand comments on twitter. When, at last month’s Freeplay Festival I attended the ‘Games and Words’ panel with poet Katie Keys and journalist Katie Williams, they spoke, amongst other things, about code and poetry. In response, I absently tweeted:
It’s a romantic idea, but code and poetry are enormously different
This tweet was subsequently picked up by Samuel Baird, one of the pair behind the lovely Toybox, who responded with this eloquent blog post.
“Often,” writes Baird, “the most elegant programming doesn’t read as a direct line by line tackling of the problem. Individual lines, constructs and thoughts seem un-obvious, oblique, transcendent and abstract. Yet in the whole the program is expressive and succinct, its meaning powerful and clear. Poetry.”
I think this is a very attractive lens to look at code, and Baird has made his point well here. It is very tempting to look at creating things with words as a kind of poetry, and I don’t deny that there can be something useful—or even emotional—to be gained by doing so.
But code is not poetry.
To argue this, I want to refer briefly to a classic journal article by theorist N. Katherine Hayles, “Print Is Flat, Code Is Deep”. In it, Hayles advocates for media specific analysis, pointing out that too often, media theorists and literary scholars disregard the actual medium in which text is inscribed. Words are the same across all disciplines, this line of thought goes: whether they are written into paper, or a codex, or a terminal is not the important point.
This is obviously flawed. As Hayles argues, any discussion about meaning must take into account a text’s physical specificity. A piece of long-form journalism in a newpaper lift-out is different from something written for Apple’s mid-1990s Hypercard software. Language is incredibly sensitive to context and medium.
But the key difference here is that code is perhaps the only language in existence that does exactly what it says it will. It is a language of action. Coders may go through trial and error, coders may put together rough fixes and hacked solutions, but it doesn’t change the fact that code, as a whole, is an attempt to provide a language that acts without interpretation. There are no grey areas in code. An ‘if’ construct in code has a specific and self-evident meaning that will be enforced by the processes of the code when run.
Poetry, on the other hand, is constructed for interpretation. It is a form of communication founded in the pleasure of making meaning, of unravelling, playing with, and sometimes intentionally muddying form. A single couplet may have a hundred different meanings. It is at once transparent and opaque, hard in its unyielding openness.
This is not to say that code can not have poetic attributes (especially in form). Nor is it to say that code cannot make poetic things, or be used for poetic ends.
But we have to take into account the functional and material differences between poetry and code. Code does exactly what it says it will. Poetry opens itself for others to say what it will. Code acts, while poetry waits for others to act upon it.
Code is not poetry.
EDIT: I’d just like to also direct readers towards this very thoughtful response from Claire Hosking, which is very much worth reading.
Crikey is committed to hosting lively discussions. Help us keep the conversation useful, interesting and welcoming. We aim to publish comments quickly in the interest of promoting robust conversation, but we’re a small team and we deploy filters to protect against legal risk. Occasionally your comment may be held up while we review, but we’re working as fast as we can to keep the conversation rolling.
The Crikey comment section is members-only content. Please subscribe to leave a comment.
The Crikey comment section is members-only content. Please login to leave a comment.