Outside The Black Box
"Programs should be written for people to read, and only incidentally for machines to execute"
Under a proprietary model, the executable is everything. Forget about the aesthetics of code, there is no code. In this world of pure functionality, getting the job done is all that counts. Creative approaches to computing are barely visible as closed source developers are quarantined inside the black box of the runnable. And code poetry, such as that practised by Perl mongers, is out of the question in a closed source world. Little wonder that the free software community is such an attractive space for artists who prefer to think outside the box.
Coding software is quite obviously a creative activity, though as always it's obviously a question of degree. Coding yet another online shopping app in a mundane language such as PHP, or one more database frontend may not exactly get the creative juices flowing, but hacking new languages for artists or indeed developing an artistic operating system definitely fits the bill.
At the same time, examining source code is often compared to looking under the bonnet or delving into the guts of the beast, expressions which certainly imply getting one's hands dirty. Coding is relegated to the status of a craft or skill, again at the service of the mighty functional executable. Yet, given high level languages such as Scheme or Lisp and the complex abstractions which these highly artistic languages afford the contemporary coder, programming is very much an art form.
Of course, there's a long history of discourse amongst hackers concerning the beauty of code. Almost 40 years ago, Donald Knuth, creator of the exemplary TeX text processing package, wrote on the aesthetics of code. And core Unix utility TeX is itself considered as both elegant code and beautiful executable. Paul Graham, with his excellent Hackers And Painters essay, also neatly explains the parallels between the two arts, offering clear advice for the would-be artist-hacker in the emerging medium of coding. However, it can be argued that both Knuth, Graham and other key hackers such as Stallman, express a somewhat old-fashioned, classicist view of art and beauty, which has many parallels with mathematical ideas of elegance and aesthetics; a formalist viewpoint which has little time for wider cultural considerations. As we'll see, the field of what could be termed conceptual code, is all about examining code within the larger context of history, language and culture, with the work of cutting edge artists digging deep into the rich seam exposed by the split nature of code as both executable and text. Conceptual code is code which doesn't fit, falling neither comfortably within the remit of audiovisual software nor in some cases rendering any human accessible form.
Radio On
It's possible to argue coherently that free software can itself be considered a work of art, when considered as open culture and as self-referencing writing or intertextuality. In 1999 the Linux kernel was itself awarded the Golden Nica in the Net category of Ars Electronica, the world's most prestigious digital arts festival. And in February 2002, the 4,141,432 lines of code which then made up the Linux kernel commenced broadcast online and on air as computerised spoken word by Free Radio Linux, an initiative set up by the online art collaboration r a d i o q u a l i a. Free Radio Linux obviously runs using free software such as Ogg Vorbis, and its creators argue with great wit that the project continues the tradition of FM code stations in the eighties who distributed source via radio, allowing early hackers with home computers, such as Sinclair ZX81s or Commodore 64s, to demodulate the analogue signal through a modem and run the code. Free Radio Linux obviously provides a similar service for contemporary hackers, equipped with pen and paper for code transcription.
Berlin-based theorist, Micz Flor, argues that Free Radio Linux digs deep into questions of code and language, technology, art, and culture as well as opening up debates on freedom of speech and copyright protection. Free Radio Linux exposes the wider cultural context surrounding free software, and as Larry Wall, creator of Perl, argues, a language is not just a set of rules or semantics, it is rather the complete culture which surrounds the language. This context includes all the people involved in the language, how people learn the language and help each other with the language and interact with each other. And few would argue that such a rich cultural context can only exist under a free software development model. This is one message that Free Radio Linux clearly broadcasts. And the political dimensions, which boil down to questions of code and language, of Free Radio Linux are even plainer, with clear parallels to the publication of Pretty Good Privacy (PGP) source code by MIT in 1995 which unhinged legal prohibitions placed on its distribution. And it's also worth mentioning the DeCSS debacle, with T-shirts bearing the utilities source code being examined in court. Such a distribution model was neatly engaged by the Bologna-based artists group 0100101110101101.ORG in their biennale.py work, a PYTH0N-based fake computer virus, which was exhibited on a thousand T-shirts during the opening of the Venice Biennale in 2001.
Read or run
The read or run continuum from text to executable offers many opportunities for interesting investigation, both by programmers and artists. Indeed, as Paul Graham intelligently asserts, programmers can learn much from artists and one could even argue for an equivalent exchange in the other direction. Artists and programmers really aren't such different beasts. Interesting parallels can be made from code to a film or theatre script, or system of notation, which can instantly be performed by the compiler or interpreter, and artists such as Adrian Ward or ap have intriguingly investigated this realm.
At one extreme end of this continuum we can find code which even fails to run and is not written for any known architecture or language. This pseudo-code which has many parallels with obfuscated code (particularly in the Perl language), code which does not willingly give up its intentions, or with toy languages such as Brainfuck, an eight-instruction Turing-complete complexity, can readily be found on the artistic _archive_ mailing list. And one of the finest practitioners of this somewhat obscure art is mez, an Australian net artist with her self-invented mezangelle language, a strange hybrid of English and pseudo-code which throws protocols and broken software into the pot of conceptual code. However, even mez's un-executable approach still sits comfortably with the work of computer science gurus, Abelson and Sussman. Their seminal work, Structure and Interpretation of Computer Programs, opens with the following directive, "Programs should be written for people to read, and only incidentally for machines to execute."
At the same time, what could be termed social software occupies the more executable end of the read and run spectrum, with an emphasis on the social functionality of empowerment and free distribution, and an examination of user interaction at the sharp end; how users are defined by contemporary algorithms and interfaces. Social software questions the black box of productivity-led interface design with more playful approaches to interaction. Of course, the history of computer science is peppered with lively pioneer figures such as Alan Kay who, way before the birth of the personal computer, envisaged Dynabooks as enabling creative thought or as "fantasy amplifiers". However, contemporary software art, particularly the discourse of Matthew Fuller, rounds this out with more political concerns. Fuller intelligently defines both speculative and social software in terms of reflexivity and sociability respectively. These are both key aspects of a free software approach, and Fuller makes this explicit, whilst at the same time bemoaning projects such as KOffice which appear too locked into a Microsoft mentality. Within key essays such as Behind the Blip: Software as Culture, Fuller defines a new genre, software criticism, which would rank alongside art or literary critiques. To further elaborate his arguments Fuller quotes from Richard Feynman's Lectures On Computation in which 13 levels to any operating system are described, from electronic circuitry to the shell. Fuller argues that since the time of writing in 1984, a huge number of extra levels or abstractions can be added including the various protocols of interface, licensing, network and marketplace.
Instruction set
Of course software art or conceptual software is by no means necessarily allied to a free software approach. Yet the guru of the conceptual or software art scene, Florian Cramer, lecturer in the Department of Comparative Literature at Freie Universitat Berlin, remains firmly rooted in the free software movement. He provides a rare example of a theorist attracted to open source who actually practises what he preaches. Whether hacking Perl poetry, contributing patches to the community, or lecturing on such subjects as free software as collaborative text, Cramer knows full well that free software and software as culture go hand in hand. And rather than hiding behind both Powerbook and Powerpoint, Cramer exposes a neat, but rather battered IBM Z50 running NetBSD and larswm window manager at conferences and debates worldwide.

