« July on empyre | Main | God's Little Toys »

July 07, 2005

Art and Computer Programming


Process or Product?

"Art and hand-waving are two things that a lot of people consider to go very well together. Art and computer programming, less so. Donald Knuth put them together when he named his wonderful multivolume set on algorithms The Art of Computer Programming, but Knuth chose a craft-oriented definition of art (PDF) in order to do so. Is Programming Art?

What the heck is art anyway, at least as most people understand it? What do people mean when they say "art"? A straw poll showed a fair degree of consensus--art is craft plus a special degree of inspiration. This pretty much explains immediately why only art students and art critics at a certain sort of paper favor conceptual art. Conceptual art, of course, often lacks a craft component as people usually understand the term." Continue reading Art and Computer Programming by John Littler, ONLamp.com.

Posted by jo at July 7, 2005 09:07 AM


From Rhizome:

Date: 7.06.05 - 7.08.05
From: Jim Andrews , Jason Van Anden , Rob Myers , Bob Wyman bobwyman@pubsub.com>
Subject: Is Programming Art? (via rogrammer\\\'s perspective)

Jim Andrews posted:

"...the aim of all this is to create poetry. So, I like to speak about algorithmic poetry. A poem is a text that procures you poetry if you read it. The code I'm trying to write is a text that procures you poetry if a computer reads it for you...." Frédéric Durieu


Donald Knuth is a renowned computer scientist, but the idea of 'the art of programming' as promulgated in a book like that series is terribly outdated. There are dimensions to contemporary software art that were not anticipated/anticipatable by Knuth. He sees the 'art' as consisting in choosing the right algorithms and the right implementations of the right algorithms. *Perhaps* this is true once you decide what the thing is going to do. But it leaves aside the whole question of what the thing is going to do. And why one would want to do such things. And the relation of these things to what's going on in the world. Programming is now a part of writing. Writing is a broader thing than it was. The art of programming is not simply a craft of design and engineering but involves all the sorts of issues we find in other arts plus its connections with engineering and mathematics, which occur also in other arts where the making is not without relation to things like engineering and mathematics. Such as architecture.


+ + +

Jason Van Anden replied:

Warning - the following article is quite possibly a waste of time for the more erudite amongst us ;) Regardless - I found this article rehashing the age old question as to whether programming is art, from a programmer's perspective, interesting (and easy to read).


Jason Van Anden

+ + +

Rob Myers replied:

On Wednesday, July 06, 2005, at 01:14PM, Jason Van Anden wrote:

>Warning - the following article is quite possibly a waste of time for the more erudite amongst us ;) Regardless - I found this article rehashing the age old question as to whether programming is art, from a programmer's perspective, interesting (and easy to read).
> >http://www.onlamp.com/pub/a/onlamp/2005/06/30/artofprog.html

The Slashdot discussion on this is quite fun as well:


Paul Graham's essay on the subject:


And a well deserved critique of it:


So is programming art? And which part of "no" don't people get? ;-)

- Rob.

+ + +

Jim Andrews replied:

to extend what i posted a couple of days ago.

because knuth is a (deservedly) renowned computer scientist, people think he must know about the art of programming--particularly since he wrote a multi-volume book with that title. and that book is a classic. but if you pick any of the volumes up, you would find very little if any talk of art in it. it is a big book of algorithms. how do you most efficiently search through text to find a given string? it addresses questions like this. how fast is the algorithm? it addresses questions like this, also. can the algorithm be proved to be the best we can do? etc.

the art of architecture, should we speak of it, i think we could agree, is not circumscribed within the matter of how you build a structure. it isn't addressed so much in the physics books and the engineering books, the references that detail the properties of the materials etc. which isn't to say that those books have nothing to do with the art of architecture. a good architect will know how to consult such books and be intimately familiar with the principles that underly them. just like a good programmer will know how to read books like knuth's and be familiar with the principles that underly his massive and impressive analysis of algorithms. but the art of programming is discussed as little in knuth's books as is the art of architecture in the physics and engineering books on architecture.

knuth identifies the art of programming with how we choose and implement our algorithms. and that is not without art. but the art of programming is far broader than such issues. just as the art of painting is far broader than the issue of how you paint a painting. we see that this is largely a question of technique and craft. just as the question, in architecture, of how you build a structure is largely a matter of craft and technique. whereas the issues of art occur largely in more global contexts.

