Smalltalk is an object-oriented language and programming environment created at Xerox PARC in the 1970s by Alan Kay, Dan Ingalls, Adele Goldberg and their colleagues in the Learning Research Group. The first version, Smalltalk-72, ran in 1972, and the widely published Smalltalk-80 followed. Explaining how Smalltalk made everything an object, numbers, classes, even true and false, is the best way to understand why it still influences how programmers think.
Origins at Xerox PARC
Alan Kay joined PARC in 1970 with an idea he called the Dynabook, a portable personal computer for children and adults. He had studied Simula's objects and Seymour Papert's Logo work with children, and he imagined software as a collection of small computers, objects, that communicate by sending messages. Kay bet that a powerful language could be defined in a single page of code; Dan Ingalls took up the challenge and implemented Smalltalk-72 on PARC's machines, soon running on the Xerox Alto.
The language went through several major versions:
- Smalltalk-72 – first implementation, used in experiments with children.
- Smalltalk-76 – introduced the class hierarchy and syntax close to today's.
- Smalltalk-80 – the version released outside Xerox, featured in the August 1981 issue of Byte and described in detail by Adele Goldberg and David Robson in Smalltalk-80: The Language and Its Implementation (1983).
How Smalltalk made everything an object
In most languages of the 1970s, objects (where they existed) sat alongside primitive values and built-in statements. Smalltalk removed the exceptions:
- Numbers, strings, characters and booleans are objects.
3 + 4sends the message+with argument 4 to the object 3. - Classes are objects, instances of metaclasses, so you can inspect and change them at run time.
- Control structures are messages. There is no built-in
ifstatement:x > 0 ifTrue: [...]sendsifTrue:to a Boolean object with a block as its argument. - Blocks are objects too: closures you can store, pass and evaluate later.
- The environment is made of objects. The compiler, debugger, class browser and windows are all Smalltalk objects you can open and modify.
Programs live in an image, a snapshot of every object in the system, rather than in a set of text files. You save the image and pick up exactly where you left off, a live programming style that still feels modern.
A short Smalltalk example
| total |
total := 0.
1 to: 10 do: [:i | total := total + (i * i)].
Transcript show: 'Sum of squares: ', total printString; cr.
Even the loop is a message, to:do:, sent to the integer 1. The parentheses matter: Smalltalk evaluates binary messages left to right with no precedence, so 3 + 4 * 2 gives 14, not 11.
The environment and the GUI
Smalltalk on the Alto introduced or refined many things now taken for granted: overlapping windows, pop-up menus, a mouse-driven class browser and a debugger that let you fix code while the program was paused. The Model-View-Controller pattern was formulated by Trygve Reenskaug at PARC around 1979 for Smalltalk. During his well-known December 1979 visit to PARC, Steve Jobs saw these ideas demonstrated, and they fed into Apple's Lisa and Macintosh.
Influence and legacy
Smalltalk's influence goes far beyond its own user base:
- Objective-C added Smalltalk-style messaging to C and became the language of NeXT and, later, Apple platforms.
- Ruby took Smalltalk's "everything is an object" and blocks; Self, a Smalltalk descendant, pioneered virtual machine techniques that later fed into Java's HotSpot.
- Software practice: Kent Beck's SUnit inspired JUnit and the whole xUnit family, the first refactoring browser was written for Smalltalk, and Extreme Programming grew out of Smalltalk projects.
Alan Kay received the ACM Turing Award in 2003, partly for his work on Smalltalk.
Is Smalltalk still used today?
Yes, by a dedicated community. Pharo and Squeak are free, open-source and actively developed, Cincom still sells VisualWorks and ObjectStudio, and GemStone/S runs Smalltalk object databases. Some banks, logistics firms and manufacturers still rely on Smalltalk systems built in the 1990s. Anyone curious about how Smalltalk made everything an object can download Pharo and explore a system where every part, down to the compiler, can be opened and changed.
Frequently asked questions
Was Smalltalk the first object-oriented language?
No. Simula 67 introduced classes, objects and inheritance first. Smalltalk took the idea further by making everything an object and coining the term "object-oriented" through Alan Kay. It also popularised the approach through its graphical environment.
What is a Smalltalk image?
An image is a saved snapshot of all the objects in a running Smalltalk system, including your classes, open windows and data. When you start it again, everything is exactly as you left it. Code is usually shared through packages or version control tools rather than by passing whole images around.
What is the difference between Pharo and Squeak?
Both are open-source Smalltalk systems. Squeak was created in 1996 by Alan Kay, Dan Ingalls and others at Apple, with a focus on education and multimedia. Pharo forked from Squeak in 2008 to focus on a clean, modern environment for professional development.







