The Most Important Idea in Computer Science
Friday, February 24, 2006
Alan Kay is a fascinating person. He once said "Don't worry about what anybody else is going to do. The best way to predict the future is to invent it." and he's certainly done his share of inventing the future. He's also a really quotable guy and he has made a lot of good quotes about Lisp. He recently gave a couple of talks at the University of Utah. Phil Windley went to them both and blogged about them (see here and here). Although Phil didn't note down exact quotes, here are some of the interesting things he did note down:
"Most people who graduate with CS degrees don't understand the significance of Lisp. Lisp is the most important idea in computer science. Alan's breakthrough in object oriented programming, wasn't objects, it was the realizing that the Lisp metasystem was what we needed.Interesting stuff - I hope Alan's presentations were recorded as I'd really like to hear what he had to say.
Alan uses John McCarthy and Lisp as an example of real science in computer science. He showed us that you can build a system that's also it's own metasystem. Lisp is like Maxwell's equations. Many of the things that are wrong about Java is that it lacks a metasystem and that the metasystem that's been tacked onto it is missing key parts. To find the most interesting things about our field you have to go back 30 or 40 years.
Alan used McCarthy's method to design an object oriented system. He spent only a month implementing it because of the metasystem."
In case you're not familiar with some of the things Alan Kay has said about Lisp, here's a collection of quotes (along with a few that are not directly Lisp-related) that I've found:
"A Conversation with Alan Kay":
- "I would compare the Smalltalk stuff that we did in the '70s with something like a Gothic cathedral. We had two ideas, really. One of them we got from Lisp: late binding. The other one was the idea of objects. Those gave us something a little bit like the arch, so we were able to make complex, seemingly large structures out of very little material, but I wouldn't put us much past the engineering of 1,000 years ago."
- "So the problem is-I've said this about both Smalltalk and Lisp-they tend to eat their young. What I mean is that both Lisp and Smalltalk are really fabulous vehicles, because they have a meta-system. They have so many ways of dealing with problems that the early-binding languages don't have, that it's very, very difficult for people who like Lisp or Smalltalk to imagine anything else."
- "SF: If nothing else, Lisp was carefully defined in terms of Lisp.
AK: Yes, that was the big revelation to me when I was in graduate school-when I finally understood that the half page of code on the bottom of page 13 of the Lisp 1.5 manual was Lisp in itself. These were "Maxwell's Equations of Software!" This is the whole world of programming in a few lines that I can put my hand over."
"Report on OOPSLA97":
- "Java and C++ make you think that the new ideas are like the old ones. Java is the most distressing thing to hit computing since MS-DOS."
- "For complex systems, the compiler and development environment need to be in the same language that its supporting. It's the only way to grow code."
- "The Art of the Metaobject Protocol is the best book written in computing in ten years."
- Miscellaneous quotes:
- [Lisp is] "the greatest single programming language ever designed"
- "Simple things should be simple. Complex things should be possible."
- "The great problem with Lisp is that it is just good enough to keep us from developing something really good"
- "Some people worry that artificial intelligence will make us feel inferior, but then, anybody in his right mind should have an inferiority complex every time he looks at a flower."
- "I invented the term Object-Oriented, and I can tell you I did not have C++ in mind."
- "Until real software engineering is developed, the next best practice is to develop with a dynamic system that has extreme late binding in all aspects."
- "The real romance is out ahead and yet to come. The computer revolution hasn't started yet. Don't be misled by the enormous flow of money into bad defacto standards for unsophisticated buyers using poor adaptations of incomplete ideas."
- "A new point of view is worth 80 IQ points."
- "All creativity is an extended form of a joke."
- "If you don't fail at least 90 percent of the time, you're not aiming high enough."
- "Most undergraduate degrees in computer science these days are basically Java vocational training."
- "Any company large enough to have a research lab is too large to listen to it."
- "Revolutions come from standing on the shoulders of giants and facing in a better direction."
- "The one thing it [Lisp] has going against it is that it is not a crystallization of style. The people who use it must have a great deal of personal style themselves. But I think if you can have one language on your system, of the ones that have been around for a while, it should be Lisp."