An inspiring and informative talk by Alan Kay. Keeping the enthusiasm of childhood alive in computing.
A gem in the talk is advice on how to protect the power of metasystems by enforcing the distinctions between (among) of metasystems.
YOUTUBE aXC19T5sJ1U Turing Award Speech
Alan Kay's Turing Award Lecture ends with a demo that shows the drive-a-car thing – a fascinating exploration of object oriented programming, a fulfillment of his expression that "everything is an object."
YOUTUBE NY6XqmMm4YA Here is where I begin to understand Kay's fence after fence metaphor. Beginning at 9:53 into the video.Even better start at 10:40 to 12:40. We must understand this.
I am not a computer programmer but what we do need is the ability for neighbors to do what Alan Kay says. I think that using graphs, Neo4j or an open source equivalent and FedWiki this can happen. The Obeya exploration is a good place to develop this kind of capability.
Meta abstraction
He talks about classes as being horizontal, not hierarchical, all independent of each other – an aspiration perhaps not fully achieved in Smalltalk. There, classes were nested like Russian dolls.
One of his most interesting comments was that "meta is safe if you allow fence after fence after fence." Here he means meta as a higher abstraction.
His idea of a fence is closely aligned with Alexander's concept of boundaries that is found in his 15 Properties:
>**Property 3: Boundaries** In nature, we see many systems with powerful, thick boundaries. The thick boundaries evolve as a result of the need for functional separations and transitions between different systems. They occur essentially because wherever two very different phenomena interact, there is also a ‘zone of interaction’ which is a thing in itself, as important as the things which it separates.
Boundaries are one of the three properties of "wholeness" for each element in his Natural Order – his description of the essential characteristics defining vital, autopoietic systems:
15 Properties
* Strong Center (intention) * Boundaries (responsibility) * The Void (white space - ma)
What I really need is the ability to get every object that I need for this project out where I can do things with them. And I want that desktop to remember their state over time.