Dear Stanley B. Lippman (A Rebuttal to Is Programming An Art?)

by M. David Peterson

{ End Bracket }: Is Programming an Art? -- MSDN Magazine, October 2006

"The reason we say programming remains an art, not a science or an engineering discipline, is because we haven't as yet been able to break it down into component steps and mechanize it. Once we succeed in that, a new scale of possibility emerges: programs to write programs from people-oriented design languages (PODL), programs to prove program correctness, and to analyze and support semantic query. Until then, however, programming remains an art, or so conventional wisdom has it."


Wait, what?

"The reason we say programming remains an art, not a science or an engineering discipline, is because we haven't as yet been able to break it down into component steps and mechanize it."


With all due respect, Mr. Lippman (and I most certainly do have a lot of respect for you and your work), who's we? And since when does breaking something down into component steps and mechanizing it turn this same something from art into science? In this regard it almost seems as if you are suggesting that science is defined as the final state instead of a series of experimental steps that help bring about this same mentioned state.

Then again, using the term "final state" isn't really something that can be applied to this analogy either, as when was the last time anything anybody has ever created through the process of science, or maybe better said, the process of trial and error, stayed in this same "final" form indefinitely? Of course, through the *art* (or is it a science?) of preservation, there are those who can do a pretty good job of keeping the original state of something as close to its original state as possible. But even then its no where near perfect, and in many ways the very act of preservation goes against the very essence of what life is all about,

Change. Transition. Transformation. Progression.

Just to be certain we are both on the same page, lets take a look at the definition of "science",

28 Comments

Dusan
2006-10-25 05:02:02
Dear MD Peterson,
Your lengthy comment boils down to your (almost) last sentence "Yes and No, all the same time" ... why the lengthy panegirik before it?
Mr Lipmann was not using the term "science" in its primary menaing but rather as an overarching term. I think ...


Regards: Dushan

Simon Hibbs
2006-10-25 06:45:08
Programing is art to the extent that it's creations have artistic merit, or aethetic value. Are there no programs with artistic merit?


Programing is a science to the extent that it is a discipline subjec to consistent logical analysis. Is it possible to analyse programs and programming problems logicaly?


Programing is engineering to the extent that we design and produce complex products according to a pre-concieved plan. Is it possible to do so?


So programing is an art, a science and an engineering discipline. In fact, this is all so because the act of programming is an act of expression just as much as writing in any spoken or written language. Written languages are capable of atristic expression. They are susceptible to scientific analysis through linguistics and they can be engineered in the sense that new languages can be constructed.


Which of these we choose to emphasize simple depends on the context from which we look at the discipline.

piers
2006-10-25 10:19:25
Quick thought - "art" ostensibly is the realm of muses and talents, whereas "science" is the realm of smarts and proofs. If you accept these facetious assumptions, then the question "Is Programming an Art?" can reduce to "Are you an Egghead or a Picasso?"


I took a degree in Computer *Science*, which taught me how to develop solutions from scratch, or based upon a rudimentary library, how to analyze algorithmic complexity etc, but on a day-to-day basis, the majority of my time now is employed as an *artisan*, building things out of pieces I and other people have previously built. This is different from an *assembler*, mind you, and requires a certain amount of artistry and an understanding of the underlying science or engineering, and this process, when I take the time to record or opensource any useful techniques etc I have developed, contributes back to the science.


I've recently been working with XSL 2.0, and am really impressed that a single transform (process) can create multiple documents (product)... the result of my daily "artistry" is at least two products, one economic (the product we sell) and one scientific (blogging about the process later, opensourcing). I think it is important to note that these two products are published through different (transport) media (if I profitted from blogging through AdSense, the media would serve purposes both economic and scientific).


It's like in A Hard Days Night when a reporter asks Ringo if he's a Mod or a Rocker, and he replies "I'm a Mocker..."


Thanks for writing. ;)

orcmid
2006-10-25 10:31:56
In Donald Knuth's 1974 Turing Award Lecture, "Computer Programming as an Art," he explains the choice for the title and affirms that he means it, along the lines of definitions (6-7) that you cite, as well as making the observation "that computer programming is by now *both* a science and an art, and that the two aspects nicely complement each other."


Here's his summary: "We have seen that computer programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beauty. A programmer who subconsciously views himself as an artist wil enjoy what he does and will do it better. Therefore we can be glad that people who lecture at computer conferences speak about the *state* *of* *the* *Art*." (All emphasis his.)


I think the writer of the MSDN article confuses science with craft or technique, exhibiting a misunderstanding of science.

Will
2006-10-25 12:22:57
What does it matter?
Ron
2006-10-25 19:41:48
I think you're being too prescriptive. The original comment included "engineering" as one of the alternatives to "art". Also note that none of the possibilities in the original quote used Capital letters as if to signify something, as you do with the word "Art" or "Science".


