Just watched the talk “The Computer Revolution Hasn’t Happened Yet”, from OOPSLA last century (!). I’d heard of this talk, but not watched it. Really good, biting critique of how we think about and work with complexity.
The guy really is a genius. I’m off to find more on YouTube.
Update: Another one from 2015. Interesting how many of the ideas, and the metaphors, haven’t changed, even though it’s 20 years later and for a completely different audience of corporate leaders instead of tech academics.
In talking about the Intergalactic Network, Kay says someone asked why it was so-named, and the answer was: engineers always give you the minimum, so the choice was intentional to make them think about the potential. This is so right-on. The accepted practice is: there’s a set of requirements that dictate a series of constraints that circumscribe the design of what you’re working on. They end up describing what’s inside and what’s outside your design, like a cell wall.
One of Kay’s points is that these designs at any given point in time, given a context (how much money do we have? How much memory can we use? How about CPU?) should be the building blocks of the next thing, the machine language of the next thing, with the ability to continuously evolve built in, even at the lowest level, because the context is continually evolving, and because we need to be able to play with these things in order to understand what to do next.
So don’t think about building something and scaling it up. Think about building something huge and impractical, and scale it down.