On this page
In August 1972 Alan Kay presented a paper at the ACM National Conference in Boston called “A Personal Computer for Children of All Ages” (Kay, 1972). It described a device he called the Dynabook, and Kay wrote that it “should be read as science fiction”. Its software half became Smalltalk, built on objects that send each other messages.
What was Alan Kay's Dynabook?
The Dynabook was a notebook-sized personal computer meant for children and adults alike, set out in Kay's 1972 paper (Kay, 1972). The paper's numbers are specific:
about 12 by 9 inches and 1 inch thick, weighing less than 4 pounds
a liquid-crystal display with a raster of roughly 1024 by 1024 points
storage for about one million characters, roughly 500 book pages
a hoped-for price of $500, which Kay called “ridiculously low compared to current mini's, ridiculously high compared to current TV technology”
The paper's story follows two nine-year-olds, Jimmy and Beth, in a park with their Dynabooks linked, playing Spacewar. Beth adds a sun to the game: they work out that the ship must gain speed towards it wherever it is, and she changes her own program to match. That was Kay's point: children would program the computer, not just watch it. He drew on Seymour Papert's LOGO work, in which children wrote their own animations and games.
How did Smalltalk start object-oriented programming?
Object-oriented programming is a way of building software from self-contained objects that each keep their own data and cooperate only by sending one another messages (Kay's 2003 email on the meaning of OOP). In the same email Kay said he first used the phrase “object-oriented programming” around 1967 at the University of Utah, influenced by Sketchpad, the Simula language and his background in biology. He thought of objects “being like biological cells and/or individual computers on a network, only able to communicate with messages.”
In Sketchpad a “master” drawing could produce “instance” drawings, an idea Kay saw again in Simula (Kay, 1993); see our piece on Ivan Sutherland's 1963 Sketchpad.
At the Palo Alto research centre Xerox set up in 1970, Kay led what he called the Learning Research Group. His history of Smalltalk, published in ACM SIGPLAN Notices in 1993 (Kay, 1993; full text), lists Smalltalk's six main ideas. The first two are “Everything is an object” and “Objects communicate by sending and receiving messages”. In 1972 Dan Ingalls got a first version running. In this design even 3 + 4 reads as a message: “+ 4” sent to the object 3.
Children tested the ideas: the history credits 12-year-old Marian Goldeen with a painting system and 15-year-old Bruce Horn with a music system, with Adele Goldberg leading the teaching.
In 2003 Kay received the ACM Turing Award “for pioneering many of the ideas at the root of contemporary object-oriented programming languages, leading the team that developed Smalltalk and for fundamental contributions to personal computing” (NSF list of Turing awardees).
How can you think like Kay about a problem?
Try Beth's problem on paper.
Name the objects: the Sun and the Ship.
Give each its own memory. The Sun knows its position and mass; the Ship knows its position and velocity.
Decide the messages. The Ship understands “step forward by a small time Δt”. The Sun answers “what acceleration do you give at this point?” with Newton's law of gravitation: GM/r², pointing towards the Sun.
Write what each message does. On “step”, the Ship asks the Sun for its acceleration, adds acceleration × Δt to its velocity, then adds velocity × Δt to its position.
Run three steps in your head. Start the Ship right of the Sun, moving straight up. Each step tips its velocity towards the Sun, so the path curves. Too slow and it swoops in or crashes; fast enough and it escapes.
This is the habit object-oriented programming trains: split a system into parts that own their data and talk through a few clear messages.
If the curving path is hard to picture from equations, watch it happen. The Fermi Simulation Lab has interactive simulations for ideas that are easier to see than to read.
Where can a student start today?
Read Kay's 1972 paper. It opens with Jimmy and Beth.
Build the orbit in Scratch, where each sprite has its own scripts and sprites can signal each other with broadcast messages. Our guides to starting Scratch programming for kids at home and starting coding in Class 6 with Scratch cover the first steps.
When a programming or mechanics idea will not click, Fermi's AI tutor can work out what you already know and build a plan for the session.
The tablet Kay imagined arrived; programming it is still up to you.