Programming is not yet engineering because we have not yet been able to provide quantifiable repeatable techniques with which to create provable and testable programs.


Programming is still the work of "artisans", people effectively trained in a number of techniques, more in the nature of the old-fashioned apprentice and guild from the renaissance than modern engineering.


This is not necessarily a criticism. Great works of joinery, furniture and other works have been created by artisans and "master craftsmen". But they can't produce Ikea's level of repeatability.

Sphinx
2006-10-26 07:38:32
The only difference between art and feces flung at the side of a barn is the skill with which one flingeth. So it is with programming. I'll split the difference and call it a craft. We should form a guild.
stochastio
2006-10-26 08:15:38
I can't agree with you. I won't agree because there is about as much difference between programming an Art as there is between a data structure and a beat. Sure, both of these endeavours can be the results of a unique creative process, but they don't run in the same way on the same platform. If programming was an art, I would have expected the laws of computation to dance.


Perhaps I have a limited view of what Art is, but I really think it requires a human on the receiving end to enjoy (or despise) it. Good programming is so caught up on creating beauty and elegance in the way it manages code that much of the hard work is burried underneath the surface, where it's rarely noticed. Why else would user interfaces be so frequently retouched by «artists» so that regular people can finally relate to the software they use?


Why even revendicate programming as an artform? Is it a title of some kind, to be attained to justify some unrecognized aspects of our work? Or is it a call to approach our craft in a more liberal way than we do in schools and at work? And what is it with Art anyways?


In a way, I agree, programming is a bit like art, but I'd rather call it what it is (too bad that «informatique» doesn't translate to English - does it?) and let become its own thing. Just thinking of all the crap we tried to pass as Art during the last century stirs up my stomach un undefinite ways and gets me pedantic enough to the point of writing out loud that programming isn't Art, and that they just happen to be two activities who share the same superclass.

jakob
2006-10-26 10:36:50
I thought ISA statements were abandoned on this planet long ago. Read Robert Anton Wilson. He even wrote a book without using this construct.
M. David Peterson
2006-10-30 15:46:14
@Dushan,


>> ... why the lengthy panegirik before it?


This is your first time here, isn't it? Well, you'll either get used to it or you won't. I type as fast as I talk, and those in whom have heard me talk understand there are few who can hold a candle to this blabber-mouth of mine, so in a nutshell -- there ya have it. :)


>> Mr Lipmann was not using the term "science" in its primary menaing but rather as an overarching term.


You sure about that?


>> I think ...


Apparently not.


While I agree (update: ... that he was using the overarching meaning as it relates to his own viewpoint), it would be a stretch, in my opinion, to suggest that he was referring to the overarching term in the sense of the overarching term encompassing both art and science. I'm not sure if you read his entire post, but if not, take a moment and read through the whole thing -- there is no room for artistic interpretation here -- this is a flat-out statement that says,


Computer Science is *NOT* ART!


If Mr. Lippman feels that his definition is more liberal than this... then let Mr. Lippman say so himself (though I have my doubts that he will.)

M. David Peterson
2006-10-30 15:48:16
@Simon,


AMEN BROTHER!!! :D

M. David Peterson
2006-10-30 15:56:52
@piers,


>> It's like in A Hard Days Night when a reporter asks Ringo if he's a Mod or a Rocker, and he replies "I'm a Mocker..." <<


YES!!! I LOVE IT :D

M. David Peterson
2006-10-30 16:00:48
@stochastio,


It seems that buried somewhere in there are several points in which suggest that programming can be both an art and a science. I tend to agree with your point that there is a TON of crap out there that gets labeled as art, and as such holds potential to develop a "hands off -- this is art, and therefore it is good because I say it is good."


However, from the reverse side, this -- once again -- comes back to the interpreter -- the person in whom sees or hears or smells or touches or tastes something and whatever that something is provides meaning to them that goes beyond the science of its creation. Art is a very personal thing. That said, so is science. It all has to do with your particular perspective, which can change at any moment without any warning what-so-ever.


It's just one of those things that doesn't really have an explanation beyond that of the perception of the person in whom is making the interpretation as to what something is and what it is not via their human sensory system.


None-the-less, you have some very valid and fair points, and can easily understand why you feel the way you do. So with that...


Peace :)

M. David Peterson
2006-10-31 01:52:13
>> If Mr. Lippman feels that his definition is more liberal than this... then let Mr. Lippman say so himself (though I have my doubts that he will.) <<


I should both clarify and qualify this comment,