Cramer provides perhaps the most coherent exposition of this scene and its concerns, intelligently dissecting both the formalist approach as evidenced by Alex McLean and Adrian Ward, and more socially aware projects such as those of Fuller and Harwood (see section below titled Giving It Back) as well as tracing the origins of the movement within the literary, instruction-based texts of the Dadaists in the 1920s and the conceptual art works, including the oeuvre of John Cage or Sol LeWitt, of the 1960s and early 1970s. Indeed, Cramer, in a paper delivered at the seminal Read_Me festival in 2002, picks up on the fact that one of the first shows of conceptual art in New York was entitled Software. This show, curated by art critic and theorist Jack Burnham, is of key importance within the history of software art, featuring installations of conceptual art alongside intriguing computer software such as the first prototype of Ted Nelson's hypertext system Xanadu; forerunner of the Internet and free software movement which this technology spawned and enabled.
Concept art was defined in the early 60s as an artform which has ideas as its material, just as sound is the medium for music. Cramer argues that software art, with instruction set as material shares both a collapse of the duality of notation and execution, and a language-based medium, with concept art.
Neatly echoing these concerns with the duality of code, artists Alexei Shulgin and Olga Goriunova curate and organise both the yearly Read_Me software art festival and the runme.org Web archive which offers a huge repository of openly submitted art code and software concepts. Work under both projects exhibits a huge variety of approaches to artistic code, though in the last Read_Me iteration, held in Aarhus this year, the emphasis was very much on live virtuosic coding, with the work of the newly formed Toplap, or (Temporary|Transnational|Terrestrial|Transdimensional) Organisation for the
(Promotion|Proliferation|Permanence|Purity) of Live (Algorithm|Audio|Art|Artistic) Programming), group very much to the fore. Toplap is all about making runnable code visible to the audience, again mirroring the core concerns of a free software approach. During the Dorkbot City Camp, which neatly dovetailed with Read_Me, Toplap threw live Perl, SuperCollider, and Scheme coders and a foot operated VJ interface into the mix. Subtitled "people doing strange things with software", the Dorkbot camp rounded up Dorkbot groupings from the USA and Europe. Dorkbot events are held in cities such as London or Ghent, and, in keeping with a spirit of openness, allow members of the public to present diverse hard and software projects which fall outside the norms imposed by commercial demands. Dorkbots present a rich mix of artists, hackers, hacktivists and hecklers.
Soft machine
And if conceptual code is primarily a question of language, coding is also a question of languages. Computer languages are the domain of flame wars, but also perhaps the natural habitat for a discourse on conceptual code. There's a long history of artistic and philosophical approaches to computer languages, aside from humdrum concerns of business and productivity, which with intense evolutions, offshoots and sharing of ideas makes for exciting reading under the spotlight of conceptual code. Again Alan Kay, with Squeak and Smalltalk, is a figure to be reckoned with. And the work of Abelson and Sussman can easily be considered as an artistic work enacted within the self-questioning or reflexive world of computing. Descriptions of meta-circular compilers certainly fall under the remit of speculative code. In Sussman's first lecture which opens the now classic Structure And Interpretation of Computer Programs series, the notion of a "computer science" is unravelled, with Sussman demonstrating that what usually falls under this banner has very little to do with either computers or with science. In Hackers And Painters, Graham pushes this argument further, arguing that "Computer science is a grab bag of tenuously related areas thrown together by an accident of history, like Yugoslavia."

