# **🎨 Booth: Smalltalk (1972)**

* **Creator:** Alan Kay, Adele Goldberg, Dan Ingalls (Xerox PARC)  
* **Design Philosophy:** "Everything is an object." Smalltalk envisioned computing as a biological ecosystem where modular, self-contained objects communicate exclusively via dynamic message-passing.  
* **Key Innovations:** Dynamic typing, automatic garbage collection, image-based development environments, and the concept of True Object-Oriented Programming (OOP). It directly inspired the development of modern Graphical User Interfaces (GUIs).

## **🚀 Hello, World\!**

Transcript show: 'Hello, World\!'; cr.

## **🎨 Showpiece: A Counter Class with Custom Messages**

In Smalltalk, operations like arithmetic addition or conditional execution are message sends. This script defines a simulated Counter object, demonstrates sending keyword messages, and modifies internal state.

"Define a simple counter class simulation"  
Object subclass: \#Counter  
    instanceVariableNames: 'count'  
    classVariableNames: ''  
    poolDictionaries: ''  
    category: 'Museum-Examples'\!

\!Counter methodsFor: 'initialization'\!  
initialize  
    count := 0\.  
    ^self\! \!

\!Counter methodsFor: 'accessing'\!  
value  
    ^count\! \!

\!Counter methodsFor: 'operations'\!  
incrementBy: anInteger  
    count := count \+ anInteger.\!  
      
decrementBy: anInteger  
    count := count \- anInteger.\! \!

"Execute and inspect the behavior in the system workspace"  
| myCounter |  
myCounter := Counter new initialize.  
myCounter incrementBy: 5\.  
myCounter decrementBy: 2\.

Transcript show: 'Counter final value is: ', myCounter value asString; cr.  