1) If you read the original article, it is my own opinion that there is little room for interpretation in regards to what he is suggesting.
2) In my own opinion, what he is stating -- in no uncertain terms -- is that programming a computer is not an art.
3) Mr. Lippman seems to be the type of person (I have never met him, only read and studied his work, something I both admire and appreciate) in which doesn't come to his conclusions without significant thought and analysis.
4) He also seems to be the type that doesn't give in to the pressures of the outside world just for the sake of giving in to avoid clashing. This is an admirable quality, something in which I both admire and respect.
5) I'm not suggesting that his opinion is 100% wrong, and instead 50% right.


Okay, so I had to stretch on that last one to get to the glass half full side ;) That said, as a programmer of computers myself, it's my artistic creativity that I feel is my greatest strength, so in and of itself, that is both my justification and my argument, all rolled into one. :)

M. David Peterson
2006-10-31 11:16:40
@orcmid,


Thanks for this! Obviously I completely agree with both you and Donald Knuth, though I hadn't read and/or seen this before now.


Thanks for bringing this to the surface!

M. David Peterson
2006-10-31 11:22:09
@Will,


>> Why does it matter? <<


It matters because it makes all the difference in the world when you , as the programmer, think of things in terms of creatively solving problems as opposed to programmatically solving them.


Of course, as per my comment to orcmid, before now, I hadn't read Donald Knuth's reasoning for choosing the series title that he did. I *LOVE* this statement,


>> A programmer who subconsciously views himself as an artist will enjoy what he does and will do it better. <<


*ABSOLUTELY* 100% agree (though that one is probably already pretty obvious.)


Thanks for taking the time to ask the question, as it was and is a fair question that needed to be answered.

M. David Peterson
2006-10-31 11:28:50
@jakob,


via http://en.wikipedia.org/wiki/Robert_Anton_Wilson


>> In a 2003 interview with High Times magazine, RAW described himself as a "Model Agnostic" which he says "consists of never regarding any model or map of the universe with total 100% belief or total 100% denial. Following Korzybski, I put things in probabilities, not absolutes... My only originality lies in applying this zetetic attitude outside the hardest of the hard sciences, physics, to softer sciences and then to non-sciences like politics, ideology, jury verdicts and, of course, conspiracy theory."[2] More simply, he claims "not to believe anything," since "belief is the death of thought."[citation needed] He has described his approach as "Maybe Logic." Wilson wrote articles for seminal cyberpunk magazine Mondo 2000.[3] <<


Interesting. While RAW is someone who always came of interest to me, I've never really read any of his works. Obviously someone with an interesting perspective on life, and obviously someone in whom I should read up on/from.


Thanks for the tip/advice!

M. David Peterson
2006-10-31 11:35:44
>> I'll split the difference and call it a craft.


Okay, deal. ;)


>> We should form a guild.


Will there be meetings? ;)


via one of my favorite actors/movies/movie lines of all time, http://en.wikipedia.org/wiki/Grosse_Pointe_Blank


"Will there be meetings?" - Blank


"Of course!" - Grosser


"No meetings." - Blank


Thanks for the laugh! :D


M. David Peterson
2006-10-31 16:52:28
@Ron,


>> This is not necessarily a criticism. Great works of joinery, furniture and other works have been created by artisans and "master craftsmen". But they can't produce Ikea's level of repeatability. <<


Well stated, though I would tend to argue that Ikea's level of repeatability is the result of the ongoing perfection of the process of the creation. The artistic beauty of Ikea furniture is represented by the result of years and years and years of expert artisans and master craftsmen constantly changing, adapting, reworking, retooling, and ultimately perfecting the process to the point of consistent inexpensive repeatability.


In this regard, what Ikea furniture represents is the work of art in which precluded the result as well as the artistic merit and aesthetic value that Simon points out.


There is beauty in all things, at all levels, all of which comes back to the underlying principle,


Perspective.


Thanks for your thoughts and comments!

Will
2006-10-31 19:55:51
I don't want to see progamming turn into some kind of beauty contest.


Hmm, code beauty contest. Sounds like Web 2.0 gold. :)

Erik
2006-11-01 04:02:51
I think the "Turing test" of art or science is: Will two programmers ever come up with the same solution to any given problem? Then replace "two" with "the majority of N number of"...
M. David Peterson
2006-11-01 08:12:14
@Will,


>> I don't want to see progamming turn into some kind of beauty contest. <<


It seems you are suggesting that "programming is art" is a new concept that someone is attempting to sell as a product. This is nothing new -- this is simply a reiteration of that in which *MANY* who have come before have been been promoting as a way of thinking about programming, not attempting to suggest this as a cliche marketing phrase.


Thinking in terms of artistically solving programming problems is the same thing as thinking in terms of creatively solving them. Should we not be creatively solving problems?


No marketing mumbo-jumbo hype here. Just simple facts.


M. David Peterson
2006-11-01 08:13:06
@Erik,