why would you want to make the thing? what are its relations with its brothers and sisters? what are its relations among the history of ideas? how can its meaning be interpreted? how does it mean? what sort of statements are involved? is it in any sense innovative? if so, how so? what is the experience of it like? these are less quantitative than ambiguous and qualitative questions and issues. and of course there are many more such issues.

the work of art, whether it is binary or analog, is typically made by people who have some awareness of these sorts of questions and issues and it can be read/experienced in such contexts in a rewarding manner; it usually addresses some such set of questions more or less explicitly, even if ambiguously, even mysteriously. even if there is utility to the work, as there is, typically, in works of architecture and software.


+ + +

Bob Wyman replied:

Jim Andrews wrote re: The Art of Programming

> if you pick any of the volumes up, you would find very little if any talk of art in it. If the viewer sees no art, is it because there is no art to be seen or is it because the viewer can not see it? I've treasured my copies of Knuth's "Art of Programming" since I bought my first volumes in the early 80's. I hope desperately that Knuth will live long enough to complete the project and won't be distracted any more... For me, his books are wondrous aesthetic experiences that equal or exceed much of what others would claim to be "great" art. Frankly, their utility is secondary. In fact, some of the volumes are really quite out-dated in their technical content...Knuth created Tex, still one of the most powerful typesetting systems simply to produce those volumes. He created MetaFont, a system for the mathematical definition of typefaces so that he could create the Computer Modern Roman typeface which assured that the words he wrote lay properly, powerfully, and pleasingly on the page. He invented the Mix language in order to make concrete the algorithms that he discussed. All this was essentially choosing colors, brushes, and canvas for the very real "conceptual art" that shines from his discussion of every algorithm and problem addressed.

Knuth's books are much more than just lists of algorithms. They are experiences in a conceptual space which is, admittedly, hard for most folk to enter. But, if you're lucky enough to catch sight of what is there, it is beautiful. It is art.

bob wyman

+ + +

Jim Andrews replied:

If you ask whether programming is an art, and then define it predominantly in terms of technique and craft, the answer must finally be 'no'. It seems to me this is what continues to happen in discussions of art and programming.

As I said in my last post, books about a computer science approach to algorithms are not without art. And Knuth is surely a master thereof. But there is an art of programming that is beyond the analysis and implementation of algorithms, as I have said, and it is to the detriment of the art of programming that technique and craft-centered views of it continue to prevail.


+ + +

Jim Andrews added:

why is it detrimental to the art of programming to define it predominantly in terms of craft and technique?

this is a question that one could as well ask concerning poetry or other arts.

in a nutshell, craft and technique issues/questions do not address the human, social/political contexts in which the object/program is operative.

the cultures of computer science (and mathematics) are cut off from their human concerns. the art/science split makes for both sociopathic science and ineffectual art. computer scientists should be aware of the artistic dimensions and traditions, the humanistic concerns implicit in their discipline. those to whom the students of computer science look up to should be the great artists of the digital, eventually, who both in their works and their contributions to computer science strive for a better world and deeper individual experience and understanding, not simply a more efficient widget or algorithm.

digital art should attract the best minds. the most driven and talented artists. who bring it all together. bring it home. and these should also be the great scientists of the digital. they should not be different creatures.

what is at stake is whether we have societies in which the machine is simply oppressive of humanity or whether the art of programming can flower into something beautiful not only in the austerity of mathematics but in its poetic vision for the benefit and joy of humanity.


ps: http://www.nybooks.com/articles/18112 is a fascinating review of a recent biography of Norbert Weiner, the 'father of cybernetics'. he was well acquainted wih johnny von neumann, one of the main minds behind the rise of the computer. von neumann was the model for dr strangelove. von neumann was the inventor of game theory. he also thought that the usa should bomb russia as soon as possible. see how these two figures contrast.

yet even still, " They shared a passionate interest in biology. Both of them saw a deeper understanding of biology as the ultimate goal of their explorations of the science of computing and information." computing is all about us, is toward our understanding the extent to which we too are language machines.

Posted by: Jo at July 11, 2005 12:27 PM