Read This! | | Quick Links | Algorithms | AssemblyLanguage | BASH | C-Programmming | CommonLisp | Computer Security | CuisSmalltalk | Databases | Emacs | Exploitation | Functional Programming | Firewalls | Git | GNUSmalltalk | Haskell | Javascript | Julia | Linux | Machine Learning | Metasploit |Machine Learning | Networking | Operating Systems |Open Data Science | Odin | Picolisp | Pharo Smalltalk | Purescript | Python | Racket | Scheme | Social Engineering | Unity | vim | V | Web Development | Windows WSL | Zig
Cuis Smalltalk
Here is the truth about Cuis: it is Smalltalk stripped back to something one person can understand completely – a personal computing environment that still fits in a single mind. If Pharo is a bustling city, Cuis is a well-kept village with excellent roads.
What it is, in plain words
Cuis Smalltalk (often just Cuis) is a free Smalltalk-80 descendant maintained by Juan Vuletich and contributors, focused on:
- a small, clean image you can read;
- excellent vector graphics (VectorEngine);
- faithfulness to classic Smalltalk ideas without decades of accretion;
- running on OpenSmalltalk / CuisVM across platforms.
You live inside the image: browser, workspace, transcript, debugger – the classic Smalltalk tools. Packages extend it without turning the core into a jungle.
Why it matters
Most modern environments bury you under abstractions you can’t finish reading. Cuis is a bet that a comprehensible personal system still matters – the same bet I recognise in PicoLisp and Void. Studying Cuis teaches OOP as message passing, not as a keyword museum, and it is pleasant.
An everyday analogy: a hand-built bicycle
Pharo is an e-bike with a app store. Cuis is a steel-frame road bike you can strip and rebuild on the kitchen table. Slower to acquire gadgets; faster to understand every click.
A hands-on example
Download the image and VM from the Cuis site, start it, and in a Workspace evaluate:
3 + 4 * 2. "14 – left to right"
(1 to: 10) sum. "55"
Morph new openInWorld. "a rectangle you can drag"
Object subclass: #Counter
instanceVariableNames: 'count'
classVariableNames: ''
poolDictionaries: ''
category: 'Demo'.
Counter compile: 'initialize
count := 0'.
Counter compile: 'inc
count := count + 1'.
Counter compile: 'count
^ count'.
c := Counter new inc inc.
c count. "2"
Browse the class with the Browser, set a breakpoint, and enjoy a debugger that is the environment. Compare with GNU Smalltalk (file-oriented) and Pharo (larger ecosystem).
Common misconceptions
- “Smaller means abandoned.” Cuis is actively maintained with a clear philosophy.
- “You can’t ship apps.” People do; the path is different from
npm init. - “It’s only for nostalgia.” Message-passing OOP remains a sharp tool.
- “Cuis and Pharo packages are interchangeable.” Ecosystems differ; ideas transfer.
Living in the image
Save often. Use commits of the image or FileOut packages when you experiment. The debugger is not a failure state – it is the normal way to understand a running object. If you come from file-oriented languages, schedule a week to unlearn “edit-compile-restart” and learn “change-the-object-while-it-runs”. That week is the whole point of Smalltalk.
Connections
- Pharo, Learn Pharo, GNU Smalltalk.
- Objects and Messages, JavaScript Objects.
External Links
- Get Cuis
- https://github.com/Cuis-Smalltalk/Learning-Cuis
- https://github.com/Cuis-Smalltalk/Learning-Cuis/blob/master/LayoutTour.md
- The Cuis Book
- The Cuis Book - Github
