Wednesday, March 4, 2015

knuth's radical perspective

 image licensed with creative commons by Tim Morgan

legendary algorithm and computer science pioneer, Donald Knuth, gave a series of lectures at MIT about God and Computers circa 2000. this was the first time they had all the lectures in the series given by the same person (previous series had a different person giving each lecture).

Knuth's lecture series was captured in book form in Things a Computer Scientist Rarely Talks About which i'm currently reading. in his introduction to the series, he offers insight about how he's no more qualified to give lectures on religion than anyone else, but he shares a "computer scientist's perspective" to the metaphysical discussion.

during the Q&A portion of that introduction, someone asked this question:

"You've referred several times to a computer scientist's perspective. How do you distinguish that from other points of view?"

his response rang very true to me and my experience and was explained with such insight i've been thinking about it ever since i read it (emphasis mine):

"i have kind of a radical idea about this, but i've had it for 30 years now and still haven't found anything wrong with it. namely, suppose someone asks, "why did computer science jell so fast during the 60s, all of a sudden becoming a department at almost every university in the world?" i answer that the reason is not to be found in the fact that computers are so valuable as tools. there's not a department of Electron Microscope Science at every university, although electron microscopes are great and powerful tools.
i'm convinced that computer science grew so fast and is so vital today because there are people all over the world who have a peculiar way of thinking, a certain way of structuring knowledge in their heads, a mentality that we now associate with a discipline of it's own. this mentality isn't sharply focused, in the space of all possible ways of thinking; but it's different enough from other ways -- from the mentalities of physicists and mathematicians that i spoke of earlier -- that the people who had it in the old days were scattered among many different departments, more or less orphans in their universities. then suddenly, when it turned out that their way of thinking correlated well with being able to make a computer do tricks, these people found each other.
i believe it was this way of thinking that brought computer scientists together into a single department, where they met other people who understood the same analogies, people who structured knowledge roughly the same way in their heads, people with whom they could have high-bandwidth communications. that's what i meant when i referred to a "computer science perspective."
i didn't choose to be a computer scientist because my main mission in life was to advance computation. i chose computer science simply because i was good at it. for some reason, my peculiar way of thinking correlated well with computers. moreover, i'm sure that people had this way of thinking hundreds of years ago; when i read old publications i think i can recognize the authors who would have been computer scientists if they had lived in the time of computer science departments. there was a time when physicists were called natural philosophers, and there was a time before chemists belonged to departments of chemistry. from considerations like this i believe that computer science will eventually take it's place on essentially the same level as every other field of study, say 100 years from now; the fact that this mode of thinking never had a name until quite recently is just a historical accident.
one of the main characteristics of a computer science mentality is the ability to jump very quickly between levels of abstraction, between a low level and a high level, almost unconsciously. another characteristic is that a computer scientist tends to be able to deal with nonuniform structures -- case1, case2, case3 -- while a mathematician will tend to want one unifying axiom that governs an entire system. this second aspect is sometimes a weakness of computer science: when we encounter a situation that can be explained by one axiom, we might still give it five, because five different rules are no sweat for us. but we're at our best in circumstances when no single principle suffices; then we can handle the discrepancies between different cases very nicely. 
...
so that's what i think tends to be different about computer scientists. experience shows that about one person in 50 has a computer scientist's way of looking at things."

it's not surprising that Knuth is focused on the academic world, because that's his world, but the vast majority of computer science practitioners today are not in academia. a few years back i was geeking about something to my brother-in-law and he gave me a quizzical look and said "what did people like you do 100 years ago?"

i thought about the question for a minute and came up with an answer: "we were farmers like everyone else ... except we did it differently."

No comments:

Post a Comment