The Art of Programming or Programs as Art Ernest Edmonds Creativity and Cognition Studios Faculty of Information Technology University of Technology, Sydney Australia Abstract The paper reviews developments in the implications of software programming in art practice whilst pointing to a recognition of the art in programming. The concerns in software-based art are significantly more conceptual than was often the case before. Following the Russian constructivist artists, the software artist is more concerned with the plan for making the work than for conventional rules of composition. The paper reviews a history of the author’s use of various software representations in his art practice and proposes that art is all the richer for embracing software but, in so doing, the challenge to the artist is to be at least as deeply involved in software as in any other aspect of their practice. 1. The art of and in programming The computer provides a significant enhancement to artists’ ability work with the underlying structures of art works and art systems. New concepts and constructs have become available to us in ways that enable new forms in art. One significant such concept is generative art [1]. Here, the artist specifies their intentions and a computer program builds the artwork from that specification. Many new possibilities arise from this development and a number of challenges also present themselves. One such challenge is to find appropriate methods and notations in which to represent the specification of the artwork. These specifications amount to programs providing that they completely describe the generative processes involved. Donald Knuth famously promoted programming as an art. In fact, he called his much read compendium "The Art of Computer Programming" [2]. This goes beyond a concern for just how the code looks, as in for example the Unix ‘cb’ command (C program beautifier). Software coding is itself an art. This art is mostly executed by software engineers who are deeply concerned with the technical aspect of their work. However, the design process that that they use has strong aesthetic values. If the resulting code control structure is like spaghetti, for example, it is not highly rated even if it performs its functions perfectly. In many ways the aesthetics of software design are derived from the aesthetics of formal mathematics, where brevity, elegance and clarity are much admired. Hence, programming is well known as an art, but generative artists are turning computer programs into art. Proceedings of SOMET07, Rome November 2007