Learn SMALLTALK with Real Code Examples
Updated Nov 20, 2025
Explain
Smalltalk emphasizes message passing between objects instead of traditional function calls.
It supports a live programming environment with immediate object manipulation and testing.
Used historically in education, research, GUI development, and rapid prototyping.
Core Features
Classes and metaclasses
Blocks (closures) and control structures
Inheritance and polymorphism
Collections and iterators
Debugger and inspector tools
Basic Concepts Overview
Objects and message passing
Classes and metaclasses
Blocks (closures)
Collections and iteration
Image-based environment
Project Structure
Image file containing all objects and classes
Changes file storing incremental code changes
Package or module organization (Pharo/Squeak)
Test scripts executed in workspace
Optional external files for persistence
Building Workflow
Create class in the system browser
Define methods in the class
Instantiate objects and send messages
Use workspace to test code interactively
Inspect objects and debug in live environment
Difficulty Use Cases
Beginner: experimenting with objects and messages
Intermediate: creating classes and small GUI apps
Advanced: developing frameworks or domain-specific languages
Expert: extending the VM or image-level tools
Comparisons
Unlike Java/C++, fully dynamic and pure OOP
Image-based vs file-based languages
Message passing vs function calls
Live environment vs compiled batch code
Reflective and extensible vs static languages
Versioning Timeline
1972 β Smalltalk-72
1973 β Smalltalk-73
1977 β Smalltalk-80 standardization
1980s β GUI adoption and commercial systems
1990sβ2000s β Pharo, Squeak, VisualWorks modern implementations
Glossary
Message: invocation sent to an object
Block: a closure or anonymous function
Image: snapshot of all objects and classes
Inspector: runtime object viewer
Workspace: interactive coding environment