Knuth: Computer Programming as an Art
paulgraham.com
paulgraham.com
Because if these kinds of ideas were articulated 35 years ago, I'd expect that by now we would have progressed much more.
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.
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'.
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.
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.
Does he really say that? If so, he must not have proven any. Few things require more imagination.
Demonstrating a proof can be mechanical, which is why proof assistants such as Coq can work, but finding a proof, that's an art.
http://www-history.mcs.st-and.ac.uk/Biographies/Poincare.htm...
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.
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.
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.