Skip to the content.

Chapter 30: Other Smalltalks Worth Knowing

We’ve explored Pharo, Squeak, and Glamorous Toolkit in depth. But the Smalltalk family is larger and more diverse! From commercial powerhouses to minimalist experiments, each Smalltalk has unique strengths.

In this chapter, we’ll survey other notable Smalltalks: VisualWorks, VA Smalltalk, Smalltalk/X, Cuis, Dolphin, GNU Smalltalk, and more. You’ll learn what makes each special and which to choose for different purposes.

The Smalltalk Family Tree

Smalltalk-80 (1980)
├─ VisualWorks (1990s)
├─ VisualAge (IBM, 1990s)
├─ Smalltalk/X (1990s)
├─ Squeak (1996)
  ├─ Pharo (2008)
  ├─ Cuis (2010s)
  └─ Glamorous Toolkit (2017)
├─ Dolphin Smalltalk (1997)
└─ GNU Smalltalk (1980s/90s)

All descend from Smalltalk-80, but have evolved differently!

VisualWorks

VisualWorks is the commercial flagship of Smalltalk, developed by Cincom.

Overview:

Strengths:

  1. Industrial-grade - Battle-tested in enterprise
  2. Cross-platform - True “write once, run anywhere”
  3. Performance - Highly optimized VM
  4. Commercial support - Professional support contracts
  5. Mature ecosystem - Decades of packages and frameworks
  6. Database integration - Excellent RDBMS support

Features:

When to Use:

Getting Started:

  1. Visit cincomsmalltalk.com
  2. Download VisualWorks (free non-commercial license)
  3. Install and launch
  4. Sophisticated, professional environment

Example:

"VisualWorks syntax is standard Smalltalk"
| window |
window := ApplicationWindow new.
window label: 'Hello VisualWorks'.
window open

VA Smalltalk (VisualAge)

VA Smalltalk is IBM’s enterprise Smalltalk, now maintained by Instantiations.

Overview:

Strengths:

  1. Enterprise integration - CICS, MQSeries, DB2
  2. Team development - ENVY versioning system
  3. Scalability - Large-scale applications
  4. IBM ecosystem - Integration with IBM tools
  5. Proven track record - Used in major corporations

Features:

When to Use:

Getting Started:

Visit instantiations.com/va-smalltalk

Smalltalk/X

Smalltalk/X is a Smalltalk optimized for Unix/Linux environments and embedded systems.

Overview:

Strengths:

  1. C integration - Call C libraries directly
  2. Embedded systems - IoT, industrial control
  3. Unix integration - Native Unix/Linux feel
  4. Performance - JIT compiler
  5. Small footprint - Can run on constrained systems

Features:

When to Use:

Getting Started:

Visit exept.de

Example:

"Calling C library:"
LibC system: 'ls -la'

Cuis Smalltalk

Cuis is a minimalist, pure Smalltalk focused on simplicity and elegance.

Overview:

Philosophy:

Strengths:

  1. Small image - ~10 MB (vs 50+ MB for Pharo)
  2. Clean code - No cruft
  3. Fast - Optimized for performance
  4. Educational - Learn Smalltalk fundamentals
  5. Active development - Constantly refined

Features:

When to Use:

Getting Started:

  1. Visit cuis.st
  2. Download Cuis
  3. Extract and run
  4. Minimal, elegant environment

Example:

"Cuis uses standard Smalltalk syntax"
(1 to: 10) collect: [ :n | n squared ]

Dolphin Smalltalk

Dolphin is a Windows-native Smalltalk with excellent Windows integration.

Overview:

Strengths:

  1. Native Windows - Feels like Windows
  2. ActiveX support - COM integration
  3. Windows UI - Native controls
  4. Performance - Fast on Windows
  5. Professional IDE - Excellent tools

Features:

When to Use:

Getting Started:

Visit github.com/dolphinsmalltalk

GNU Smalltalk

GNU Smalltalk is a command-line Smalltalk, part of the GNU project.

Overview:

