"What's the expense of getting simplicity? [..] You get simplicity by finding a slightly more sophisticated building block to build your theories out of. It's when you go for a simple building block that anyone can understand with common sense that you start screwing yourself right and left."
After thinking about it for a while, I struggled to get anything profound out of it. I feel his point is equivalent to saying "a higher level of abstraction can make problems more tractable" which is something we do all the time in all contexts.
Finding good abstractions is an art but I don't think this really maps to insights like Copernicus though. I see a slightly different process happening i.e. discovering a new perspective on a problem. A new perspective can be a different way to decompose a problem but I don't think it necessitates anything about the sophistication of the building blocks. Instead, a revealing change is often because it changes the type of relationships between the building blocks in a radical way that enables new inferences.
So you try to solve the problem by getting faster cars, building better roads, hiring the best drivers - all with the goal of getting the notes from king A to king B as fast as possible.
---
The 'abstraction' which I think Alan is talking about is not about how to make the car go faster between A and B - it is about stepping back and actually thinking about the context - what do we actually need ? We need a way to transfer messages between A and B.
And pretty soon you come up with the idea of using a membrane to convert voice into electrical signals and send those over a wire. So you install a cable between A and B and now the kings can chat all day long.
That's a much simpler and powerful solution, but not to the problems you were trying to solve (making the car go faster), but to the problem in the upper scope - sending messages from A to B.
This was the gist of Alan's talk imho.
I think of an abstraction of something that makes things simpler:
https://en.wikipedia.org/wiki/Abstraction_%28computer_scienc...
I understood Alan Kay to be saying that a lot of abstractions are actually making things too simple. I would understand the point to mean "a lower level of abstraction can make the big picture more tractable".
For example, I believe to have discovered that we need a slightly more complex notion of identifier/reference/variable (I call them Polymorphic Identifiers [1][2][3]). Smalltalk says that we only need messages (procedural abstraction) to be polymorphic, identifiers and things like assignment are simple/monomorphic. SELF (another "Power of Simplicity" [4]) essentially said that you don't really need separate identifiers for things at all, all the things that look like identifiers are really message-sends. This makes a lot of sense at first glance, and at second and third. However, there are subtle problems related to the Uniform Access Principle [5], and my contention is that to solve these problems you can't layer abstractions on top, you actually have to go against the grain and make one of the fundamental building blocks (variable access, both read and write) slightly more complicated. And that you actually need the concept "variable access" :-)
Having worked with PIs for a bit now, it looks like this slightly more complicated primitive really does help solve/reduce a lot of complexities in real world systems. As far as I can tell, a lot of these complexities are fundamentally "storage" related, but that unifying abstraction is lost because the mechanisms we have available are procedural. Once you have it, you get building blocks similar to shell filters that you can combine to create variations as one-liners that would otherwise be many pages of code, similar to McIlroy's shell solution to Jon Bentley's word count challenge (6 lines of shell vs. Knuth's 12 pages of Pascal/Web) [6]
However, communicating this appears to be nearly impossible. For example, David Ungar (of Self fame) reviewed my paper and just tore it to shreds, misunderstanding not just the solution, but also the problem, and completely incorrectly claiming that Self already solves those problems. He stopped responding when I showed him the (very simple) examples demonstrating the problem in Self.
[1] http://dl.acm.org/citation.cfm?id=2508169
[2] https://www.hpi.uni-potsdam.de/hirschfeld/publications/media...
[4] http://bibliography.selflanguage.org/_static/self-power.pdf
[5] https://en.wikipedia.org/wiki/Uniform_access_principle
[6] http://www.leancrew.com/all-this/2011/12/more-shell-less-egg...
I'm actually sort of surprised that a company hasn't just "bought out" one or more of the smaller countries -- paying off the citizens to renounce their citizenship, say. It would be easier if you bought two, so as to avoid creating a bunch of stateless people -- pay Country A to grant citizenship to everyone in Country B, and pay the citizens of Country B to renounce their Country B citizenship. You now have Country B to run as you please.