Yet what unites that which can now, thanks to free software, be considered a community of coders and users are the linguistic, cultural, artistic aspects of programming as exposed by conceptual code. And if computer languages present a workshop for conceptual code, then the language of choice must surely be Lisp, which is commonly considered as a language laboratory for fermenting ideas. Indeed, Sussman and Graham share this point of view, with Graham expounding a new philosophy of programming, under which rather than writing an application in Lisp, a new language is created which can sit on the same level as the app, enabling extension and customisation. And in their heyday, Sussman and Guy Steele would create new languages and dialects of Scheme (itself a dialect of Lisp) by the dozen. Particularly in the era of the Lisp Machines, Lisp spawned a number of wonderful environments under which IDE and interface merge, fulfilling an important social function in perhaps undermining the user, programmer divide. A well configured GNU Emacs running with SLIME or an inferior Lisp process presents a contemporary artistic IDE which can be used as performance tool or language lab.
This notion of linguistic creation and experimentation is of great appeal to artists, and is possible only within a semi-interpreted, open code model. Artists such as ap really push out the language boat, questioning contemporary models of coding and established architectures. In these instances, and under ap projects such as ap02 or gdapp, a virtual machine approach is used, adding one more layer to Feynman's rapidly multiplying levels of abstraction within computation. Virtual machines can be used to examine the artistically rich area of enquiry pinpointed by Feynman, how low-level switches or logic gates which can be implemented in electronic or other physical forms enable supremely high level abstractions to be built on top of complex programming languages such as Lisp.
Code.pl
Although Lisp in one form or another does seem to be gaining much ground amongst artist-hackers, Perl offers a rich artistic culture and history, as evidenced by creator Larry Wall's well written thesis concerning software culture. Within both the code poetry and obfuscated code scenes, Perl is a hot favourite and Perl's easy text handling makes for decent integration with artistic prose. Perl is favoured by artists such as Alex McLean for its semi-interpretative aspects which play well with the shell and make for decent live coding opportunities. McLean's excellent work with Perl includes forkbomb.pl which more than emphasises the intimate connection of text and technology in a code poem which crashes machines. His feedback.pl is a masterpiece both of live coding technology and reflexive software, incorporating text editor, dynamic code runner and self-editing capabilities.
However, it's Graham Harwood who has really pushed forward the textual qualities of Perl, reviving the very English, social poetry of William Blake. Alongside fellow Mongrel (see section below titled Giving It Back), Matthew Fuller, Harwood is obsessed with the social uses and misuses of algorithms and code, for example how software and interfaces in financial institutions impact on the lives of the poor. Harwood's london.pl, rooted firmly in Perl poetry yet dealing with more serious issues, is a masterful expression of these concerns and of the dual nature of code. As its title implies, London.pl retraces and retranscribes Blake's bleak 19th century poem London into code and comments. And while, unlike the work of mez, london.pl presents syntactically correct Perl code, it would not run, relying as it does on the imaginary code module PublicAddressSystem.pm, which would be used for the manipulation of the Vortex4 129 Db outside warning system. If properly executed london.pl would calculate and broadcast the air displacement needed to represent the public scream of dispossessed children in london from 1792, the date of the original poem, until today. Harwood's work lives and breathes within the social duality of code, presenting both a re-interpretation of Blake's poem and code for interpretation.
Giving it back
Community forms an important, not to say essential, part both of a free software development model or culture, and the practice of software art. However, nowhere is this made more explicit than in the work of the Mongrel team (Graham Harwood and Matthew Fuller in collaboration with others), using common free software tools to facilitate both on and offline communities amongst those often denied access to such technologies. Mongrel's remit is often as hard to pin down as their collaborators, though the emphasis is very much on providing tools, models and teaching experiences which would often be overlooked in applications which economically and conceptually dominate contemporary software. It's a fluid investigation of software and practice which falls between the gaps, exploring the essential issue of interface within community. And it isn't just about software as an enabling force, Mongrel also work a great deal within a wider cultural context. Mongrel Mervin initiated and now runs the Mongrel Container project, literally a large freight container which has been shipped to Jamaica to function as mobile media lab and computer workshop for the disenfranchised. It's an initiative which has parallels to other such projects which aim to bridge the so-called digital divide. However, here the emphasis is perhaps more on disruptive technologies in the context of cultural production. Or, as Mervin phrases it, "We want to hot-wire Jamaica into the machine that will make the Upsetters of the future."
There can be little doubt that Mongrel's latest Nine(9) software project will fulfill an important role within this cultural upsetting. Nine(9) plugs together a raft of free software tools and packages to provide an online network, archive and community. Nine(9) means nine groups which provide each nine archives in turn providing nine maps which contain nine images each with nine links to any of the 2125764 files on the server. The numbers are arbitrary but provide a neat summary of the play between freedom and a Unix-style permissions model which is at work in Nine(9). Nine(9) has structure, but its rabid linking potential unravels this rigidity. The structure is provided by overarching groups, and by the organisation of visual material online as a kind of knowledge map. Links are made to sounds, images, text, video clips and also to other parts of the same map or other people's knowledge maps. It sounds simple, and the components which bring this online network into play are standard packages such as ImageMagick and MySQL, but like all social networks Nine(9) exhibits good snowballing potential, thanks in part to underlying linking code which forges connections between maps and even emails mapmakers as links are made. This throws the social connection back into the mix, forming relations outside the strict Nine(9) structure.
Nine(9) makes visible the sociability of software which is central to a free software model; how software changes and develops as a result of ongoing cultural interaction between users and programmers. As Harwood so eloquently puts it, "The various forms of its freeness or openness are being developed as part of the various rhythms of the life of this software; its production and critical engagement with the process of permission."
Martin Howse
See also in this series:
Hacking for Art's Sake
The Art of Noise
Coding for Sound and Visuals
References
Free radio Linux: http://radioqualia.va.com.au/freeradiolinux
Biennale.py www.0100101110101101.org/home/biennale_py
Mez www.hotkey.net.au/~netwurker
Alan Kay www.smalltalk.org/alankay.html
Matthew Fuller http://pzwart.wdka.hro.nl/mdma/staff/mfuller
Florian Cramer http://userpage.fu-berlin.de/~cantsin/homepage
Alex McLean http://yaxu.org
Read_me http://readme.runme.org
Run_me http://runme.org
Dorkbot www.dorkbot.org
Toplap www.toplap.org
ap www.1010.co.uk
London.pl www.scotoma.org/notes/index.cgi?LondonPL
