Cox Geoff, Notes towards a poetic of code
-------------------------------
NOTES TOWARDS A POETICS OF CODE
-------------------------------
Geoff Cox geoff@generative.net
Bio
[this version of text is distributed under the creative commons license:
Attribution-NonCommercial-ShareAlike 1.0] for a presentation at VJ7,
constant, brussels, Nov 2003.
Geoff Cox has participated in the seminar Media mediate: on performativity
What follows is a series of loosely connected ideas [drawing upon, and hacking together, some previous papers and projects].
The presentation begins by making reference to an essay written with Adrian Ward and Alex McLean called 'The Aesthetics of Generative Code' (2000) making an analogy between code and poetry as a form that requires reading/speaking (or should I say writing/executing). Some of these ideas have been further developed in the co-curation of the show 'generator'that engaged with rule-based work bringing together artwork from the conceptual tradition and the recent work of artist-programmers. All the work was 'live' or performative in this sense as generative art/media. Part of this show included a contribution by some monkeys entitled 'notes towards the complete works of shakespeare'
My overall approach is rather unfashionable (bypassing deconstruction for historical materialism) drawing upon Benjamin's statement (in 'The Author as Producer' of 1934) that it is simply not enough to have social or political commitment without at the same time thinking through its relationship to the means of production and the technical apparatus. He says:
An author who has carefully thought about the conditions of production today... will never be concerned with the products alone, but always, at the same time, with the means of production. In other words, his [/her] products must possess an organising function besides and before their character as finished works. (1983: 98)
In this way, I am operating in a similar spirit to the organisers of this event in what they would describe as keeping things in the kitchen than taking them through into the dining room. For Benjamin, the cultural producer is recommended to intervene in the production process, in order to transform the apparatus. This presentation simply asks if this general line of thinking retains relevance for cultural production at this point in time when activities of production, consumption and circulation operate through complex global networks served by information technologies.
I. Aesthetics of Code
---------------------
Aesthetics, in general usage, lays an emphasis on subjective sense perception associated with the broad field of art and human creativity.
Revisiting the troubled relationship between art and aesthetics (and largely reliant on Rée's book I See a Voice), the argument in these notes is that, like poetry, the aesthetic value of code lies in its execution not simply its written form. The code largely performs the work.
To separate the code and the resultant actions would appear to limit the
aesthetic experience, and ultimately limit the study of these forms and what in this context might better be called a poetics of code. By poetics, I aim to imply a critical activity that would take account of other social factors outside of mere sense perception. For instance, quite clearly there is an ideology to aesthetics that lies relatively hidden and difficult to perceive critically. I havent time to go into this in detail but it is worth noting Zizeks evocative description of ideology - the generative matrix that analogously expresses the generative code beneath the action. The suggestion, in keeping with the subject being described, would be that this requires a certain transparency to open it to criticism (we need to view the source code in other words). Revisiting the idea of the limits of aesthetic experience might serve to reveal contradictions between various modes of operation for instance, between theory and practice, as well as between the intellectual and physical division of labour involved in the production of generative art works (in the case of immaterial labour, this is perhaps all the more difficult to perceive). These issues are all too easily overlooked in an over-concentration on aesthetic outcomes that are all often reduced to subjective judgement and taste.
In discussions of aesthetics, the predominant philosophical legacy has been that any theory of art is predicated on the specific characterisation of the senses. It is now generally accepted that sense perception alone is simply not enough unless contextualised within the world of ideas. Similarly, the world of multimedia is all too easily conflated with a multi-sensory experience (of combining still and moving image, sound, interaction and so on) as if without a priori understanding of the integrated system (the body-machine) and its underlying code genetics maybe, but this must also include social and discursive frameworks.
Aesthetic theory has tended to collapse experience into what is perceived through the five senses, whilst privileging sight and hearing over touch and taste, leaving smell at the bottom of the heap (Laportes History of Shit comes to mind, as does the Museum of Ordure that I am a trustee of; as the name suggests, it tries to archive that which culture doesn't value including digital shit). Subsequently there has been a recognition that this separation of sensual experience is inadequate and that a more systematic approach is called for that recognises the body as a whole as an integrated system, and then extend this to the outside world. To put it another way, software and hardware should not be unduly separated but this is also networked to other machines, users and environments.
These limits of traditional aesthetics are emphasised in the problem of defining poetry. Poetry throws sense-bound classificatory distinctions into question as it is both read and heard; or written and performed through speech. Hegel suggests a way out of this paradox by employing dialectical thinking; as we do not hear speech by simply listening to it. He suggests that we need to represent speech to ourselves in written form in order to grasp what it essentially is. Thus poetry can neither be reduced to audible signs (the time of the ear) nor visible signs (the space of the eye) but is composed of language itself. This synthesis suggests that written and spoken forms work together to form a language that we appreciate as poetry. But does code work in the same way? Is the analogy productive?
Poetry at the point of its execution (reading and hearing), produces meaning in multitudinous ways, and can be performed with endless variations of stress, pronunciation, tempo and style. There are many precedents for this.
For instance, Surrealists and Dadaists used arbitrary patterns, rhythmical noise, and mere chance arrangements of words and sounds in automatic or generative experimentation. Whereas the automatic text reduced the significance of the poet making the text a transcription or discovery rather than a production or invention, I am trying to stress a more purposeful arrangement of code by the programmer.
Rather than chance arrangements, attention to detail in code is paramount when it is encountered in written form and in terms of its execution. However, like poetry, language is used in a highly controlled manner and with subtle nuances. Evidently, code works like poetry in that it plays with structures of language itself, as well as our corresponding perceptions. In this sense, all poetry might be seen to be generative in that it is always in the process of becoming. Even for the Surrealist Paul Valéry, a poem entails a continuous linkage between the voice that is, the voice that impends, and the voice that is to come. It is generative (and performative) in the sense that it unfolds in real-time.
II. Execution of code
---------------------
By analogy, generative code has poetic qualities, as it does not operate in a single moment in time and space but as a series of consecutive actions that are repeatable - the outcome of which might be imagined in different contexts. Code is a notation of an internal structure that the computer is executing, expressing ideas, logic, and decisions that operate as an extension of the author's intentions (whether achieved or not). The written form is merely a computer-readable notation of logic, and is a representation of this process. Yet the written code isn't what the computer really executes, since there are many levels of interpreting and compiling and linking taking place. Code is only really understandable within the context of its overall structure.
Code itself is clearly not equivalent to poetry as such, but retains some of its rhythm and metrical form. Code is intricately crafted, and expressed in multitudinous and idiosyncratic ways. Like poetry, the aesthetic value of code lies in its execution, not simply its written form. This is decidedly not to say that the code should be privileged (as implied by Adornos comments on music being a by-product of the score) but that the code and the execution of the code need to be experienced and understood in parallel (for instance, the CODeDOC exhibition at the Whitney and later at Ars Electronica). Any sense of codes autonomy is subject to its place within its operational structure. In this way, code reflects human activity and human activity is coded within social and discursive frameworks thus authorship is perhaps characterised in terms of (social) responsibility to the operating system and language structures. Clearly generative media operates in this way too and appears to encapsulate the paradox of autonomy. Generative art needs to acknowledge the conditions of its own making its poesis (from the Greek poiesis, poetic art or creativity from poiein to make; further suggesting 'auto-poesis'). This needs to be made transparent in the spirit of open process, and open source.
Exemplifying these principles, in Alex McLeans work forkbomb.pl you are encouraged to understand the code and the output of that code in parallel (incidentally, Alex McLean also made the runme.org software repository:
#!/usr/bin/perl -w
use strict;
die "Please do not run this script without reading the documentation"
if not @ARGV;
my $strength = $ARGV[0] + 1;
while (not fork) {
exit unless --$strength;
print 0;
twist: while (fork) {
exit unless --$strength;
print 1;
}
}
goto 'twist' if --$strength;
(documentation is on the website forkbomb)
In this example, the program splits in two with every iteration. The code is relatively lengthy as the basic instruction could be reduced to one short line of code:
fork while 1;
The instruction is simply to split this process in two for ever - thus, after the first iteration you get two processes, after the second you get four, then eight, and so on indefinitely. However, the output of the first example is significant in that it is a visualisation of the execution of the process in a more complex performative manner. On a technical level, the computer is under such a high load that it fails to comply to its instructions - after a while the fork calls fail to split the process in two, and so on. The ordering in which the task scheduler does things becomes less-ordered the harder it is pushed. In this way, the output can be seen to be a visualisation of the computers performance during the program's execution. The output would look very different on different computers, thus providing a representation of the processor and operating system. The code and the resultant actions are intricately linked in poetic dialogue.
forkbomb.pl was included in the exhibition Generator that presented a series of self-generating projects, incorporating digital media, instruction pieces, drawing machines, experimental literature, and music technologies.
The intention of the exhibition was to act as a point of connection for different generative practices across disciplines, pointing to the relationship of visual arts to other media, and drawing together a younger generation of artist-programmers with more established conceptual artists engaging with computer technologies - such as Sol LeWitt, Stuart Brisley, Yoko Ono, with Alex McLean, Joanna Walsh, and Adrian Ward.
The exhibition title refered to the term 'generator' itself, describing the person, operating system or thing that generates. Sounds, images, and objects, distributed online and offline, generated their contents and possible meanings live throughout the course of the show. In this way, Generator sought to comment allegorically upon the wider systems within which the artworks generate their meanings. With this in mind, in a sense the works followed rules set by the curators too: following rule-based or mathematical structures, operating in real-time, and by addressing issues of authorship (not by deferral as is perhaps the orthodoxy, but more through the critical activities of the artist-programmer) by placing an emphasis on the productive apparatus under contemporary conditions (making reference to Benjamins The Author as Producer - all operating within the context of a (dead) gallery system. Generator attempted to place emphasis on these productive processes, allowing the artist-programmer and machine to be seen to work in partnership to disrupt tired old mythologies of creativity - emphasising that art conforms to formal structures and contraints, and that computers might be used for manipulating these structures.
On another level, the idea was to make reference to complexity theory, in that the relationship between order (that which can be classified and rationalised) and disorder (that cannot, because it is too chaotic and generalised) does not lie simply in opposition - but rather in dialectical tension.
III. Dialectics of code
-----------------------
The dialectic is a dynamic, perhaps generative process, by which an argument (thesis) is posed, only to be disputed by another (antithesis) in order to bring about a combinatory resolution (synthesis). The dialectical movement results in a synthesis which is not just the conclusion, but is to be seen to be part of a continuing critical process. With more reflection the synthesis will reveal itself to be a thesis in some other respect and so require the same dialectical treatment, and so on, in order to continue a chain of better understanding - whether finally concluded or not.
>list
>10 let thesis$ = "1"
>20 let antithesis$ = "0"
>30 LET synthesis$ = (thesis$ + antithesis$) + synthesis$
>40 print synthesis$
>50 goto 30
>run
saved dialectics.bas
The laws of motion are subject to inner contradictions at every level of operation, that define the mode of production and that nothing is finished or resolved but in a continual state of flux. This idea of an inconclusive synthesis is accounted for in the contradictory phrase Orderly Disorder a perfect maxim for correlating ideas of complexity with dialectical thinking.
According to N. Katherine Hayles: complex systems nevertheless become chaotic in predictable ways. In other words, they are not absolutely chaotic (or random) but express a complex structure of order and disorder.
Thus systems, even social systems, are not closed but also open to influence and change from external and internal factors.
In other words, the concept explains how dynamic systems are very sensitive to small changes. The science of complexity, in other words, refers to the potential for emergent order in complex and unpredictable phenomena. For instance, the system expresses unpredictability despite its deterministic character. If this all seems a rather inadequate description, I hope it is clear that I am not so much interested in a precise scientific mapping or explanation of this but its metaphoric potential: in that tiny disturbance can produce exponentially divergent behaviour and this has some level of verification. Within self-organising or generative systems, disorder may lead to order, and order is encoded into disorder at a fundamental level. The argument that disorder is no mere opposite of order provides dialectical potential.
Within systems and their sub-systems, positive feedback loops might generate the further development of a process to the point of causing a fundamental and unforeseeable change of the existing system. By analogy, one could think of capitalism as one such system that contains the seeds of its own destruction (to paraphrase Marx). This is important as it emphasises the constructive positive role that disorder might play in creating order. According to this logic, at the bifurcation point, chance takes hold of determinism, and as a result either disorder or order may be generated. If Bifurcation means splitting, as the point where within a system, one path or another must be followed, although the choice is limited to one of two, the decision is thoroughly unpredictable. With increased frequency, bifurcations can lead to chaotic systems of course. In science, this is the theory of self-organising matter that Sue Owens has adopted to explain the possibilities of a social system wherein order is both expressed in disorder and might be generated out of disorder. Living systems (such as society itself) are determined by rules, but at the same time demonstrate emergent properties that are unpredictable and appear to break rules. The possibilities are large and complex, but not endless nor open-ended. Hence, bifurcation theory is a common explanation for how ordered structures can arise from disorder.
This might be described as the working principle for Alex McLeans forkbomb.pl in that it demonstrates bifurcation but also contains the seeds of its own destruction as the system will eventually crash. Thus, it is possible to draw a parallel between the revolutionary moment and the bifurcation point as the point where dramatic change takes place. It is here that order and chaos are combined so that change can take place. But this patterning does not stop there for it to operate dialectically, but needs continual improvement so as to not stagnate (in leftist politics, this is sometimes called permanent revolution). On the contrary, every new synthesis should become a new thesis and so progress is not stopped short, and in this way resists premature closure and false totalities. Contradiction between parts is required for the complex whole to adequately describe the ways in which these parts express both disorder and order.
My argument is that dialectics continues to remain a useful conception and model of change to describe systems that appear to contain the same logic. Dialectics and complexity together suggest that human subjects are constituted through their relationship to society and institutions, and that society cannot be described simply as a collection of individual subjects but is a far more complex system that takes account of individual differences but also of collective and networked actions. The simple logic of the whole is more than the sum of its parts is made manifestly evident. Herein lies the impetus for change, as a result of revealing the contradictions between the relations of production. As a model of generative processes, the parallel of dialectical thinking and complexity theory offers a counter-argument to causal relations, such as a straightforward linear movement between cause and effect. This approach provides the possibility of change through collective human agency at the point of bifurcation or revolution. By its inherent method, dialectics offers the possibility of transformation coexisting with a tight structural framework it is both a paradigm shift and an old discredited paradigm in itself. It encapsulates the idea of orderly disorder wherein positive change remains a possibility and posits an optimistic turn to such processes by positing them as sources of renewal . Evidently, people and things are more complex, dynamic and self-organising echoing the exhibition title 'generator' in describing the person, operating system or thing that generates.
In this spirit, this presentation tries to make the case for (poetic) contradiction for a practice that acknowledges the conditions of its own making, the means of production and the technical apparatus. The theory and practice of code might be seen to be poetic in this sense. In the spirit of this debate at this event, the human subject is thoroughly embedded in these processes, in terms of making/performing the work. If this is understood dialectically, the coding requires transparency to demonstrate its transformative potential in art and life in general.
image of production scene:
end/fin/einde
--
All references are in the original texts (links below).
These notes are based upon previous papers:
The Aesthetics of Generative Code (2000), with Adrian Ward & Alex McLean, Generative Art 00, international conference, Politecnico di Milano, Italy ; also in Eugene Thacker, ed, Hard_Code: narrating the network society, Alt-X Press, ISBN 1-931560-04-8, 24K, 22pp
Generator: the dialectics of orderly disorder (2002), conference paper, Creativity & Cognition Proceedings ISBN 1-58113-465-7, ACM Press, pp. 45-49
'Artist as Engineer' (2003), symposium, introduction, co-chair and co-organiser (with Joasia Krysa), as part of Interrupt: artists in socially-engaged practice, in partnership with Arts Council England, University of Plymouth.
Why Look at Artificial Animals? (2003), conference paper with Adrian Ward, Consciousness Reframed 03, University College Newport, Wales.
And projects:
Generator(2002-03) touring exhibition, (co-curated with Tom Trevor) Spacex Gallery, touring to Liverpool Biennial and Firstsite, Colchester, with support from the Arts Council of England
The Museum of Ordure (ongoing) (with Stuart Brisley & Adrian Ward)
Notes Towards the Complete Works of Shakespeare(2002-03) limited edition artists book & DVD, published by Kahve-Society & i-DAT for
vivaria.net, produced by Book Works, ISBN 0-9541181-2-X.
Vivaria (2003 and ongoing) website (with support from the New Media Fund of Arts Council of England)