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.