On Friday, December 17, 2010 03:51:30 am Yu-Hsuan Lai wrote: > I know programming is related > to design. But is it "art"? In the sense that anything can be. > In art field, the masterpieces would be honored... forever. > The sculptures made by ancient Greeks still stand. > Tang poetry was recited by Chinese users until now. > Da Vinci's painting like Mona Lisa have been classic for 500 years. Programming, in its current form, has been around for, what, 50 years? Give it time to stabilize -- and time for true masterpieces to appear. What's more, it's a > How about programs? After five hundred years, our descendants will remember > mailing list, Ruby, or even Linux? It's possible that these will leave a living legacy. The Linux we use today is very different than the Linux that Linus wrote for want of a terminal emulator -- I'd be surprised if a single line of code is the same. Yet in a sense, it might be considered the same, in the sense that you are still the same person you were ten years ago -- likely not a single cell in your body now was in your body then, and it's possible all of your atoms have been replaced, but you're still you, are you not? Even failing that, while very few people use anything that's directly descended from the original AT&T Unix, we do still use systems based on and inspired by that design. I would imagine that in five hundred years, if we're still using earthbound networks, they'll probably still be running something very like IP, and I'd even bet that it'll still be IPv6. I would also imagine that many of the ideas inspired by Unix would be alive and well, and likely even some code that once lived inside Linux. And there are some things which seem genuinely timeless -- for instance, sorting is very nearly a solved problem, and five hundred years from now, they'll probably still be using something like quicksort, merge sort, etc. There are real, mathematical constraints on making sorting much better, and there are only so many ways to implement the existing algorithms. Even things like "copy" can have some poetry to them; I imagine as long as C is around, this snippet will survive, even though I doubt anyone actually recommends programming this way: void strcpy(char *a, char *b) { while(*a++ = *b++); } As a community, we even have our heroes and our memorable quotes. Like him or not, who can forget Dijkstra saying "Beware of bugs in the above code; I have only proved it correct, not tried it." I'm going to remember that for the rest of my life, even if I never see the actual code he was talking about. Even failing that, I'd have to answer: > If a craft can't stand test of history, still it is art? Yes, of course. What do you mean when you say "art"? Do you mean the same thing Roger Ebert meant when he loudly declared, "Video games can never be art"? Responding to the backlash, he tried to say that they could never be "fine" art, whatever that means. If someone sketches something beautiful to give to his girlfriend on Valentine's day, and she never shows it to another soul, would you say that is not art? Absurd. The question of whether something is or is not art shouldn't depend on how many people have heard of it, or for how long, at least if the word "art" is to have any meaning other than "popular". > If programming is neither art nor manufacturing, what is it? It's both, though closer to engineering than manufacturing.