A conversation with Alan Kay (2004)
doc.ic.ac.uk
doc.ic.ac.uk
I haven't seen anything come out of Alan's VPRI group for a while. Does anyone have an update?
Recent HN discussion: http://news.ycombinator.com/item?id=3878661
The solution is to subdivide it into modules that can be treated as a single entity. The complexity within each module is much less because there are fewer entities within it, and there is less complexity between modules because there are fewer modules (which can be seen as entities at a higher level - and we can nest modules, to further reduce complexity).
The problem with this is that it is hard to find the right modules, that minimize interactions within them and between them. It takes a lot of data, a lot of insight and a lot of trial-and-error to find modularities that work well - it amounts to a theory of the data. In science, most theories take a long time to be discovered and a long time to be improved on - but we expect to do this routinely on each individual software project...
[ One way this is done in practice is when someone decides to tackle a generally needed problem, and wrap it up as a component (e.g. 3rd party library). To the extent that this is the right modularity, it will not only reduce the work a user needs to do to use it, but also reduce overall complexity in the total system (including for the component designer). ]
Instead of expecting it to be easy to find the right modularity, we should expect it to be hard; instead of insisting on a simple theory that explains everything, we should celebrate every small step towards better theories. This is what all practitioners facing empirical complexity in the real world end up doing.
> I feel like my answers are quite trivial since nobody really knows how to design a good language, including me.
A good summary of many of the cultural impedance mismatches of Smalltalk. Even today, Smalltalk is weird. However, many of the things developed there now have widespread traction. Java, Python, Ruby, .Net -- these communities have adopted many of the great things from the Smalltalk world.
We’re not going to worry about whether we can compile it into a von Neumann computer or not, and we will make the microcode do whatever we need to get around these inefficiencies because a lot of the inefficiencies are just putting stuff on obsolete hardware architectures."
On the other hand, considering the PC-internet revolution is all based on technologies that he and his colleagues developed, you should check yourself. Maybe if our industry had an ounce of history and a modicum of respect, we wouldn't be swimming in the mess we're in.
In my opinion, there's no one alive in this field that you should respect more than Dr. Kay.