>> I think the "Turing test" of art or science is: Will two programmers ever come up with the same solution to any given problem? Then replace "two" with "the majority of N number of"... <<


Yup!

Will
2006-11-01 15:05:25
When I'm writing a piece of music, I care about how it will be percieved aesthetically, not about reducing the distance traveled by my bandmates' fingers during its performance or about staying below my synthesizer's maximum polyphony.


When I'm writing a compiler backend, I'm focused entirely on correctness and efficiency.


A good painting isn't the result of counting brush strokes, and good code isn't the result of slick variable naming. The question of whether programming is art offends me on some level both as a programmer and an artist. Maybe I'm just sensitive.


Thinking in terms of artistically solving programming problems is the same thing as thinking in terms of creatively solving them. Should we not be creatively solving problems?


"What would Van Gogh do?" is certainly not the first thing that comes to mind when I'm confronted with a difficult problem. Can you give an example of a computational problem solved artistically?

M. David Peterson
2006-11-01 17:15:30
@Will,


> The question of whether programming is art offends me on some level both as a programmer and an artist.


Wow.


> Maybe I'm just sensitive.


I would run with that and see where it takes you.


> "What would Van Gogh do?" is certainly not the first thing that comes to mind when I'm confronted with a difficult problem.


Nor would "What would Donald Knuth do?" when sketching or painting. That doesn't mean that either of these world renowned artists are any less significant, and instead focused on a different type of art. Is painting the only type of art that exists?


>> Can you give an example of a computational problem solved artistically?


Sure.


Take a look at http://www-cs-faculty.stanford.edu/~knuth/taocp.html


Take a look at http://picasa.google.com/


Take a look at http://fxsl.sourceforge.net/


Take a look at http://saxon.sourceforge.net/


Take a look at http://www.jenitennison.com/


Take a look at http://www.jenitennison.com/xslt/grouping/muenchian.html


Take a look at http://kamaelia.sourceforge.net/


Take a look at http://code.google.com/p/aspectxml


Let me know when you're done and I will give you a brand new list to study. Be prepared, however, as I have a list of software applications, coding techniques, algorithms, solutions, and various other items related to programming that both myself and *MANY* others consider some of the greatest art work that has ever been created.


Of course this brings us back to perspective which is the point you seem to be having the hardest time grasping. If you don't feel that programming is art... Fine by me. But because you find it offensive that there are those who feel that programming is art doesn't mean I or anybody else has to change our viewpoint.


Let me know when your ready for your next batch.

M. David Peterson
2006-11-01 18:21:04
@Will,


I take ~three walks of ~1.5 miles each day -- I find that it helps me in all aspects of my life to step away from my computer, get outside, enjoy the fresh air and the beautiful scenery here in downtown Salt Lake City where I live. I just came back from one of these mentioned walks -- I take one at the beginning, middle, and end of each day, and even sometimes in between those times -- and during this 20 or so minute period I was thinking a lot about your comments.


In particular, what grabbed my attention was your point regarding being a musician, and it occurred to me that to you, music is your form of expression. I may be wrong, but it sounds to me that what gets you out of bed each morning, so to speak, is not the thought of going to the day job to write code and instead the thought of creating music. If I'm correct, then it seems fair to suggest that what makes "Will" -- Will -- is that of musical expression. It's what puts a smile on your face; It's what brings you, and potentially others, into your own personal groove; your own personal formations of artistic impressions tunneled through the peaks and troughs of the sound waves you create.


You know what gets me out of bed in the morning?


Writing code. It's how -- or at least one of the ways -- I express myself. My thoughts and emotions and feelings are tunneled through the formations of algorithmic expressions. Its what puts a smile on my face in the same way it seems music puts a smile on yours.


As mentioned by myself and several others, art is *VERY* much a personal thing, very difficult to define, though I do believe can be sensed through the following expression,


Art is what helps bring a smile to your face. It's what helps get you out of bed each morning to do what you do such that you can be what you be -- whatever, and whomever that might be.


Everyones an artist, Will. Painters, actors, mothers, fathers, musicians, academics, mathematicians, graphic artists, friends, family, carpenters, janitors, teachers, students -- and while this list is no where near complete -- yes, even computer programmers can be artists too. It's all a matter of what helps bring a smile to your face.


It's all a matter of perspective.


Thanks for sharing your thoughts and contributing to the overall conversation, Will. This type of stuff -- communication, whether that be through agreement and/or debate and/or anywhere in between -- is how we, as people, can understand one another.


This stuff -- communication through self expression -- is important!


lb
2006-12-28 20:17:35
did we ever get a definite yes/no answer on this? my client is waiting on a solid answer.
imparare
2007-04-15 00:41:55
Interesting comments.. :D