Ken Thompson
472
So if you’re doing some general-purpose task that you don’t know who your
real users are, you just can’t do that. Plus, garbage collection fights cache
coherency massively. And there’s no garbage-collection algorithm that is
right for all machines. There are machines where you can speed it up by a
factor of five or more by messing around with the cache. They should be
tied to the machine much more than they are. Usually they treat them as
separate algorithms that have nothing to do with machines, but the cache
coherency is very important for garbage-collection algorithms.
Seibel: Do you think of yourself as a scientist, an engineer, an artist, a
craftsman, or something else?
Thompson: I don’t know. I hate to use the word scientist because I think
it’s elitist. And implies a PhD. There’s no certificate that says “scientist” on
it when you complete the scientist course, so I don’t like the term or use it.
Engineer, I do have a degree that says “engineer” on it, so I can use the
word engineer. And when I fill out an occupation I either put engineer or
programmer because I can justify those. But mostly I just don’t worry about
it.
Seibel: Well, leaving aside what you call yourself, who do you feel the most
affinity with? Is it a physicist, a guy who builds bridges, a painter, or a
carpenter?
Thompson: Kind of the lower things. I believe a craftsman but with a
certain amount of artistry to keep it alive.
Seibel: How do you identify talented programmers?
Thompson: It’s just enthusiasm. You ask them what’s the most interesting
program they worked on. And then you get them to describe it and its
algorithms and what’s going on. If they can’t withstand my questioning on
their program, then they’re not good. If I can attack them or find problems
with their algorithms and their solutions and they can’t defend it, being
much more personally involved than I am, then no. At the same time you
can get a sense of enthusiasm. It’s not something you ask directly, but in the
conversation you’ll come with this enthusiasm-ometer, and that is
tremendously helpful for me. That’s how I interview. I’ve been told that it’s
devastating to be on the receiving side of that.