“Brian Marick”:http://www.testing.com/ is collecting stories from the history of the discipline. He asked “Guy Steele”:http://en.wikipedia.org/wiki/Guy_Steele to talk about the writing of the “Lambda papers”:http://en.wikipedia.org/wiki/Lambda_Papers. Guy talked about how he and Sussman just kinda did a few things, noticed a couple of simplifications and came up with Scheme. He reminded me of Robert Nagel, the head of the brass department when I was at music college. Nagel had been a virtuoso since childhood, and you got the impression that he couldn’t quite understand how people made mistakes when playing; why would you want to?
“Nat Pryce”:http://nat.truemesh.com and I “presented”:http://www.oopsla.org/2004/ShowEvent.do?id=461 the Mock Objects paper we wrote with “Tim Mackinnon”:http://c2.com/cgi/wiki?TimMackinnon and “Joe Walnes”:http://joe.truemesh.com, and then gave a “demonstration”:http://www.oopsla.org/2004/ShowEvent.do?id=652; nice to have someone in the audience spot the similart to CRC cards.
Listening to Ward Cunningham talk, I’m struck by how much just plain common sense he talks. The sad part is that this degree of common sense is so rare in our industry. He talked about how some of his experiences lead to XP and other Agile techniques, but so many people miss the true spirit when they try to do it. For example, he talked about the critical importance of managing Technical Debt on a project so that you can keep moving at speed. Lots of wannabe-XPers do the “easy” part (not writing documentation, simplistic solutions, etc.) without balancing it with the rigour of refactoring to maintain consistency within the codebase. This resonates nicely with a “recent conversation”:http://stevef.truemesh.com/archives/000417.html I had with Rachel Davies.
Ward says _Stay Receptive to Discovery_
* Use what you know
* Feel it work
* Share the experiecne
* Wait for insight
* Refactor to include it
Alan Kay’s Turing Lecture was entertaining, as expected. He’s concerned to maintain the vision of computing as a medium that is liberating and fun, rather than the daily morass many of us find ourselves in. This is just the begnning of computing as a discipline, so we shoud set our sights high. It’s frustrating just how long ideas take to come through. Sutherland invented GUIs, objects, constraints, clipping, and a whole bunch of other things with Sketchpad in 1963, watch “the video”:http://www.lisarein.com/alankay/tour.html#films. If we look at the lag from the ideas coming out of Xerox PARC we should be heading for a peak in the next few years. Once again he reminded us of the absolute value of simplicity: Metcalf and Boogs came up with a dumb, stupid protocol for networking that wasn’t anywhere as efficient as IBM’s, but everyone uses Ethernet nowadays. (Ward had the same message, are they trying to tell us something?). Then there were the usual “Squeak”:http://www.squeak.org/ and “Croquet”:http://www.opencroquet.org/ demos, which are still pretty impressive compared to the tools most of us use.
“Steve McConnel”:http://www.oopsla.org/2004/ShowEvent.do?id=803 is talking about Simplicity too! Code is read much more often than it’s written, so focus very hard on making it obvious. (Ward’s Technical Debt, again).
“Alan Vermeulen”:http://www.oopsla.org/2004/ShowEvent.do?id=805 , CTO at Amazon, talked about the nature of innvation and made a couple of nice points. First he emphasised simplicity as a critical feature of succesful inventions — I think I’m detecting a theme here. Vermeulen also talked about loose coupling. The early electricity grids were built to provide lighting, and the manufacturers had to provide light sockets to allow people to replace dead light bulbs. This allowed other people to invent electrical applications, such as the iron, and plug them into the light socket, _which was not something the manufacturers had anticipated_. It was years before the introduction of specialized power outlets. He also pointed out how long it can take for the real breakthrough ideas to happen. For example, the killer app of eletrical appliances was the washing machine, but they were pretty dangerous if you got caught in the wringer. It was years later than someone else invented the off switch.
NIce to see that “someone else”:http://www.oopsla.org/2004/ShowEvent.do?id=27 thinks that embedded Domain Specific Languages are a good idea.