Alan Kay—one of the pioneers of object-oriented computing and the creator of Smalltalk—generally had a skeptical view of rigid schemas in computing systems. His perspective comes from a broader philosophy about how software systems should evolve and communicate.
Here are the key ideas behind his thinking.
1. Schemas Freeze Structure Too Early
Kay often criticized systems that lock in a predefined data structure (schema) too early.
A schema (like in relational databases or strongly structured APIs) assumes:
We know the shape of the data ahead of time
All participants will agree on the structure
The structure will remain relatively stable
Kay believed this assumption is usually wrong in real systems because:
requirements change
systems evolve
different components want different representations
So schemas tend to reduce flexibility and make evolution harder.
2. Objects Should Communicate via Messages, Not Shared Schemas
Kay’s original idea of object-oriented programming was:
Objects communicate by sending messages, not by sharing data structures.
Instead of this:
System shares schema:
User {id, name, email}Kay preferred something like:
sendMessage(user, "emailAddress")The receiver decides how the information is stored or computed.
Advantages:
internal representation can change
no global schema coordination
systems are more modular
In Kay’s view, shared schemas couple systems together too tightly.
3. Late Binding Over Schema Binding
Kay strongly advocated late binding:
decisions made at runtime
objects can evolve independently
behaviors matter more than structure
Schemas push the opposite direction:
early binding
structural agreement required ahead of time
Kay often argued that behavioral interfaces (messages) are more powerful than structural contracts (schemas).
4. Inspiration from Biology
Kay frequently used biological metaphors.
Cells communicate by signals, not by exposing their internal structure.
Similarly, software components should interact via messages, not shared schemas.
So instead of:
shared database schemaThink:
independent agents sending messages5. His Critique of Databases
Kay didn’t hate databases, but he disliked when:
the schema becomes the architecture
systems revolve around data tables instead of objects
He argued that relational schemas often become a global coupling point, making systems brittle.
✅ In short:
Alan Kay’s position was roughly:
Schemas are useful locally
But dangerous as global contracts
Systems should depend on messages and behavior, not shared data structures
Flexibility and evolution matter more than structural agreement
A famous Kay-style takeaway:
“Don’t ask for the data. Ask the object to do something.”