This morning I attended a talk by Alan Kay at the University of Toronto. Very interesting, but also frustrating that it was cut short without Q&A; his talk was controversial and it would have been great to see some debate. Kay is one of the pioneers of modern computer science, having coined the term "object oriented" and led the team that developed SmallTalk at Xerox PARC. For his long list of achievements, he was honored with the ACM Turing Award in 2003 (the highest award in computing).
Kay's talk today was about the future of computing. His belief is that CS as a field has become derailed, that we have become so caught up in building applications that we have neglected the pursuit of new paradigms. He started the lecture with a brief history of computing, showcasing pioneers in human computer interactions and object oriented design. The lesson was that we have not only lost touch with the path laid out for us but that we have completely forgotten our own history (the comparison: most graduate students do not know Engelbart beyond his invention of the mouse, whereas all Physics students know of Newton's accomplishments). In his words, CS has become like "pop culture", a pursuit of money and ignorance of history.
There were other flowery quotes throughout the lecture. In discussing the bloat of our current personal computing packages (Microsoft Vista + Office), he displayed an image of a rotting pile of garbage and suggested: "most of software today is hidden, but imagine if we could see it... and smell it". Microsoft was not the only one who felt his wrath, Kay is much harder on academics, calling out the inventors of the stateless http in particular: "...the clowns at Illinois who reinvented the broken wheel [referring to the disconnect between presentation and display on the web]; we allowed them to get away with it, this is evidence that computer science is not a field". His point was that wysiwig user interfaces had been invented long before the web, and we should have called them on introducing a publishing platform that was essentially a step backwards. Finally, he suggested that one of the reasons for the predicament in computer science is that we tend to attract those with high IQ, and in fact IQ can be a lead weight. Being bright makes you incredibly capable of solving toy problems, the computing equivalent of constructing a dog house. This mindset leads us to focus far too much on the building blocks of computing (algorithms and data structures) and not nearly enough on architecture, which is in practice what we need to build larger structures. For this reason, outlook is much more important than IQ (in the sense of Einstein whose outlook reshaped the way we look at the universe), because this is what leads to conceiving of novel architectures.
What was fascinating to me in hearing this talk is that I've always felt quite the opposite way about computer science. It has frustrated me to no end that most CS researchers look down their noses at the practical challenges faced in management information systems, and for the most part fail to grasp the very real way that software engineering problems change as scale is introduced. I've applauded initiatives like services science, management, and engineering that attempt to define curricula around the complete skillset that a computing professional will need (I even participated recently in a panel discussion around the future computing curriculum). The culprit in my view is that CS programs are caught in an awkward limbo, balancing the needs of students who want to find an IT job after graduation with others who will go on to design our next computing platforms and programming languages (the latter defended by the grey haired faculty who remember the good old days when mainframes were built by hand). What ultimately needs to happen is for schools to specialize (akin to the split between Physics and Engineering), allowing for critical masses of computer science students to congregate around schools tailored to designing new computing paradigms, and others in programs that explore innovative applications of those paradigms across industries. We're starting to see these tailored programs emerge on the application side, but as Kay rightly points out this is happening to the detriment of the computing as a research area in its own right. Kay is doing his part to get us back on track, with the Viewpoint Research Institute that he founded; VPRI has as a mandate to rethink the day-to-day computing that we use, and reduce its footprint from millions of lines of code down to a manageable 20K lines of code. Incredibly ambitious, but also a tough challenge that is bound to yield tremendous insight along the way.
Fascinating talk this morning. It was recorded, and as soon as the full lecture is available I will post it here.
Follow up: this lecture got me thinking, which led me to re-read Djikstra's "On the Cruelty of Really Teaching Computer Science". I will share one short passage, relevant to the challenge of conceiving new paradigms in computing: "...coming to grips with a radical novelty amounts to creating and learning a new foreign language that can not be translated into one's mother tongue."
Follow up: I can't leave this one alone... Following up on Alan Kay's talk this morning, I went back through the list of ACM Turing Award recipients to see if I could prove or dispute his claim that the field of CS has stalled. I did a quick regression test looking at the year the awards were granted against the age of recipients at the time of granting. This is an imperfect analysis, since I'm using age as a proxy for the year when the meritorious innovation happened, and because there was clearly a backlog of worthy computer scientists at the time that the first Turing award was granted in 1966. We should nevertheless expect a rising slope on the age variable, levelling off after a point. Instead, we see an exponential growth curve, suggetsing that in fact the awards are trending to contributions backwards in time. There are lots of explanations for this result: optimistically this is about recognizing contributions that have had more time to prove their merit; for the cynic there's an "old boys club" explanation; and finally Kay's explanation that CS researchers in the last twenty years have failed to match pace with their predecessors.
Tuesday, December 02, 2008
Alan Kay at UofT
Subscribe to:
Post Comments (Atom)
2 comments:
Just as a quick note, since I saw this lecture as well, I don't think he was cursing Wikis, but web browsing in general. He seemed to really have large problems with the stateless nature of HTTP and things of that nature, claiming that they break the WYSIWYG principle.
That said, I do agree with him that a lot of software projects are starting to get out of hand, though some of the things he said (eliminate OS's?) seem a little outrageous. He definitely gave plenty of things to think about though.
You're right (I've fixed the post). I got thrown off thinking specifically of in-place editing on the example from his slide. But you're right, he meant it in broader terms.
Post a Comment