ing most of their life to software than I
had previously done, because I didn’t
realize how much more bandwidth of
my brain was being taken up by that
work than it was when I was doing just
theoretical work.
computers aren’t everything:
religion is part of his life, too.
I think computer science is wonderful, but it’s not everything. Throughout my life I’ve been in a very loving
religious community. I appreciate
Luther as a theologian who said you
don’t have to close your mind. You
keep questioning. You never know the
answer. You don’t just blindly believe
something.
I’m a scientist, but on Sundays I
would study with other people of our
church on aspects of the Bible. I got
this strange idea that maybe I could
study the Bible the way a scientist
would do it, by using random sampling. The rule I decided on was we
were going to study Chapter 3, Verse
16 of every book of the Bible.
This idea of sampling turned out
to be a good time-efficient way to get
into a complicated subject. I actually
got too confident that I knew much
more than I actually had any right to,
because I’m only studying less than
1/500th of the Bible. But a classical
definition of a liberal education is that
you know everything about something
and something about everything.a
on his working style...
I enjoy working with collaborators,
but I don’t think they enjoy working
with me, because I’m very unreliable. I
march to my own drummer, and I can’t
be counted on to meet deadlines because I always underestimate things.
I’m not a great coworker, and I’m very
bad at delegating.
I have no good way to work with
somebody else on tasks that I can do
myself. It’s a huge skill that I lack.
With the TeX project I think it was
important, however, that I didn’t delegate the writing of the code. I needed
to be the programmer on the first-generation project, and I needed to write
the manual, too. If I delegated that,
I wouldn’t have realized some parts
a See 3: 16 Bible Texts Illuminated, by Donald
Knuth, A-R Editions, 1991.
“i’m worried about
the present state
of programming.
Programmers now
are … supposed to
assemble reusable
code that somebody
else has written…
Where’s the fun in
that? Where’s the
beauty in that?”
of it are impossible to explain. I just
changed them as I wrote the manual.
What is the future
of programming?
A program I read when I was in my first
year of programming was the SOAP II
assembler by Stan Poley at IBM. It was a
symphony. It was smooth. Every line of
code did two things. It was like seeing a
grand master playing chess. That’s the
first time I got a turn-on saying, “You
can write a beautiful program.” It had
an important effect on my life.
I’m worried about the present state
of programming. Programmers now
are supposed to mostly just use libraries. Programmers aren’t allowed to do
their own thing from scratch anymore.
They’re supposed to assemble reusable code that somebody else has written. There’s a bunch of things on the
menu and you choose from these and
put them together. Where’s the fun in
that? Where’s the beauty in that? We
have to figure out a way we can make
programming interesting for the next
generation of programmers.
What about the future of science
and engineering generally?
Knowledge in the world is exploding.
Up until this point we had subjects,
and a person would identify themselves with what I call the vertices of a
graph. One vertex would be mathematics. Another vertex would be biology.
Another vertex would be computer science, a new one. There would be a physics vertex, and so on. People identified
themselves as vertices, because these
were the specialties. You could live in
that vertex, and you would be able to
understand most of the lectures that
were given by your colleagues.
Knowledge is growing to the point
where nobody can say they know all of
mathematics, certainly. But there’s so
much interdisciplinary work now. We
see that a mathematician can study
the printing industry, and some of the
ideas of dynamic programming apply to book publishing. Wow! There
are interactions galore wherever you
look. My model of the future is that
people won’t identify themselves with
vertices, but rather with edges—with
the connections between. Each person is a bridge between two other areas, and they identify themselves by
the two subspecialties that they have
a talent for.
finally, we always ask
for life advice.
When I was working on typography, it
wasn’t fashionable for a computer science professor to do typography, but I
thought it was important and a beautiful subject. Other people later told me
that they’re so glad I put a few years
into it, because it made it academically
respectable, and now they could work
on it themselves. They were afraid
to do it themselves. When my books
came out, they weren’t copies of any
other books. They always were something that hadn’t been fashionable to
do, but they corresponded to my own
perception of what ought to be done.
Don’t just do trendy stuff. If something is really popular, I tend to think:
back off. I tell myself and my students
to go with your own aesthetics, what
you think is important. Don’t do what
you think other people think you want
to do, but what you really want to do
yourself. That’s been a guiding heuristic for me all the way through.
and it should for the rest of us.
thank you, Don.
Edited by Len Shustek, Chair, Computer History Museum,
Mountain View, CA.
© 2008 ACM 0001-0782/08/0800 $5.00