World Poetry Day

World Poetry Day—Code Is Poetry

In honor of World Poetry Day, enjoy an excerpt from 10 PRINT CHR$(205.5+RND(1)); : GOTO 10, which poses the question “where does the poetry of the poem lie?” and shows how “code is poetry” through a close reading of a one-line BASIC program.

Adapting a program from one hardware system to another is “porting,” a term derived from the Classical Latin portaˉre—to carry or bear, not unlike the carrying across (trans + laˉtus) of translation. A port is borne from one platform to another, and the bearer is the programmer, who must gather up the details of the original and find places for them amid the particulars of the destination, attempting to identify and preserve the program’s essential properties. The translator faces these same sorts of problems when encountering a text, and such problems are particularly acute when the text is a poem. Where does the poetry of the poem lie? In its rhythm? Its rhyme? Its diction? Its constraints? Its meanings? Which of these must be carried over from one language to another in order to produce the most faithful translation?

In Nineteen Ways of Looking at Wang Wei, a study of the act and art of translation, Eliot Weinberger (1987) reads nineteen versions of a fourline, 1,200-year-old poem by the Chinese master Wang Wei, attentive to the way translators have reinterpreted the poem over the centuries, even as they attempted to be faithful to the original. With a single word, a translator may create a perspective unseen in Wei’s original, radically shift the mood of the poem, or transform it into complete tripe. Many times these changes come about as the translator tries to improve the original in some way. Yet translation, Weinberger writes, “is dependent on the dissolution of the translator’s ego: an absolute humility toward the text” (17).

The programmer who ports faces similar challenges. What must be preserved when a program is carried across to a new platform: The program’s interface? Its usability? Its gameplay? Its aesthetic design? The underlying algorithm? The effects of the constraints of the original? And should the programmer try to improve the original? The ethos of adaptation will vary from project to project and programmer to programmer; what a programmer chooses to prioritize will help to determine the qualities of the final port and its relationship to the original program.

In this remark, a number of ports—translations—are presented. These are ports from Commodore 64 BASIC to other platforms and languages, developed specifically for this book. Other ports can be found elsewhere in this book. By striving to design accurate adaptations, and to capture qualities of the original code as well as the output, nuances of the original that might otherwise be overlooked can be revealed. Just as the variations of 10 PRINT in the previous remark illustrate the consequences of choosing one particular set of parameters among the many that were possible on the Commodore 64, ports of 10 PRINT can highlight the constraints and affordances of individual platforms. The ports provide a tightly focused comparison of the Commodore 64 to other systems, emphasizing the unique suitability of the Commodore 64 for this particular program.