Strengths:

  1. Command-line - Scripting-friendly
  2. Unix integration - Pipes, stdin/stdout
  3. C integration - FFI to C libraries
  4. Free as in freedom - GPL licensed
  5. Package manager - Install libraries easily

Features:

When to Use:

Getting Started:

Install via package manager:

# Linux
sudo apt-get install gnu-smalltalk

# macOS
brew install gnu-smalltalk

Example:

# Run Smalltalk script
gst script.st

# Interactive REPL
gst
"In GNU Smalltalk:"
Transcript show: 'Hello from GNU Smalltalk'; nl

Other Notable Smalltalks

Amber Smalltalk

Redline Smalltalk

Smalltalk MT

Strongtalk

Comparison Table

Smalltalk License Platform Best For Active
Pharo MIT Cross Modern dev ✅ Very
Squeak MIT Cross Multimedia, edu ✅ Yes
GT MIT Cross Complex systems ✅ Yes
VisualWorks Commercial Cross Enterprise ✅ Yes
VA Smalltalk Commercial Cross IBM integration ✅ Yes
Smalltalk/X Mixed Cross Embedded, C ✅ Yes
Cuis MIT Cross Minimalism ✅ Yes
Dolphin MIT Windows Windows apps ⚠️ Limited
GNU GPL Unix Scripting ⚠️ Limited
Amber MIT Browser Web frontend ⚠️ Limited

Choosing a Smalltalk

Decision Tree:

1. What’s your goal?

2. Budget?

3. Platform?

4. Community?

Migration Between Smalltalks

Code is largely portable, but differences exist:

Common Across All:

"Core Smalltalk:"
(1 to: 10) collect: [ :n | n * 2 ].
OrderedCollection new add: 'item'; yourself.
String new, 'text'

Platform-Specific:

"UI varies:"
Pharo: SpButton new label: 'Click'.
Squeak: SimpleButtonMorph new label: 'Click'.
VisualWorks: Button new label: 'Click'.

Porting Strategy:

  1. Core logic - Usually portable
  2. UI - Rewrite for target platform
  3. Libraries - Find equivalents
  4. File out code - Use Tonel or Monticello
  5. File in - Load into target Smalltalk
  6. Fix differences - Update platform-specific code

The Future of Smalltalk

Smalltalk remains relevant:

Emerging Areas:

Smalltalk isn’t mainstream, but it’s healthy and evolving.

Try This!

Explore different Smalltalks:

  1. Download Multiple Smalltalks
    • Install Pharo, Squeak, and Cuis
    • Compare the experiences
    • Notice similarities and differences
  2. Write Portable Code
    "This works everywhere:"
    Object subclass: #Calculator
        instanceVariableNames: 'result'
        ...
    
    add: number
        result := result + number.
        ^ result
    

    Load into multiple Smalltalks!

  3. Try GNU Smalltalk
    echo "Transcript show: 'Hello'; nl" | gst
    

    Scripting with Smalltalk!

  4. Explore VisualWorks
    • Download free non-commercial version
    • See commercial-grade tooling
    • Notice performance
  5. Read Comparison Articles
    • Search “Smalltalk comparison”
    • Understand trade-offs
    • Make informed choices

Community Resources

Cross-Smalltalk:

Implementation-Specific:

The Smalltalk Spirit

Despite differences, all Smalltalks share:

  1. Everything is an object
  2. Message passing - Uniform communication
  3. Image-based (mostly) - Live programming
  4. Reflective - Inspect and modify everything
  5. Interactive - Immediate feedback
  6. Simple syntax - Easy to learn
  7. Powerful tools - Excellent IDEs

Choose the implementation that fits your needs, but they’re all Smalltalk at heart!

Looking Ahead

You now understand the diverse Smalltalk ecosystem! You know:

This completes Part VIII (Exploring the Smalltalk Variations)!

In Part IX (Building Real Things), we’ll build complete projects:

You’ll apply everything you’ve learned to create real, working applications!


Key Takeaways:


Previous: Chapter 29 - Glamorous Toolkit Next: Chapter 31 - Project 1: A Todo List Manager