I had a troll through the microsoft research site today - there are some impressive people working there. I was actually looking for some notes on
Computer Systems Research: Past and Future which I'd stumbled upon previously. The author of these notes is
Butler Lampson - check out the work that he's done.
Anyway, he makes the point that 'inventions' in computer science have typically ridden the free wave of Moore's Law. He makes the interesting point that the web was
not invented by computer scientists, even though it is
"the most important invention of the last decade". His lists of successes, failures, and unknowns comprise:
Successes | Failures | Unknowns |
Virtual memory | Capabilities | Parallelism |
Address spaces | Fancy type systems | RISC |
Packet nets | Functional programming | Garbage collection |
Objects/subtypes | Formal methods | Interfaces and specifications |
RDB and SQL | Software engineering | Reuse |
Transactions | RPC (except for web) | |
Bitmaps and GUIs | Distributed computing | |
Web | Persistent objects | |
Algorithms | Security | |
[Crikey! The code for that table was ugly - it all had to be on one text line...]
These are certainly interesting lists, and good for discussion. He then goes on to discuss why the web is
"the failure of systems research" (because computer scientists didn't invent it!), and states that the web is too simple, and old idea (but never tried), wasteful (but fast enough), and flaky -- all of this sounds like good, solid engineering to me! The academic response is that the web doesn't scale, but it seems to have done pretty well so far. Lampsons lists of challenges is a bit weak, but in the 'information challenges' he mentions the 'Memex'... this topic is better discussed by
Jim Gray in his lecture for the Turing award (
What Next? A few remaining IT problems). Gray credits the
Memex idea to
Vannevar Bush, and goes into considerable detail (more than I can comprehend at 1am...).
Finally, there is an interesting conversation between Roger Sessions and Terry Coatta in
ACM Queue on the differences between objects, modules, and components. Before commenting I should really re-read the article - it was very good, and I could certainly learn some more from it.
That's enough blogging for now. Good night!
# posted by Michael Kennett @ 1:54 am