Hacker News new | past | comments | ask | show | jobs | submit login
Knuth: Computer Programming as an Art (paulgraham.com)
68 points by revorad on Dec 16, 2009 | hide | past | favorite | 26 comments



When I see articles like this that show a deep understanding on the present state and the future of programming, it makes me sad.

Because if these kinds of ideas were articulated 35 years ago, I'd expect that by now we would have progressed much more.


We might think. It's unfortunate that Knuth is not more widely read or understood. He's a great writer, it shows in his writing and coding work.

I liked his quotes in 'Coders at Work' where he said he didn't expect anyone to read his books cover-to-cover, and he writes such detailed books in part to avoid forgetting stuff.


for more of the same feeling, try reading The Mythical Man Month (the entire book)


It would be nice if psychologists would be honest and introspective enough to call their field an Art... at least until the appearance of a Hari Seldon.


My dad's a psychology professor and he calls it an art.


The Hari Seldon of psychology is John Gottman: http://tinyurl.com/y9952j5



Gottman does seem to be a great relationships artisan/artist.

btw, heres a blurb on Asimovs Foundation series fictional character http://en.wikipedia.org/wiki/Hari_Seldon, the founder of mathematical psychology of masses, 'psychohistory'.


Having slogged through the 3 volumes of the 3rd Edition of TAOCP, I came away with 2 impressions: 1) How did Knuth work art into the title? 2) Disappointment that he took so long coming out with subsequent volumes. So long, that I no longer care about reading the subsequent volumes.


That's too bad, since there's some great stuff in Volume 4. In fact, it's my favorite volume in the series (so far.)


Watched his Christmas tree lecture, and he said the hardbound vol. 4 (not the facsile) will be out in 2010. I consider that the true vol.4...only, what, 5 or 6 years later than he originally proposed.


"When I'm sitting in an audience listening to a long lecture, my attention usually starts to wane at about this point in the hour. So I wonder, are you getting a little tired of my harangue about 'science' and 'art'?"

yes. i'd already started skimming several pages earlier.

i don't have a problem with reading texts of any length, so long as they are telling me something interesting. belaboring an insignificant point for five or six pages does not fall into that category.

i know knuth is a smart guy and all, but man, this reminds me of why i so rarely read him.


Is mathematics (theorem proving) an art?


Speaking as one with a PhD in Pure Math, who goes out and gives talks about how exciting and interesting math can be, who knows and has regular contact with working mathematicians such as Tim Gowers, I can unequivocally say yes, theorem proving is an art.

But there is a stage where the art finishes, and you have to convert the proof into a communicable description of the proof. This is where you have to create a complete narrative, starting from known and agreed statements and deriving a sequence of statements using agreed deductive principles.

The artistry is in finding the why of your theorem, in selecting your path through the infinitely large set of exponentially branching possibilities, and being guided some sense of "rightness," or beauty.

I've always (for some definition of "always") felt that finding conjectures tends to be a science. You gather data, you find patterns, you form hypotheses, you make predictions, you test your predictions, you gain confidence, and eventually you state your conjecture. So far you've been doing science.

Then you have to proof your result. Without an indefinable sense of a guiding "truth" you are then lost. Mechanical manipulations are of little value, you need a sense of where you are going.

There is the art.

Finally, when you have your proof, you need to give directions, to take others through the steps and thus convince them. That is exposition (of a sort), which is a combination of art and science, but a different art and a different science.

So yes, proving theorems is an art, and as with all arts there is much to be gained from training, but there must be the spark underneath to achieve real distinction.

That's what I lacked, although I have enough to see and appreciate it in others.


I like to think of it as Hofstadter suggests; theorem proving is mechanical, but there is a very beautiful art in selection of the axioms.


In some idealized form of math, proving theorems is indeed mechanical, but the branching factor is extremely high.


I like to think of it as Hofstadter suggests; theorem proving is mechanical

Does he really say that? If so, he must not have proven any. Few things require more imagination.


That's just wrong. Hofstadter never says that theorem proving is mechanical, and if he did, he'd be wrong.

Demonstrating a proof can be mechanical, which is why proof assistants such as Coq can work, but finding a proof, that's an art.


It is by logic we prove, it is by intuition that we invent. - henri poincaré

http://www-history.mcs.st-and.ac.uk/Biographies/Poincare.htm...


>theorem proving is mechanical

I have to disagree. As theorems become more complicated, proving them becomes anything but mechanical: one must choose between an infinite variety of approaches, many of which are equally valid.


"The moral of this story, it seems to me, is that we should make use of the idea of limited resources in our own education. We can all benefit by doing occasional "toy" programs, when artificial restrictions are set up, so that we are forced to push our abilities to the limit. We shouldn't live in the lap of luxury all the time, since that tends to make us lethargic. The art of tackling miniproblems with all our energy will sharpen our talents for the real problems, and the experience will help us to get more pleasure from our accomplishments on less restricted equipment."


Computer programming is neither science or art, but can be used for both. It is a form of expression. This article seems to take root in an urge to justify computer programming as a serious endeavor in a time where it was still new in the world of academia. In a way, this whole debate is about identity and self image (just like taking idolization of the hacker subculture to extreme lengths).


I think defining an artform is populist. Therefore, you have to start somewhere. The emergence of "Programming Appreciation" courses would be a tipping point.


Defining an artform is supporting the rights and power of the people in their struggle against the privileged elite? That's the only definition of populist (as adj.) I can find; do you mean that?


I think what is meant is that the artist cannot really define what he does as an art. There must be popular appreciation of the art to allow it to be defined as art, i.e. you cannot really have an artform until people who do not practice it, appreciate it.

When people who are not computer programmers can appreciate the art of computer programming, then you can define it as an art, not before.

I think of programming as something similar to carpentry. A craft capable of producing useful things that can also be appreciated as works of skill in their own right, and must be practiced regularly.


Hmm,

Art is lovely and creative and all. But if "flying a plane to the cleveland" was "an art, not a science", the passengers might be afraid to get on the plane.

Some parts of programming need have a certain standardization. I guess I'm still feeling burnt by "creative" scientific programmers who want their entire inspiration to exist entirely in matlab unavailable to any grubby practical hands. The quote Knuth criticizes seems like a reaction to schemes of this sort and so I have a bit of sympathy.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: