A Comment On ‘A Conversation with Alan Kay’


Harrison Ainsworth

From: ‘A Conversation with Alan Kay’; ACM Queue; 2004-12-27:

If you look at software today, through the lens of the history of engineering, it's certainly engineering of a sort – but it's the kind of engineering that people without the concept of the arch did. Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves.

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.

The analogy to pyramids and cathedrals is askew. That is why this has been such an intriguing yet somehow uncomfortable quote.

Physical structure doesn't map to programming language forms, it maps to algorithmic structure. Software engineering's equivalent to atoms is bits: processing them, storing them, transmitting them. These are determinate, like physics: measuring speed and space, and rationally understanding their relation in algorithms is possible.

Objects, late binding, and other language-level forms map to descriptions or diagrams of structures, not the structures themselves: these representations can be chosen and changed separately from the algorithmic structure. The purpose of this ‘representational structure’ is to make software manipulatable for humans. That is a very different kind of aim, that is not determinate.

To best make progress, software's aspects must be carefully distinguished. In part, software must fulfil a different kind of demand to building. In that, we must expect a quite different potential.