---
slug: thinker-alan-kay
title: Alan Kay — The Big Idea Is Messaging
canonical: https://miscsubjects.com/a/thinker-alan-kay
---

<!-- hierarchy:nav -->
> **Path:** [OIP](https://miscsubjects.com/a/oip) › [Thinker Reference](https://miscsubjects.com/a/oip-thinker-reference) › [Thinkers](https://miscsubjects.com/a/oip-thinkers) › **Alan Kay — The Big Idea Is Messaging**
>
> **Shelf:** Thinkers · **Traversal:** self-explaining · hierarchical · voxel-ready
> **Machine root:** [OIP tree](https://miscsubjects.com/api/dispatch?map=1&format=markdown) · [Registry](https://miscsubjects.com/api/dispatch?registry=1)

# Alan Kay — The Big Idea Is Messaging

## §SELF — thinker-alan-kay

**What this page is:** A profile of Alan Kay and his core insight about message-passing objects.
**What it explains:** Kay's concept of objects as autonomous computers that communicate through messages, and why this matters for system design.
**Why read it:** To understand why messaging — not classes or inheritance — is the fundamental pattern of object-oriented programming, and how this idea applies to protocol design.

### What Alan Kay Did

Alan Kay created the Smalltalk programming language at Xerox PARC in 1972. He coined the term "object-oriented programming." He also developed the concept of the Dynabook (a personal computer designed for children to learn with) and contributed to the overlapping window graphical user interface at PARC.

### Why It Matters

Kay's work established a paradigm for thinking about software systems as collections of autonomous agents. Before Kay, programs were typically structured as sequences of instructions or as hierarchical procedures. Kay proposed that software should model biological systems: cells that do not know what happens inside other cells, but communicate by sending messages across membranes. This model scales to distributed systems, concurrent systems, and protocol-based architectures in a way that traditional procedural programming does not.

### The Key Idea

Kay's central insight: an object is a computer. It has internal state, internal behavior, and a boundary. You send it a message. It does something. It responds. You do not know how it works inside. You do not call a function directly. You send a message and wait for a response.

This is distinct from calling a function. In function call semantics, the caller knows the function's name, its parameters, and its location in memory. In message-passing semantics, the caller knows only an address and a message format. The object decides what to do. The separation between "what is asked" and "how it is done" is absolute.

Kay's famous quote: "The big idea is messaging." He did not mean objects as templates for data structures. He did not mean class hierarchies or inheritance trees. He meant autonomous entities that communicate through well-defined message protocols. He also said: "Simple things should be simple, complex things should be possible." This means the messaging model should handle both trivial and sophisticated interactions without changing its basic structure.

### What He Got Right

- **Messaging as the fundamental pattern.** Objects communicate by sending messages. This decouples sender from receiver, enabling concurrency, distribution, and independent evolution of components.
- **The object-as-computer metaphor.** Treating each object as a complete computer (with its own memory, processor, and communication channel) provides a consistent mental model for systems at any scale.
- **The Dynabook vision.** A personal, portable computer for education anticipated laptops, tablets, and interactive learning software by decades.
- **Graphical user interfaces.** The overlapping window interface at PARC became the template for modern computing.

### What He Got Wrong or Left Unfinished

- **Smalltalk became about classes, not messaging.** The language that Kay built to demonstrate message-passing objects instead emphasized class hierarchies and inheritance. Programmers used Smalltalk to build taxonomies of types, not networks of communicating agents. The original insight was buried under the implementation.
- **The object-as-computer metaphor was lost.** Later object-oriented languages (C++, Java, C#) treated objects as data structures with methods attached. The biological cell model — autonomous, opaque, message-driven — disappeared from mainstream practice.
- **No standard protocol for inter-object messaging emerged.** Objects in Smalltalk could only communicate with other objects in the same runtime. There was no general, protocol-level message format that could cross system boundaries.

### How It Connects to Other Ideas

- **Capability-based security:** Both models treat possession of a reference as authority. In Kay's model, holding an object reference means you can send it messages. In capability security, holding a capability means you can use a resource. The underlying principle — authority through reference, not through identity or permission lists — is the same.
- **REST and HATEOAS:** The REST architectural style treats resources as objects addressed by URLs. HATEOAS extends this by including possible next actions (links) in each response. Both derive from the same principle: the client sends a message to an address, the server responds, and the response indicates what can happen next.

### Sources

- Kay, Alan. "The Early History of Smalltalk." ACM SIGPLAN Notices, 1993.
- Kay, Alan. "A Personal Computer for Children of All Ages." Xerox PARC, 1972 (Dynabook proposal).
- Ingalls, Dan. "The Evolution of Smalltalk." ACM SIGPLAN Notices, 2020.

---

## Up the tree

- [OIP root](https://miscsubjects.com/a/oip) — protocol root, zero-context entry
- [Thinker Reference hub](https://miscsubjects.com/a/oip-thinker-reference) — full hierarchy map
- [Thinkers shelf](https://miscsubjects.com/a/oip-thinkers) — siblings on this shelf
- [Voxel graph article](https://miscsubjects.com/a/what-is-voxel-graph) — how pages link as voxels
- [Self-describing protocol](https://miscsubjects.com/a/what-is-self-describing-protocol)

## Related on this shelf

- [Alfred North Whitehead — Process and Reality](https://miscsubjects.com/a/thinker-alfred-north-whitehead)
- [J.L. Austin and John Searle — Speech Acts](https://miscsubjects.com/a/thinker-austin-searle)
- [Barbara Liskov — Abstract Data Types and Distributed Consensus](https://miscsubjects.com/a/thinker-barbara-liskov)
- [Bram Cohen — BitTorrent and Content-Addressed Protocol Design](https://miscsubjects.com/a/thinker-bram-cohen)
- [Butler Lampson — Protection and Access Control](https://miscsubjects.com/a/thinker-butler-lampson)
- [Carl Hewitt — The Actor Model](https://miscsubjects.com/a/thinker-carl-hewitt)
- [Charles Sanders Peirce — Signs, Abduction, and Pragmatism](https://miscsubjects.com/a/thinker-charles-peirce)
- [Doug Engelbart — Augmenting Human Intellect](https://miscsubjects.com/a/thinker-doug-engelbart)

## Machine surfaces

- Public page: `https://miscsubjects.com/a/thinker-alan-kay`
- JSON article: `https://miscsubjects.com/api/articles/thinker-alan-kay`
- OIP ask: `https://miscsubjects.com/api/dispatch?ask=Alan%20Kay%20%E2%80%94%20The%20Big%20Idea%20Is%20Messaging`

