Update: Alan Kay’s Response

During a recent HN AMA, I was able to ask Alan Kay himself about the paradox between choosing when to DIY. Specifically I asked him “How does one decide when to DIY, and when to use what’s already been built?”

His response:

This is a tough question. (And always has been in a sense, because every era has had projects where the tool building has sunk the project into a black hole.)

It really helped at Parc to work with real geniuses like Chuck Thacker and Dan Ingalls (and quite a few more). There is a very thin boundary between making the 2nd order work vs getting wiped out by the effort.

Another perspective on this is to think about “not getting caught by dependencies” – what if there were really good independent module systems – perhaps aided by hardware – that allowed both worlds to work together (so one doesn’t get buried under “useful patches”, etc.)

One of my favorite things to watch at Parc was how well Dan Ingalls was able to bootstrap a new system out of an old one by really using what objects are good for, and especially where the new system was even much better at facilitating the next bootstrap.

I’m not a big Unix fan – it was too late on the scene for the level of ideas that it had – but if you take the cultural history it came from, there were several things they tried to do that were admirable – including really having a tiny kernel and using Unix processes for all systems building (this was a very useful version of “OOP” – you just couldn’t have small objects because of the way processes were implemented). It was quite sad to see how this pretty nice mix and match approach gradually decayed into huge loads and dependencies. Part of this was that the rather good idea of parsing non-command messages in each process – we used this in the first Smalltalk at Parc – became much too ad hoc because there was not a strong attempt to intertwine a real language around the message structures (this very same thing happened with http – just think of what this could have been if anyone had been noticing …)

Thanks to Brian Duggan, Dan McClory, and Patrick Smith for reading drafts of this post.