By Mariana Lage
The Humanities at Stanford
Leslie Wu, a Stanford graduate student in computer science, presents her code poem, ‘Say 23,’ which won first place in the Stanford Code Poetry Slam. Image: Mariana Lage
Leslie Wu, a doctoral student in computer science at Stanford, took an appropriately high-tech approach to presenting her poem “Say 23” at the first Stanford Code Poetry Slam.
Wu wore Google Glass as she typed 16 lines of computer code that were projected onto a screen while she simultaneously recited the code aloud. She then stopped speaking and ran the script, which prompted the computer program to read a stream of words from Psalm 23 out loud three times, each one in a different pre-recorded-computer voice.
Wu, whose multimedia presentation earned her first place, was one of eight finalists to present at the Code Poetry Slam. Organized by Melissa Kagen, a graduate student in German studies, and Kurt James Werner, a graduate student in computer-based music theory and acoustics, the event was designed to explore the creative aspects of computer programming.
With presentations that ranged from poems written in a computer language format to those that incorporated digital media, the slam demonstrated the entrants’ broad interpretation of the definition of “code poetry.”
Kagen and Werner developed the code poetry slam as a means of investigating the poetic potentials of computer-programming languages.
“Code poetry has been around a while, at least in programming circles, but the conjunction of oral presentation and performance sounded really interesting to us,” said Werner. Added Kagen, “What we are interested is in the poetic aspect of code used as language to program a computer.”
Ian Holmes, a Stanford undergraduate studying computer science and materials and science engineering, explored Java language in a Haiku format. Image: Mariana Lage
Sponsored by the Division of Literatures, Cultures, and Languages, the slam drew online submissions from Stanford and beyond.
High school students and professors, graduate students and undergraduates from engineering, computer science, music, language and literature incorporated programming concepts into poem-like forms. Some of the works were written entirely in executable code, such as Ruby and C++ languages, while others were presented in multimedia formats. The works of all eight finalists can be viewed on the Code Poetry Slam website.
With so much interest in the genre, Werner and Kagen hope to make the slam a quarterly event. Submissions for the second slam are open now through Feb. 12, 2014, with the date of the competition to be announced later.
Giving voice to the code
Kagen, Werner and Wu agree that code poetry requires some knowledge of programming from the spectators.
“I feel it’s like trying to read a poem in a language with which you are not comfortable. You get the basics, but to really get into the intricacies you really need to know that language,” said Kagen, who studies the traversal of musical space in Wagner and Schoenberg.
Wu noted that when she was typing the code most people didn’t know what she was doing. “They were probably confused and curious. But when I executed the poem, the program interpreted the code and they could hear words,” she said, adding that her presentation “gave voice to the code.”
“The code itself had its own synthesized voice, and its own poetics of computer code and singsong spoken word,” Wu said.
One of the contenders showed a poem that was “misread” by the computer.
“There was a bug in his poem, but more interestingly, there was the notion of a correct interpretation which is somewhat unique to computer code. Compared to human language, code generally has few interpretations or, in most cases, just one,” Wu said.
Coding as a creative act
So what exactly is code poetry? According to Kagen, “Code poetry can mean a lot of different things depending on whom you ask.
“It can be a piece of text that can be read as code and run as program, but also read as poetry. It can mean a human language poetry that has mathematical elements and codes in it, or even code that aims for elegant expression within severe constraints, like a haiku or a sonnet, or code that generates automatic poetry. Poems that are readable to humans and readable to computers perform a kind of cyborg double coding.”
Werner noted that “Wu’s poem incorporated a lot of different concepts, languages and tools. It had Ruby language, Japanese and English, was short, compact and elegant. It did a lot for a little code.” Werner served as one of the four judges along with Kagen; Caroline Egan, a doctoral student in comparative literature; and Mayank Sanganeria, a master’s student at the Center for Computer Research in Music and Acoustics (CCRMA).
Kagen and Werner got some expert advice on judging from Michael Widner, the academic technology specialist for the Division of Literatures, Cultures and Languages.
Widner, who reviewed all of the submissions, noted that the slam allowed scholars and the public to “probe the connections between the act of writing poetry and the act of writing code, which as anyone who has done both can tell you are oddly similar enterprises.”
A scholar who specializes in the study of both medieval and machine languages, Widner said that “when we realize that coding is a creative act, we not only value that part of the coder’s labor, but we also realize that the technologies in which we swim have assumptions and ideologies behind them that, perhaps, we should challenge.”
Mariana Lage is a visiting doctoral student in the Department of Comparative Literature.
When I was younger, I scoffed at the idea of programming language being a real language. “It is an efficient language, but lacks the capability for beauty,” I thought back then. That’s why we can achieve poetry with living languages and not programming.
Turns out people have been trying to prove that wrong. The folks at Stanford created a code poetry slam that attempts to bridge the gap between a language I (and many others) long-derided for being incapable of beauty, with poetry, the very art of turning language beautiful. It’s interesting to see how one takes a language with “stripped-out” syntax, one void of auxiliaries and other linguistic features, and tries to work with its sparseness to turn it into poetry.
This begs the question of “What is beauty? What makes word poetry beautiful?”
We find beauty in poetry in a number of ways: Some find the words used per se beautiful — word-image evocation. Some find the conjured images from metaphors beautiful — visual/thematic image evocation. Some even find the structures used to arrange the words beautiful — structural inspiration. The bottom-line is, there is some sort of inspiration or reaction drawn from the reader by the poem, and this reaction is essentially what we call the “beauty” we find in poetry.
When I shared this article on Facebook, a friend, who does programming, says that code can be beautiful too. He says, to him, an efficient code is a beautiful code; if an algorithm can figure out the solution to a problem in 10 lines where it takes him 50, the code is beautiful to him. While there exist similarities between the two, in that he is inspired by the efficiency of the “beautiful code,” that beauty is not the same sense of beauty that exists in natural language poetry, and the people at Stanford are trying to bridge that difference.
Where my friend equates the idea of efficiency to be beauty, “code poetry” tries to go beyond mere efficiency. Efficient “beautiful code” is just efficient code, and I think those at Stanford are trying go beyond just “beautiful code,” and trying for the same sense of “beautiful” that people find in imprecise written word with the precise structure of coding. The creativity from code poetry isn’t in the creative licence common to written poetry or in the ingenuity of finding a way to make the code more efficient, but possibly using a code that lies in-between.
In that, a code poet might end up with a slightly unwieldy, bulky code that programmers might think to be “ugly,” but appreciated beyond its efficiency, and applying the image-evocation processes of natural language poetry that traditional poetry beauty can be seen in code. At times, the code need not even solve anything, and in programming, that is just redundant code. But redundancy is very important in natural language, and by breaking away from the strictures of what makes good code, and eschewing snobbish ideas of natural language poetry superiority, can we begin to see the start of a novel way of understanding how beauty and structure can co-exist hand in hand.
Of course, as highlighted in the article, there’s the problem of access: those who do not understand programming cannot understand code poetry. Would this be a short-coming? Who would then be the arbiters of what makes good code poetry? Would we need masters of both the computing and natural language to dictate which poem highlights the sensibilities of both sides? I think not, actually. Take the Java haiku in the article above. I don’t understand Java, but I think there’s an element of beauty in that. I think anyone, as long as they’re willing to abandon what traditionally defines good code or good poetry, and listen to what inspires, what is beautiful to the mind, can appreciate good code poetry.