← New search

Other meanings of Smalltalk

PROGRAMMING LANGUAGES

Smalltalk

Smalltalk is an object-oriented programming language and interactive development environment developed at Xerox PARC in the 1970s. It treats computation as communication among objects, combining a compact language core with live inspection, debugging, and modification of running programs.

1970s
Developed at Xerox PARC
Origin
1980
Smalltalk-80 introduced
Major release
Everything is an object
Core design principle
Model
1

Origins and design

Smalltalk emerged from an effort to create a personal, graphical computing environment in which users could learn, create, and manipulate software directly. Alan Kay led the conceptual work, while Adele Goldberg, Dan Ingalls, Ted Kaehler, Diana Merry, and others contributed to the language, environment, and research systems at Xerox PARC.1 The language drew on Simula's object concepts, Lisp's flexibility, and ideas about children using computers as creative media.

Its defining model is unusually uniform: numbers, classes, methods, blocks, windows, and even control structures are represented as objects or object interactions. Rather than centering syntax on statements and data types, Smalltalk expresses behavior through messages sent to objects. This design made the language both conceptually coherent and highly reflective: programs can examine and alter their own structures while they run.

2

The language and image

Smalltalk programs are organized around classes, methods, objects, and message sends. A class describes behavior and structure, while inheritance allows one class to specialize another; method lookup determines which implementation responds to a message. Control flow is expressed through messages and blocks, giving constructs such as conditionals and iteration a regular object-oriented form.

Development traditionally takes place inside an image, a persistent snapshot containing objects, code, tools, and application state. The image is paired with a virtual machine that executes the system, often through bytecode or just-in-time compilation. This arrangement supports the characteristic Smalltalk workflow: inspect an object, change a method, test the result, and continue without rebuilding an entire application. The approach anticipated modern live programming environments and influenced later systems such as Self, Squeak, and Pharo.12

3

Smalltalk-80 and influence

Smalltalk-80 transformed a research system into a broadly documented language and environment. Its distribution in the early 1980s established conventions for classes, collections, streams, graphical interfaces, exceptions, and development tools that became influential well beyond Smalltalk itself.3 The system's model-view-controller architecture, developed in the Smalltalk community, became a widely reused pattern for separating application data, presentation, and user interaction.

Smalltalk also helped popularize the idea that an integrated programming environment should be a coherent medium rather than a collection of external editors, compilers, and debuggers. Object-oriented languages including Objective-C, Java, Ruby, Python, and C# differ substantially from Smalltalk, but many adopted ideas associated with its message-oriented style, dynamic dispatch, interactive inspection, or uniform object model. Its direct commercial impact was smaller than that of C++ or Java, yet its influence on software design and programming tools was disproportionate.

4

Implementations and modern descendants

Smalltalk is a family of related implementations rather than a single implementation controlled by one vendor. VisualWorks, VisualAge Smalltalk, Dolphin Smalltalk, GemStone/S, Pharo, and Squeak represent different branches with distinct libraries, virtual machines, and deployment models. Pharo began as a modernized, open-source descendant of Squeak and emphasizes clean design, tooling, and education.4 Squeak remains an open, portable Smalltalk system with roots in the original research tradition.5

Some implementations are used in commercial systems, especially where long-lived applications benefit from rapid development, reflective tools, and persistent object technology. GemStone/S, for example, extends the Smalltalk model with a server-side object database and support for large multiuser systems. Other implementations focus on teaching, language research, web development, or experimentation with new virtual-machine techniques.

5

Lesser-known aspects

Smalltalk's most distinctive contribution may be its treatment of the development environment as part of the language itself. A debugger is not merely a failure report: a programmer can open the suspended computation, inspect its objects, edit a method, and resume execution. This practice helped establish interactive debugging as a form of program construction rather than only diagnosis.

The language also has an unusually small syntactic core. In classic Smalltalk, much apparent control syntax is implemented through ordinary methods and blocks, which makes the system extensible without adding many special cases to the parser. Its image model, however, can complicate version control, reproducible builds, and deployment when compared with text-file-centered workflows. Smalltalk's relative rarity today therefore reflects not a lack of technical influence, but the trade-offs of a highly integrated environment that differs from mainstream source-code and build-tool conventions.14

Glossary

Image
A persistent snapshot containing objects, classes, tools, and application state in a Smalltalk system.
Message send
An operation in which a receiver object is asked to perform behavior identified by a selector and optional arguments.
Virtual machine
The runtime software that loads a Smalltalk image and executes its compiled methods.
Reflection
The ability of a program to inspect or modify its own objects, classes, methods, and execution state.
Model-view-controller
An architectural pattern separating application data and behavior, presentation, and user input handling.

Smalltalk refers here to the programming-language family and development environments originating at Xerox PARC, not to the general English term for informal conversation.