- 27 March:
Funware: Michael Murtaugh – Do Not Repeat Yourself
Report by Anne Helmond
The Software and Fun (Funware) symposium held on November 27, 2010 at Baltan Laboratories is part of a larger series of activities. The symposium was organised to present papers in progress on the topic of software and fun, which will eventually be published in a book on Funware. The papers explore the theme of software and fun through theoretical approaches, while the accompanying exhibition in MU explores the topic of funware through artworks.
Michael Murtaugh – Do (Not) Repeat Yourself
Murtaugh provides an ethnographical account of the world of programming with witty examples from the Wiki pages hosted by Ward Cunningham. The Informal History Of Programming Ideas wiki page was created in 1996 and provides “an incomplete and casually written history of programming ideas.” The title of Murtaugh’s talk ‘Do (Not) Repeat Yourself’ refers to the idea that almost all programmers hate duplication because it “can lead to maintenance nightmares, poor factoring, and logical contradictions.” Thus, it is strongly advised to avoid duplication and repetition which is echoed in the DRY (Don’t Repeat Yourself) principle which states that “Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.” Duplication can occur in architecture, requirements, code, or documentation. Duplication or repetition is considered a bad practice that produces bad code. Such code can inflict Code Smell: “a hint that something might be wrong.”
The DRY software design principle is one of the coding standards in a book titled Extreme Programming on rethinking programming practices for managers, customers and programmers. DRY is revived in the idea that “the standard should call for the least amount of work possible, consistent with the Once and Only Once rule (no duplicate code).” ((Beck, Kent. Extreme Programming Explained: Embrace Change. US ed. Addison-Wesley Professional, 1999.)) Extreme programming clearly invokes the image of extreme sports and repetition can also be experienced as a tiring physical exercise because coding is physically exhausting work.
Repetition is the root of all software evil for many programmers. It is no wonder then that the DRY principle is adhered by many popular frameworks such as Django: “Django focuses on automating as much as possible and adhering to the DRY principle.” The principle is also reflected in Django’s tagline: “Django makes it easier to build better Web apps more quickly and with less code.”
There is an undervalue of the repetition in a framework which contains a community across its practicioners (in contrary to software that is experienced individually). Repetition may provide a way of learning as described by Richard Sennett in his book The Craftsman where he describes the process of learning through repetition:
Skill development depends on how repetition is organised. This is why in music, as in sports, the length of a practice session must be carefully judged: the number of times one repeats a piece can be no more than an individual’s attention span at a given stage. As skill expands, the capacity to sustain repetition increases. In music this is the so-called Isaac Stern rule, the great violinist declaring that the better your technique, the longer you can rehearse without becoming bored. There are ‘Eureka moments that turn the lock in a practice that has jammed, but they are embedded in routine. (Sennett 2008: 38) ((Sennett, Richard. The Craftsman. 1st ed. Yale University Press, 2008.))
This may be seen in recursion/abstraction, a miraculous transformation of code through one’s repetitive work on it. The miraculous transformation through repetitive work may also provide the joy and fun in programming: “This is repetition for its own sake: like a swimmer’s strokes, sheer movement repeated becomes a pleasure in itself.” (Sennet 2008:175)
The art of repetition can be found in William S Burroughs Essay The art of ‘Do Easy’ which was made into a short film by Gus van Sant. The essay describes the art and strength of repetition and internalizing repetition into your brain as it were a computer.
According to Murtaugh, William Burroughs provides a useful alternative to DRY with a system where the mundane and the repetitive become key to unlocking a unknown knowledge in your subconscious. With this, Murtaugh concludes with the final part of William S Burroughs essay The art of ‘Do Easy:’
Take the inverse skill of the IT back into your own hands. These skills belong to you. Make them yours. You know where the wastebasket is. You can land objects in that wastebasket over your shoulder. You know how to touch and move and pick up things. Regaining these physical skills is of course simply a prelude to regaining other skills and knowledge that you have and cannot make available for your use. You know your entire past history just what year month and hour everything happened. If you have heard a language for any length of time you know that language. You have a computer in your brain. DE will show you how to use it. But that is another chapter.
During the Q&A Wendy Chun notes that the mantra of “Don’t repeat yourself” only works by repeating.