From: David Masover Date: 2010-12-24T04:56:39+09:00 Subject: Re: Is programming art? On Friday, December 17, 2010 08:00:25 pm Yu-Hsuan Lai wrote: > You imply that our programming craft is too young to be art. No, that's not what I'm saying at all. I'm saying it's too young to be _recognized_ as art. For instance, video games are certainly not too young to be art, and people are even starting to recognize them as art, but we still have Roger Ebert loudly claiming first that it cannot be "art", then that it cannot be "fine art", and finally backing off and admitting that he might not have any right to say one way or the other without at least playing a single game. > But > programming is growing more quickly than other industries(or sciences). > Maybe fifty years is not short? Well, first, most great art isn't recognized within the artists' lifetime, and fifty years is a bit too short for, say, _why to die (or disappear) and then be recognized by later generations as a genius, unappreciated in his time. > Quick sort and merge sort and so on is algorithms rather than programming. What? How are algorithms not programming? > Algorithms are mathematics and mathematics are immutable. By that logic, _all_ programs are also mathematics, and this has also been proven -- every program can be reduced to a mathematical expression. Is that what you meant? But then, I also remember my Calculus teacher talking about how integration is more an art than a science, so maybe that's not such a bad thing... In any case, if programs are more than just math, then algorithms must be, also. They are step-by-step instructions, the abstract form of a program before we translate that algorithm into a particular programming language. In that sense, my morning routine -- wake up, drink protein shake and caffinated pseudo-energy-drink, work out, shower, brush teeth, shave, then get to where I need to be -- could be seen as an algorithm. Even more so if we consider it to be a number of rules -- for instance, if I am running late enough, I may skip everything but the caffeine in order to get there on time. If I am on vacation, I may not set my alarm, I may just sleep till I feel like getting up. Now we're getting closer to an actual algorithm -- if I worked at it, I'm sure I could come up with a reasonable flowchart for how I wake up. Nothing about it is "immutable", either. Sure, if I changed one aspect of my morning routine -- say I decide to drink tea instead, cut back on the caffeine -- it wouldn't be the same routine it was before. But nothing about it is "immutable". I can certainly take existing algorithms, adapt them, and come up with new versions -- one trivial optimization of QuickSort, for instance, is to drop to insertion sort when the partitions get small enough. It's not exactly the same QuickSort, but I don't think anyone would try to claim it's not QuickSort. > Even we have > non-Euclidean geometry, every student learns Pythagorean theorem first. But > still CS students learn Fortran? Some of them even don't want C language. I'm not sure how this is relevant. > Now my opinion is like the essay Arcieri posted. It was interesting, and maybe I've lost a bit of respect for Paul Graham, but I do still think programming can be art. Maybe most of it isn't, but then most writing isn't art either. Certainly, no one would argue that we can't have things like poetry, or even beautiful enough prose that the language itself is art. But I am by no means claiming that what I'm writing here is art, either.