The poetry of executable code

An executable code poem by GreyLau
An executable code poem by GreyLau

In recent years, growing interest has emerged in the relationship between poetry and computer code. A higher brow version of ASCII art, code poems draw on programming languages like Java or C++ for their formal inspiration. Since 2013, Stanford University has been running code poetry slams to explore the poetic potential of code. Participants in these competitions have explored the broadest definitions of code poetry. For example, some code poets insist on the importance of executability in a code poem - the code itself could be compiled and run by a computer - while others draw inspiration from visual attributes of code. Code poetry and other aesthetic dimensions of code also have been subject to literary and cultural analysis, notably through the work of Mark Marino, director of the The Humanities and Critical Code Studies Lab, which runs the Critical Code Studies Working Group (CCSWG). The working group has examined a number of important dimensions of code studies, including exploratory, feminist, postcolonial approaches to code. 

The poem above, an executable code poem by duo GreyLau, took the first place prize in the Source Code Poetry 2014 competition. According to the competition's motto: "Real professionals know their stuff./Real professionals talk, think, breathe, and sleep about their stuff./Real professionals need no excuse. They seek perfection./Real programmers can code poetry." Poems for the competition are required to meet the following attributes: they must be written in C++, C#, or Java; they must compile, or be able to be translated from the programming language into machine code; they must rhyme; and they must "be cool." The poem was lauded for its rhyme, meaning, and readability (of the poem by a human, of the code by a machine).

Implied in the design of the Source Code Poetry competition is the idea that the writing of code is an artistic enterprise. Indeed, "real" programmers are the ones whose code itself is poetry in motion. The emphasis on executable code reveals aesthetic possibilities of programming languages that blend form and function. Such poems are fascinating because they are variably accessible and inaccessible to readers, a function of their readers' knowledge of programming languages and facility with poetry. They also provide means of expression in multiple ways: the visual aesthetics of the code on the page, an aural dimension if read aloud, and the output rendered by the code when compiled. Their possibilities for interpretation, then, are fragmentary, requiring negotiation on these many fronts to appreciate and understand.