>> BILL: It’s my great pleasure to welcome Don
Knuth to visit Google today. Don and I were just talking, we met in the mid-1970s which–you
know, he’s a very young man, I’m a very old man, but it seems like it’s been awhile. But
Don has done a number of things. He’s got a remarkable number of awards. It’s hard to
say enough about him. I think many people consider him the, you know, the most prominent
living computer scientist. And I–he wanted to come today and have a kind of free-for-all
Q&A session so I hope you all came armed with questions. I think he may be available to
sign a book or two after this. I understand a few of you may have brought such things,
but let’s do that afterwards. But with that, let me welcome Don Knuth.
>>KNUTH: Hi. Okay, thanks, Bill. Yeah. I’m not sure if I can match Lady Gaga. But anyway,
when I was teaching at Stanford, our last day of class was reserved for all questions
answered. And I told everybody they could cut class if they wanted to but if they had
something that they wanted to, you know, they wanted to ask me, because they had paid their
tuition and everything; that was the time to do it. And they could ask questions on
any subject whatsoever except religion, politics or their final exam. Now, two years ago–about
two years ago at Google, I gave a talk that connect–that had something to do with religion.
And politics is kind of depressing, but if you want to ask questions about anything I,
you know, I’ll still give it my best shot but I can probably give better answers to
things that I know something about. And I understand that some people have been submitting
questions and then they’re going to choose the best ones to vote or anything, but anyway,
let’s, you know–I’m hoping that the questions are not frequently asked questions. Okay.
Currently in lead, okay, so, should I mention the guy who asked the question? Does this
show up on your table? Whatever. Okay, so who–let’s go, “What is the theorem or constructing
in the previous [INDISTINCT] is most counterintuitive and which one do you find most beautiful?”
Okay. Well, so this kind of ranking of things in a one-dimensional criterion, I’m kind of–no,
so first of all, we project onto the counterintuitive thing and beauty aspect. Okay, I mean, somehow,
you ask a parent which of their children they like the best or something. Okay, counterintuitive–is
anything intuitive to me? So the, I guess–going to more and more dimensions, our intuition
seems to–seems to be worse and worse. I understand George Dantzig once said that our intuition
in dimensions isn’t worth a damn. I don’t use that kind of language myself but anyway,
so I think the things that we’re doing in high dimensional spaces and some of these
methods now that are dealing with many degrees of freedom and somehow, we can still map them
down into something we can–we can control, those are pretty probably–the most beautiful
theorem in computer science, my goodness… It’s always the one–it’s the one that I–that
I learned most recently, I guess, is so–but there are a lot of contenders. And then there’s
this bond between computer science and mathematics which is hard to draw. So let’s see, right
now, I’m a big–I’m going to go for construct that I find very beautiful because during
the last year, I’ve been playing around with a data structure called ZDD which isn’t the
greatest name but it’s the best way that I know to represent families of sets. And families
of sets cover many, many, many applications of all kinds and it’s–and I played with it–you
know, I started out with it thinking I would just spend one page of volume four talking
about ZDDs and a year later, I had almost a hundred pages of introduction to it and
I was still learning more stuff about ZDDs. I think it’s a very beautiful construction
that needs to be studied much more and explore–and soon, people will find more reason for it.
Now, let’s see, should I alternate between this and people in the audience? Okay, so
let’s take someone–something from the floor.>>Rumor has it there’s an amazing pipe organ
located somewhere near where you live. Do you ever have anyone else, any other organist
play that pipe organ, and what’s your favorite song played on it?
>>KNUTH: Okay. So, yeah, I have–if you look in “Art of Computer Programming” volume three,
index under–did anybody hear–everybody hear the question? It’s about pipe organs. If you
look in the index to volume three under “royalties, use of,” it’ll take you to a page that shows–that
shows a picture that looks like organ pipe. And so after we had sold a few copies of volumes
one, two and three, I was able to fulfill dream and get a really nice instrument in
my–into my house. And I guess Alan Kay also has a great organ in his house down in Southern
California. And my father was an organist and I took some lessons when I was 12 years
old on how to play an organ. And then–and then I was called when I was down in Pasadena
as a grad student, I was–all of a sudden, the organist at the church I was going to
had a detached retina and they called me on Saturday and said, “Don, did you really take
a year of organ lessons when you were–when you were a teenager? Can you fill in?” And
I learned at that time that all the wonderful literature that’s been written for pipe organs
and I found some people down in Pasadena that had got an organ in their house. So that became
a dream of mine and I was able to realize that in the middle ’70s. And I investigated–I
was thinking maybe I could get somebody in Denmark to build one for me because they had
such beautiful instruments. But that turned out to be impractical because I couldn’t–they
couldn’t give me a fixed price on it. And so finally I found a really good builder at–near
UCLA and they build four organs a year and the one that’s in my house is a joy. So we
occasionally have people from the American Guild of Organists come for recitals and play
on it. And then, like if you–if you’re an organist, just see me afterwards and you can
come and try. Stanford students used to practice on it but that–there aren’t so many organ
students now as they used to be.>>Thanks. I’ll come see you afterward.
>>KNUTH: Yeah. Now, the next one here: “What kind of problems do you feel Google or the
industry at large should be working on but isn’t?” Okay. So Google–okay, well, I’ll
just–another great question. I’ll just give you one. In Google maps, a click back–a facility
that I can get the GPS coordinates, I can click on something on Google Map and then
I have a way to find out the GPS coordinates. That used to work last year until November
and it’s gone now. And if you Google GPS coordinates in Google Maps, you’ll find a lot of other
irate users who miss this feature, so okay. Another one from–I’ll take another off the
screen. “Most of the low hanging fruits in computer science have already been reaped
and dissected in detail. Do you still see any of them that surprisingly no one is trying
to reap?” Okay. So, you know, that’s–it’s true that a lot of things have been dissected
in detail but it all feels–including computer science it seems that people are always going
down the same roads. And it’s amazing to me the headway of how many–how many times another
low hanging fruit appears in my consciousness and both in computer science and even in mathematics
which have been around for, you know, hundreds of more years. Problems that are very–just
for example, last year, I–let see. How do I… I was finishing the eight volume of my
collected papers, all eight–and I got to–I got to give a plug this book because actually
I have to admit that I love it much more than I can explain. But the–but it was decided
many years ago, more than 20 years ago, that the papers that have been written should be
published in archival form with all the bugs removed and adding extra information about
the developments since the papers were written and divided into eight topics. The first topic,
literate programming and the second topic was general–computer science in general for
non-specialists and the third book was about typography and so on. Well, the eighth book–the
eighth of these eight was papers on fun and games, and I saved that up for dessert. It
was the one–you know, like, I knew that, you know, that if I kept that for last, it
would keep me going through all the other papers. And then, so here I have this–finally–though
I’m closing the door on the papers that I’ve been writing. From now on, I write anymore
papers. I add to “Art of Computer Programming” but I don’t–but–and I added 17–there are
17 chapters in that book of papers that were never before public. And two of those chapters,
I wrote last year which might–on topics that you might say are low hanging fruit, things
that, you know–research that was still there–in one case, it was about knight’s tours. I call
it long and skinny knight’s tours. And I studied the problem of how many ways are there to
take a board that has three rows and end columns and find a nice tour on this board. And it
turned out that it was a really interesting problem, a really challenging problem. It
taught me a lot of mathematics as I’m doing it. I can get the–I can tell you the exact
number for any end. And I can tell you the asymptotic numbers and I classify them into
different ways that surprise me. It seemed like low hanging fruit because you don’t need
much–I mean, people have been thinking about knight’s tours for 200 year. Still, there
was another open problem on knight’s tours called Celtic knight’s tours which are knight’s
tour that are especially beautiful because they don’t have three lines that come almost
touching each other and so you can–you can make beautiful Celtic knots from the patterns
anyway. Another example of something that was out there hadn’t been–hadn’t been asked,
two weeks ago, Ron Goem tells me about the following problem: take any integer, write
it binary, so you’ve got any–basically any sequence of zeros and ones. You can always–you
always cut it, any string of zeros and ones, you can always cut it into substrings so that
sum of the–consider each substring has a binary number. The sum of those binary numbers
is a power of two. It’s not easy but there it is in very, in a sense, low hanging I would
say. You know, try it out but don’t start thinking about it just before trying to go
to sleep because I was just–I was just reading the information–what is it called, the learning
in the loo or something like this? It tells you how to get a good night’s sleep. So anyway,
surprisingly, there’s still a lot of low hanging fruit and just keep asking questions. It’s
not–it’s not really that likely that it’s been totally explored yet. Yeah?
>>Earlier, you were talking about GPS coordinates or–sorry…
>>KNUTH: Yeah.>>…about that [INDISTINCT] in Google Maps?
There’s a Lab feature where you can get that on your mouse cursor now.
>>KNUTH: There’s a what?>>You can turn on a Labs feature.
>>KNUTH: A Labs feature?>>Yeah, if you do the settings.
>>KNUTH: Okay. Well, tell me about the way it–because it used to be that through my
maps I could get something called position finder but they discontinued the [INDISTINCT]
they use other people’s java code during my map.
>>Well, yeah, I’m not too familiar with what you’re using but if you just want GPS coordinates,
you can still get it.>>KNUTH: You know, I can do it easily with
Google Earth. But with Google Maps, I want to be able to do it easy. And I searched and
nobody had–nobody had published that solution so.
>>Well, you can get it with the mouse cursor.>>KNUTH: You can get it with that?
>>It’s just the mouse cursor.>>KNUTH: A mouse cursor?
>>Yeah. There’s a plug-in for it.>>KNUTH: Oh, plug in.
>>Or a Labs plug-in.>>KNUTH: A Lab plug-in. Okay. All right.
Well, thank you.
With the increasing processing power and adoption of machine independent high level languages,
it’s a common perception that being close to the metal doesn’t matter anymore. What
impact does this have on computer science as a field of study?
I don’t like–I don’t agree that it doesn’t
matter anymore. It doesn’t matter as much to as many people but that’s just relative.
And absolute numbers probably just matters–I mean, we can still use more power. We can
still use it. There’s all kinds of problems where you want to push the envelope and do
better and so, if you just–lots of problems, there’s no point in my–in my spending much
time on something if it’s going to–if it’s going too–you know, to make–to get the answer
in a microsecond instead of 10 seconds. So there’s no point in–you know, so I write
really inefficient programs to solve certain problems but [INDISTINCT] when I–when I was
studying these three binary knight’s tours, I had to find the inverse of a 700 by 700
matrix of polynomials and so I had to–I had to think about it and I had to know a bit
of what’s going on. And if people–imagine a whole generation growing up with this philosophy
that you don’t need to be close–you don’t need to know anything about the metal underneath,
then the programs they write are going to be really bad. And so then, of course, there’ll
be lots of low hanging fruit for people who want to make improvements. Okay, next question.
“Literate programming has never really taken off although some scripting languages have
improved code readability somewhat. What, if anything, do you think has hindered its
adoption?” Yeah. That’s a question that, of course, I can try to answer but literate programming
is so close to my heart that I’m totally biased about it and so I–so you have to discount
what I say. The–again, in absolute numbers, we’ve got tens of thousands of people who
use literate programming. But still, that’s less than 1% probably. And–but I’ve got at
least one program that I wrote that was so complicated that I totally believed that I
would never ever have been able to get the program finished at all if I didn’t have literate
programming to organize my thoughts and make it done. This is the–this is the meta-simulator
for my MIX computer. I had got–I had got this risk machine that you can configure in
basically infinitely many ways. You could say–you can say for each instruction what
functional unit belongs to how much of a pipeline you wanted to have, all kind of caches that
you can control in multiple issue of instructions and did advanced prediction methods. And you
can imagine–you can simulate what would it be like if you had a processor with many more
things then we know how to build at the moment. But anyway, I wrote this simulator and it
was the hardest challenge that I ever had as far as programming, I think. And with literate
programming, I was able to finish it in a year but without literate programming, I think
I would’ve totally flopped. So it not only–for me, literate programming isn’t only nice;
it’s sort of essential. It’s also nice because I write average of maybe one program a day.
Some of them are longer than, you know, some of them are pretty short. But with this literate
programming method, it really works for me and makes me happy. Now, so on the other hand,
you know, fewer than 100% of the world loves it. It’s because the way that–you know, I
read a lot of code and there’s a general and a lot of the best code that I see out there
adheres to a certain set of conventions that are pretty good. They’re nowhere near as good
as literate programming but still, they’re good enough that they’re adequate. And so–and
they’re understood by a huge community and so people can–you know, people know this
style and it’s a lingua franca. For me to say drop that and go to literate programming,
it’s like saying, “Well, you know, let’s go to Esperanto instead of English,” or some
other language that might be even better than Esperanto, you know, prove that it’s a much
more logical language. Yet English is good enough and I’m not going to change from English.
So, you know, why should I tell somebody else to change the style of programming that they
all can use and it’s good enough? So, Jon Bentley might have hit the nail on the head
because the people who like literate programming the best are people who also like–seem to
be people who also like to write, you know, bloggers and teachers. Because when you’re
writing a literate programming, you’re like in front of a class, you’re writing for a
human audience rather than for the computer to understand that you’re–you’re trying to
explain something to another programmer. So, there’s a certain percentage of the world
likes to write and there’s a certain percentage of the world that’s good at programming, and
you have to be in the intersection of those two in order really level your programming.
So, that might be why it hadn’t taken off. Still if I–you know, I think that if Google
managers would sort of, you know, say, “Let’s have a test here and we’re going to do some
system with literate programming,” you find that, you know, that it might in fact make
Google even better than it is now. But anyway, I’m not going to change and I think a lot
of people understand–I can point to some large programs that probably more people understand
these difficult programs than any other–than the other programs on their side. So, that’s
my take on that. One more thing though, my book on fun and games, the last chapter of–okay,
I don’t know how many people know this, but my first publication was in MAD Magazine and,
you know, when I–when I was a freshman in college, I–this article came out and so now,
that’s chapter one of my–of my papers on fun and games. The last chapter is equally–is
equally crazy and it’s a–and it’s a smooth talk that I gave last summer where I basically
promised that–I basically–people were asking about the future of tech and I said, “Well,
I’ve decided that everything I did on that project was a mistake and so I’m starting
this–I’ve secretly started this company and I’m–and I’ve got this new product that’s
coming out that’s not only going to do three-dimensional type setting but it’s also–you know, including
the manufacturing on demand. And it also includes things like search engines and social networking
and, you know, it sells differential equations. And, you know, and it’s all written in scheme.
And of course, we gave up on literate programming because everybody knows, you know, documentation
is a pain.” Okay? So, that was the hardest paragraph for me to write. But I thought I
would–I used some kind–some kind of book ends to have one. You know, I started out
in MAD magazine and I had to have something to match it as my final publication. Okay.
Jeff?>>Sir, are you using call/cc on that program?
>>KNUTH: Am I using call piece?>>JEFF: Call/cc on your scheme programs?
>>KNUTH: Oh.>>JEFF: All right. Here’s my question. It’s
a mass search–mass search question. So, this morning I used social search to find the name
of such a silly technique called propensity score matching. And so sometimes I know that
there’s a mathematical concept that exists but I don’t know what the name of it is and
I want to go find out about it. Integer sequences is a good example of a search technique that
allows me to go find, you know, find…>>KNUTH: Yeah. The handbook of–the online
encyclopedia of integer sequences, you can calculate your way into the literature if
you can…>>JEFF: Right.
>>KNUTH: …if you can compute the first six terms of some sequence, you’ll find if
there’s anybody else that’s ever been interested in that.
>>JEFF: Right.>>KNUTH: Yeah.
>>JEFF: So that’s a–that’s a good solution. So–but that doesn’t solve all problems. So,
how do you–when you know that there’s been a mathematical concept that you’ve stumbled
across but you don’t know the name of it…>>KNUTH: Yeah.
>>JEFF: …how do you find out what that name is so you don’t have to go reinvent everything?
>>KNUTH: Okay. Well, the answer of the question, I’m 73 years old now and I developed a bunch
of friends and so I know–so I…>>Social search then.
>>KNUTH: Yeah, right. [INDISTINCT]. So, I know who to ask, you know, but if it’s–it
is a completely new field, then I haven’t got any good method myself. But I–no, but
I often–you know, there are certain questions that I ask Ira Gessel or others I ask, Richard
Stanley or, you know, Jeff Almonds, you know, et cetera. And, you know, fortunately, I can
go down the hallway at Stanford and get the answers to most of these questions and we
get together for lunch every week. So, that’s my solution, but it’s not–it’s not an algorithmic
solution at all.>>JEFF: Yeah. You don’t–you don’t scale
very well.>>KNUTH: I don’t what?
>>JEFF: You don’t scale.>>KNUTH: I don’t–well…
>>JEFF: I can’t replicate you to, you know…>>KNUTH: Well, in fact, that would be–that
would be terrible. I mean, if there were–if–no. Let’s face it. If there were 10 people like
me in the world, we wouldn’t have time to read each other’s books.
Okay. “How many P!=NP proofs have you seen?
What is your opinion on this, P=NP or P!=NP? When do you think it’s going to be settled?”
Oh, boy. Okay. So, I got one last week, I have–and a guy sent me a Java code that seems
to prove that P=NP and I’m pretty sure that he’s finding maximum clicks and I’m pretty
sure that the way he’s generating the data is from a set of problems that, in polynomial
time, you’ll be able to find the maximum clicks, you know, N3 steps on the average. So it looks
like–you know, it would look like P=NP in that because the maximum click is one of those
NP complete problem. On the other hand, you know, you got to be able to solve all the
problems in a maximum polynomial number steps in order to have P=NP. Still, his algorithm
might be really interesting on practical problems. And so, I’ve–I filed it away to read the
code when I–when I get to the point when I’m–maybe a year from now when I’m going
to be writing up techniques for maximum clicks. Okay. Now, I–but I’ve done–I’ve done my
lifetime share of checking proofs that P=NP and P!=NP and some years ago, I passed that
threshold. And so I’ll never do it again. But still, there’s a pretty serious thing
that a lot of people looked at about six months–six months ago, wasn’t it? And it turned out that
it didn’t pan out, but still the ideas couldn’t be dismissed out of hand. Now, I’ve also read
proofs about squaring the circle, too, in my youth. Okay. Now, I have this–to my surprise,
I’ve found that I had already given this opinion 15 years ago, but I’m afraid what’s going
to happen in this question is that somebody maybe 50 years from is going to prove that
P=NP. And the proof is going to be something like this that it equals NP because there
are only finitely many reasons why it couldn’t. In other words, a proof that could give us
no algorithm, it just proves by–that there exists, you know, some exponent so that–but
an algorithm that we’ll never know is just–it’s out there. And so then, that was the wrong
question to ask it would–even me. Now, we already have cases like this. There’s some
deep theorems in the graph theory that say that certain kinds of graphs, in order to
test for these graphs, you can do it polynomial time but nobody knows the algorithm. We just
know that there’s only a finite number of cases to try for but we don’t know what those
cases are. We just know that that’s not infinite. And, you know, the people [INDISTINCT] that
describes some of the paradoxes coming out of it. So, it’s looking to me more and more
like it’s going to be that the number of possible algorithms is huge, huge and to show that
none of those is polynomial time might just be long.
>>Hi. I don’t know if this touches more on philosophy but do you believe that programming
is more of an emergent behavior of math or it’s its own thing that just happens to be
well-described by math?>>KNUTH: Okay. Connection between programming
and math–emergent from math. I find my own feeling is this: that Mathematics and Computer
Science are the two unnatural sciences, the things that are man-made. We get to set up
the rules so it doesn’t matter the way the universe works; we create our own universe
and decide, you know, we can design our computational models and we can–we can make axioms for
mathematical problem. While physicists and chemists and biologists and so on are–have
a different thing. They want to know what’s actually in the real world. Now–so our–so–but
are computer science and mathematics really two sides of the same coin or are they somehow
different coins? And I feel strongly that they’re different but I tried to convince
Bill Thurston and he–and he disagreed with me. My opinion though is I can feel rather
strongly when I–when I’m wearing my mathematician’s cloak versus when I’m wearing my computer
scientist’s cap. You know, I’m in one mode or the other sometimes. And sometimes, what–so
to me, the biggest difference is mathematicians are mostly working on unified theories where
you have one or two axioms that are sort of applying all the way through while computer
science are–I’m more dealing with very heterogeneous things where there’s case one, case two, case
three, and the–and we have different things that happen in different states. And we have
an assignment statement where we can just say X is placed by 2X. So all value X is gone.
Mathematicians, that’s a weird concept to mathematicians. So, I think that these are
different mentalities, different approaches were I can sometimes even say, “Well, as a
computer scientist, I got stuck here.” Not going to try to translate my problem into
a mathematical and then I, you know, then I think mathematically for a while and that
moves me to another thing. And then mathematically I’m stuck, and then I go back and put on my
programming hat again and try to do something constructive or figure out a data structure
that helps me understand what the mathematic side. So, I think they’re different but I
can’t convince Bill Thurston. Now, it’s–the other thing that computer scientists–so I
can conclude this by saying we got our–it’s plusses and minuses. So, there are problems
in the world that mathematicians don’t do very well at because they’re sort of inherently
heterogeneous. Nothing uniform is going to explain them all. And so, mathematicians aren’t
going to–couldn’t be comfortable with that at all and computer scientists can cut through
like a butter knife, you know. But on the other hand, there are problems that do have
a uniform thing and a computer scientist might not see it because we can–we can find a case
one, case two, case three, a way to attack it which is actually very inelegant and missing
the underlying unity. So, to me, that’s the difference.
>>Thanks.>>KNUTH: You know. “How has your involvement
with music affected your computer science and vice versa?” I think there’s a common
thing about patterns and–so–but it’s just a love of patterns that seems to have a high
correlation with the kind of thinking that goes on in both mathematics and computer science.
At Stanford, we had–one time our–the lady who was sort of our department executive head,
she had come from the–from the law school and she said there was incredible difference
coming from the law school to computer science department. In music, the students were interested
in music, musicians. It was all completely different than she had experienced in the
other school. Anyway, I think there’s probably something to that, although–so, in the ’70s,
we used to ask our incoming grad students the first question would be “What’s your instrument?”
And we had cases were, like the [INDISTINCT]. I don’t know if you remember those sound [INDISTINCT]
oral exam, he proceeded by a cello recital. And you know, we would–we would have student
parties and we would–we would do chamber music. And so it was–it was much more in
the ’70s than in ’80s, because one year, I got to the incoming grad students and I said,
“What’s your instrument?” And it turned out that one guy played harmonica and another
one said that he did an Abba imitation. And nobody else did music at all that year. And
I said, “well, you know, what I–what’s your main hobby?” And it turned out that more than
half of them were really into bicycle riding. So there was–there was a change somehow in
the population that I don’t understand why and I don’t know what it is now. Anyway, I
do believe that these things go together but it’s maybe–not a direct, you know, I–if
I live long enough, I’d like top compose music with some of my algorithmic ideas that I have.
And so, I maybe I could influence music that way. How does music actually influence a program
that I write? I don’t know if I can point to anything direct there. Next question here
was: “You are famously known for your interest in contributions to digital typography. Over
30 years after the release of TeX, what are your thoughts on the current state of typography
as it exists on the web and other digital media?” And basically, I’m upbeat about the–about
the way, you know, I got the–I got a Nexus S and it has beautiful fonts on it. I love
to–you know, I love the typography that I’m seeing. And I think that people are starting
to understand fonts. I guess–I mean, the only predictions that I–I’m famous of that
at predicting. In fact, that’s probably one of the–the fact that I can predict how hard
something is is the only reason that I started working on typography in the first place and
since–and “Art of Computer Programming” and bunch of other stuff. But I did predict that
font designers would become heroes and that turned out to be fairly close to the…
>>So I have a question very similar to the, like, one of the previous questions. So, now
kids are growing up with using computers like on the cell phones, everywhere, like the small,
small kids. And like–but the computers became like really, really complicated. So what do
you think will be the long term impact? Will we actually have more people understanding
how it all works or we’ll going to have like in magic, you know, that only few actually
understand?>>KNUTH: This is–this is a paradox and I
wish I–and I wish I knew. I just give you a couple of–so I know that my grandkids are
pretty–are pretty fascinated by some applications that you might say are fairly like programming,
and they put together objects that–and the object can move. And I can’t remember the
names of the systems that they do. So they’re doing more than just–than just passively
playing games, although games are–you know, I must say I spent hundreds of hours rolling
dice when I–and moving horses along a track when I was–when I was in high school. I mean,
and now the equivalent is doing things on them. And on the other hand, Nick Trefethen
told me three years ago his son is going to the best high school in Oxford and Nick went
there to talk to the kids in his son’s school, and he found that not one of them had ever
written a computer program or even though about it. So, this is–so anyway, it’s a very
strange situation that we’re–that we’re in. And you think that more–I mean, in the old
days, people were learning Logo and Karel the Robot and stuff. And now there’s many
more systems like that which are–which are quite fascinating. You probably know the one
called ChucK from Stanford and then MIT has this one that was featured in ACM last year,
and there are–there are more. But I don’t know–I don’t know if it will change the–throughout
my career, the number of people–of every hundred of people, it’s been pretty steady
over my career that two out of every hundred seems to be born to be a computer scientist.
You know, they’re geeks like me. They have–we have a peculiar way of organizing stuff in
our head and that happens when you’re young at some point. And I view computer science
as something that I do because I just happen to be good at it, not because I had an urge
to compute, you know. “Programming today is not fundamentally changed from programming
decades ago. How has the industry failed in this regard and how could it change in the
future?” Okay. I wish I could answer about industry that I–my own expertise is in writing
books and I don’t know. “How many people have actually cashed the $2.56 checks?” Now, I
think some of you know that I reward people for finding errors in my books. And as–and
I started that–it used to be $1.00 back in 1960s and then it, you know, in the second
edition, it went up to $2.00. At some point, it switched over $2.56 which seemed a more
appropriate number. I had to–and over the years, I–people used to cash those checks
a lot and it was–it followed up our checking account. So, I got my own, you know–so, I
got my own account because others were not cashing. Well, now it turns out that the electronic
funds transfer is incredibly insecure. Banks have almost no security. I mean, the banks
believe any electronic message that they get. And crooks have learned how to do this, so
that if somebody looks at a check that you write, you write the personal check that has
numbers at the bottom, if a clerk knows those numbers, he can turn himself up an ATM card
and withdraw money from your account. And anyway, I had to–I had to close three accounts
because of these numbers were–I mean, I have examples where the check says Bank of America
Atlanta, Georgia, and at the bottom, it has routing number of my checking account in Palo
Alto. And, you know, people would–look like payroll check and so, you know, 400 bucks,
cash that at the supermarket. And–but others were actually, as I said, making ATM cards
and doing withdrawals and ordering all kind of fancy computers and stuff, I think, probably
somewhere in Eastern Europe. Having–so anyway, this whole banking system is all screwed up.
So, about four years ago, I started my own bank and you can find it on the web, it’s
called, “The Bank of Sans Seriffe” and instead of–and I still write checks but the–but
you don’t cash them because it doesn’t say pay to the–it says, “Deposit to the account
of.” And it’s a virtual bank so you can look on there and you can find the names of everybody
who’s got an account at the Bank of Sans Seriffe and how much they’ve done. And I wrote 21
of those checks last month and I’ll write probably 10 this month so far from what I
know, things that came in. Last week, I got a letter from China. A guy found an error
in volume one from 1960–it hadn’t been noticed since 1968. Finally, somebody read that page
carefully. It’s true. So, it’s very valuable to me, you know, trying to make these books
more and more correct. “What is the–do I think the most effective way to get children
enthused about computer science?” I guess we got good tools for them to play with but
I was best at understanding children when I had children who are of that age. I mean,
when I was–when my kids were in first grade, I could design curriculum for 1st graders
and then the next year I could design curriculum for second graders. Right now, that’s wiped
out of my–but I think part of it is they have to–they have to have a way to be creative
and share their creations with their friends. So, that’s probably going to the most effective
way; have some kind of thing where kids can make a construction that they’re proud off.
“Did Steve Jobs tell you he’d read all your books and how did you respond? Bye.” Okay.
Now, there’s a funny story about the–that you can look up. And the true story, I believe,
is on the Russian version of the Wikipedia because the guy in Russia wanted to check
out the source. And the fact is that I did–I had met Steve several times and the most likely
thing is that he said that I said, “Oh, that’s wonderful. You’re the first person I ever
met who has,” or something like–has read them all. But anyway, I defer the rest of
the story. You got a question?>>So, are you familiar with the field of
Natural Language Programming? Or sorry, Natural Language Processing.
>>KNUTH: Excuse me?>>Natural Language Processing.
>>KNUTH: Natural Language processing. Well, I use Google Translate an awful lot. And,
you know, I know a little bit about the way it works. But…
>>So, from what little you know, do you see it having any effect on the field of literate
programming or programming in general?>>KNUTH: No. Well, it sounds to me like a
different–it’s certainly a huge impact on artificial intelligence and a lot of algorithms
that are–that are used in order to deal with things that are… To me the–I’ve always
looked for a way of getting automatic translate for that. I wouldn’t have to use a dictionary
but I only had to learn a dialect of English when I’m dealing with things from other languages.
And this seems to be happening now. But I haven’t got anything profound to say about
>>KNUTH: A friend of mine gave me a wonderful book. It started out with Alice In Wonderland
and translated it by machine into French. And then, translated that into English and
back into French until they had a stable thing, you know; after two cycles, you get the same
thing back again. And then they printed the whole thing into a stable form. And so, what
is it? So the rabbit is saying, “Oh, precious,” instead of, “Oh, dear.” Anyway…
>>Could I…>>KNUTH: Yeah.
>>I’m going to interject here. I’m going to take the liberty of asking the last question.
>>KNUTH: Oh, okay.>>So, you know, years and years ago, when
I was studying computer science, there was a lot more expectation for Mathematical training.
And I noticed over the ensuing 30 or 40 years that there’s less and less dependence on mathematics
and my impression is that students are less trained in that. I remember it was [INDISTINCT]
Stanford for a number of years about whether to have an undergraduate degree in computer
science and so forth. And I think there was a presumption of people should have mathematics
training and so for the before they went into computer science. Do you think computer–how
is computer science changed as the role of mathematics has become less in the field?
And, you know, I’d interested in your view.>>KNUTH: Yeah. Okay. Another great question.
In fact, all of these questions have been really, really terrific. So, there’s a lack
of computer science–a good computer science that can be done without a lot of mathematics
now. But there’s just as many examples of really cutting-edge Mathematic going into
computer science as well. I mean, I’ll just go through the–through our building and,
you know, computer graphics, all the rendering methods that are heavily based on mathematics
and, you know, the new camera techniques are incredible. People are using–are using high
mathematics in artificial intelligence, all of the [INDISTINCT] network, the calculations
with robotics are requiring–are requiring great mathematics, you know. All of our–so
I don’t think however that I need a terrific amount of mathematics to come up with Facebook.
But still, I understand the way Facebook is able to do its magic is by–is by actually
putting everybody’s Facebook page in one giant computer. Anyway, that–and a certain mathematic
knowledge in order to understand caching and so–yeah, but not traditional mathematics.
So, mathematical paradigms are still there. You have to know the concepts of rigorous
proof for at least half of computer science now, I would say. But there’s also lots of
other things that are–when we talk about the design of GUIs or something like that
where you don’t need so much to many things.>>That’s true. But I’ve heard a few people
say that reading your books–your books the arts, you know, “The Art of Computer Programming”
is challenging if you don’t have the right mathematics background.
>>KNUTH: Yeah.>>Which I think is true. But…
>>KNUTH: Yeah–no, it’s not easy to read my books but it could be a lot harder. I tried
to make them as simple as possible but I haven’t succeeded in making it, you know, a breeze.
>>So, with that, I want to thank Don again for coming by and answering questions and
thank you for providing questions. Thanks again.