October 26, 2004

At OOPSLA 2004

Tuesday

Brian Marick is collecting stories from the history of the discipline. He asked Guy Steele to talk about the writing of the 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?

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 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. 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 and Croquet demos, which are still pretty impressive compared to the tools most of us use.

Steve McConnel 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 , 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 thinks that embedded Domain Specific Languages are a good idea.

October 22, 2004

Minor notes

my current team has just become too large for one person reasonably to buy snacks for. Is this an important organisational metric?

talking to Rachel Davies, she reminded me how different the experience of working on a very high quality code base is from what we usually have to deal with. Stuff just doesn't get in the way. Unfortunately, few people in our business get to experience it, which makes it hard to make the case for being sufficiently picky.

I realised today that I write text messages with my left hand, despite being right-handed. There must be a research project in there somewhere.