Programming Philosophy: Interviews with Donald Knuth and Niklaus Wirth (1985)
archive.org
archive.org
Best viewed in 2-up mode (unless you're on mobile or have a very narrow screen): https://archive.org/details/Computer_Language_Issue_09_1985-... — the Knuth interview continues on the left-hand pages, and the Wirth interview on the right-hand pages.
I started posting a comment with interesting quotes from these two interviews, but it got very long. :-) But a couple of highlights of the Knuth interview, for me, were:
- Wirth accusing Knuth, in the politest possible way (“I have always admired his work”), of writing unstructured programs, and Knuth with a spirited defence of goto-s and pointers and knowing what the machine is doing,
- Knuth on his philosophy of science and art:
> Art, in one of its main senses, is something human beings can do, but we don't know how to automate. Science is something we understand well enough to formalize and mechanize. As science advances, we know more about the world. And we're able to automate more.
> When someone says, "Let's convert an art into a science," he's saying, "Let's let the science catch up to where the art is, to what human beings can do." What happens is. as science advances, art also advances, but even further. When we learn more science, then our human abilities jump forward too. Then there's more for science to catch up with. I hope science never overtakes art; I can't imagine that happening.
(As an aside, not understanding this core philosophy of his is IMO why the font design community had (and to whatever extent aware, still has) so many misconceptions about METAFONT, and why it never caught on.)
He had touched on this 11 years earlier, in his 1974 Turing Award lecture (Computer Programming as an Art, http://www.paulgraham.com/knuth.html) and said it crisply and memorably another 11 years later, in his 1996 foreword to the book “A=B”:
> Science is what we understand well enough to explain to a computer. Art is everything else we do.
Knuth: "I think future languages should be a combination of a programming language and a document language."
Wirth: "Ada is an uneconomical language. It throws too many things at you... C is becoming popular because UNIX is written in C... But I don't think it's a step forward."