Skip to content

The goal is to compile a reasonably complete list of all implementations of the Smalltalk system

License

Notifications You must be signed in to change notification settings

jeceljr/SmalltalkSurvey

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 

Repository files navigation

SmalltalkSurvey

The goal is to compile a reasonably complete list of all implementations of the Smalltalk system.

Hot air ballons form Wikipedia

While it is very common for a recent language to have a single, open source implementation thanks to the Internet and to the reduced kinds of computers now available, it used to be inevitable for interesting languages to have many different implementations. The most common reason was due to the language not being available on your computer, or only a very expensive commercial version being available. The languages themselves were simpler and didn't include much in terms of libraries, so the effort to implement from a written description was not too bad. These descriptions were often not complete, leaving the implementors to guess many details and to include their own ideas. While languages like Basic and Pascal split into many dialects, the Forth, Lisp and Smalltalk communities were specially prone to this.

This page tries to trace the many Smalltalk dialects created over the years. In theory the separation of the system into a virtual machine running an "image" file should have helped splits be less common than in other languages, but in practice commercial reasons and hardware limitations encouraged recreating the image from scratch in many different projects.

What is Smalltalk?

A language will be considered to be a Smalltalk if

  1. it is easy to type in an example from a Smalltalk-80 book while adapting it on the fly (not counting any differences in the libraries) or
  2. if "smalltalk" is part of the project's name.

Rule 1 is very subjective. For some people it might be trivial to translate Smalltalk-80 into Objective-C or Javascript while typing at full speed, but many others would find it a bit complicated.

The reason for rule 2 is to allow an implementation's creators to decide. If they selected to include "smalltalk" in the name of their project then their intent should be respected. In the current version of the list below only Smalltalk-72 (and -74) and MIT's ConcurrentSmalltalk depend on this rule. It would be silly to exclude the very first Smalltalk even if it lacks many features that later became standard and the Lisp syntax of the MIT project is only a small issue given how the rest of the project adopts the traditional Smalltalk ideas.

Type

"Paper" means that a description of the language was published without a corresponding implementation (at that time). "System" indicates that both a virtual machine and an image including libraries were implemented. "VM" means that a new virtual machine was created to run some existing image, while "image" indicates a new image and libraries running on a previously implemented virtual machine or an implemention on top of an existing system.

License

"Open" means that the license is in the spirit of Open Source or Free Software (linking to the code repository). "Commercial" is closed software that was sold. "Internal" was not made available to the public at all. "No cost" was made available without payment but without the sources (the more proper term "freeware" would cause confusion with Free Software and so was avoided).

Implementations:

Taken from a draft Smalltalk history at Simberon: relationship between Smalltalk implementations

Initial Release and Forks

year name and version type authors license description
2022 PigeonTalk system David Buck block based, like Scratch
2022 Smalltalk-80-CompilerLib compiler Mark Bush open Smalltalk compiler in Swift
2021 zigSelf system sin-ack open Self in Zig
2021 Zag system David Mason open VM written in Zig
2021 self-interpreter VM Jacob Pinney open interpreter for Self in Python
2021 JSqueak-2021 VM Ricky open fork of Squeak VM in Java
2020 Haver image Gerald Klix open runs on Cuis and adds modules
2020 ST80 VM devhawala open Smalltalk-80 VM in Java with interesting references
2020 Crosstalk VM Michael Engel open Smalltalk-80 VM in C++ for Raspberry Pi
2020 Smalltalk VM Dan Banay open translations of the "Blue Book" VM to C++
2020 Smalltalk VM Rochus Keller open interpreter and other tools to explore the orignal Smalltalk-80 image
2020 Amiga-Smalltalk VM Graham Lee, Alan Francis open "blue book" Smalltalk VM for the Amiga
2020 SmallJ VM Richard R open fork of SmallWorld
2020 Little Smalltalk-G system Gregor Richards open fork of Little Smalltalk 5
2019 stvm VM Vincent Aranega open Smalltalk VM in Python
2019 Smalltalk-72 system Pablo Marx open Nova assembly and Smalltalk-72 sources)
2019 Mist system Braden Shepherdson open micro Smalltalk with VM in Javascript
2019 ScarletSmallTalk compiler Astares open translates Smalltalk to Javascript
2019 Rusttalk VM Chris Toshok open Smalltalk VM in Rust
2019 RST-Compiler compiler Drakeor open translates Smalltalk to x86 assembly, written in Rust
2018 GotalkInterpreter VM Michael Alastor, Alexander K open simple Smalltalk interpreter in Golang
2018 CrankVM VM Ronie Salgado open minimal VM in C
2018 SmallBalloon system fwcd open Smalltalk interpreter for Javascript
2018 Jupiter system David Arias open language based on Smalltalk/Self
2017 TruffleSqueak VM Hasso PLattner Institut open uses Truffle and GraalVM
2017 lowtalk VM Ronie Salgado open VMless metacircular implementation using Pharo
2017 Smoltok VM Matt Parsons open Blue Book VM in Rust
2016 Crosstalk system Ken Dickey open Smalltalk in Scheme
2015 SqueakJS VM Vanessa Freudenberg open VM for Squeak/Cuis/Pharo in Javascript
2015 Spry system Göran Krampe open very tiny but Smalltalk-like implemented in Nim
2015 smalltalk-vm VM Michal Balda open simple VM in C
2015 lodtalk system Ronie Salgado open embeddable Smalltalk
2015 lst3r system Chris Reuter open cleanup of Little Smalltalk 3
2015 StNG VM Federico Omoto open Smalltalk Next Generation in Nim
2015 TruffleMATE system Guido Chari open fork of TruffleSOM
2015 SmallTalk-VirtualMachine VM Mayank Thirani open generate and interpret Smalltalk bytecodes in Java
2014 Korz image David Ungar, Harold Ossher internal a subjective extensions of Self or Javascript
2014 Smalltalk 25 system Boris Shingarov generate a VM from the definition of a processor
2014 Bee Smalltalk system Javier Pimás, Javier Burroni, Gerardo Richarte open metacircular Smalltalk
2014 Smalltalk78JS VM Vanessa Freudenberg open VM for Smalltalk-78 in Javascript
2013 Gravel system Wouter Gazendam open Smalltalk implementation for the Java VM
2013 TruffleSOM VM Stefan Marr open SOM (Simple Object Machine) Smalltalk on Truffle
2013 YetAnotherSmalltalkVM VM Ladislav Marek open Smalltalk VM in C with JIT
2013 TinyHiss system Darius Bacon open toy Smalltalk in Python
2013 st76 VM dsmvwld open Smalltalk-76 in Java
2013 smalltalk system Stanislav Yaglo open Smalltalk on Objective-C runtime
2012 Tumbleweed system Paul Gregory open fork of Little Smalltalk 3
2012 Mist system Martin McClure open simple Smalltalk-in-Smalltalk that compiles to x86-64
2012 LittleSmallscript system Minori Yamashita open translates Smalltalk into Javascript
2012 list VM Dmitry Kashitsyn open LLVM compiler for Little Smalltalk 5
2012 Minitalk system Hellwig Geisse open experimental Smalltalk
2011 Amber Smalltalk system Nicolas Petton open runs on Javascript
2011 Redline Smalltalk system James Ladd, Sean Allen open runs on the Java VM
2011 Objective-Smalltalk system Marcel Weiher open combines features from Objective-C and Smalltalk
2011 Reak system Konstantin Haase open Smalltalk on Rubinius
2011 A Little Smalltalk system Alain Fischer open fork of Little Smalltalk 3
2010 Sly image David Ungar, Sam Adams open extends Squeak to implement ensembles and adverbs on the RoarVM
2010 Pinocchio system U of Berne open meta-circular VM
2010 Irontalk system William Lahti open Smalltalk for .NET
2010 LittleTalk system Hugo Ferreira open minimalistic, self hosting Smalltalk
2010 S8 system u8 team open Smalltalk for social construction
2009 Cuis 1.0 image Juan Vuletich open fork of Squeak 3.7 to make it simpler
2009 Pharo 0.1 image Pharo Board open fork of Squeak 3.9 to go in a different direction
2009 Clamato system Avi Bryant open Smalltalk dialect implement in client-side JavaScript
2009 chitchat compiler Stephen Weeks open translates Smalltalk to Parrot VM (Perl)
2008 RoarVM VM David Ungar, Sam Adams open a rewrite of the SqueakVM in C++ to run on manycore machines
2008 OpenSmalltalkVM VM Eliot Miranda open fork of the SqueakVM to do JIT compilation and other enhancements
2008 Huemul system Guilleromo Adirán Molina uses Exupery to compile to x86
2008 Panda system Vincent Geddes open Smalltalk implemented from scratch in C99
2008 IronSmalltalk VM Erlis Vidal open Smalltalk VM in C#
2007 RSqueak VM HPI-SWA open VM for Squeak using the PyPy project
2007 Smalltalk YX system Luca Bruno open Smalltalk-80 implementation in C
2006 JSqueak/Potato VM Dan Ingalls open VM for Squeak written in Java
2005 Parla system Michael Koehne open fork of Little Smalltalk 3
2004 Ambrai Smalltalk system Ambrai Inc commercial small system optimized for MacOS X
2004 Susie system Montgomery Tidwell open (Scripting Using a Smalltalk Interpreter Engine) fork of PDST
2002 LST 4.5 system Kyle Hayes open fork of Little Smalltalk 4
2002 SmallWorld VM Tim Budd open Little Smalltalk VM in Java
2002 ATalk system Jim Steichen open (AmigaTalk) fork of Little Smalltalk 1
2002 Jitter5 VM Ian Piumarta open JIT compiler for Squeak
2002 #Smalltalk system John Brant, Don Roberts open Smalltalk for .NET
2002 OOVM system Lars Bak commercial Smalltalk for embedded devices, with special block arguments
2002 Slate system Lee Salzman, Brian Rice open prototype based with multiple dispatch
2002 S# system David Simmons commercial Smalltalk for .NET
2002 SOM system U of Aarhus open SimpleObjectMachine for teaching implementation techniques
2001 dSelf system Robert Tolksdorf, Kai Knubben distributed version of Self
2001 Klein VM David Ungar open metacircular Self VM
2001 Self4Linux VM Gordon Cichon open x86 JIT compiler for Self
2001 Jitter3 VM Ian Piumarta open JIT compiler for Squeak
2001 LSWVST system Lesser-Software commercial bytecode compatible with Smalltalk/V
2000 Jitter2 VM Ian Piumarta open JIT compiler for Squeak 2.3
2000 Bistro system Nik Boyd open Smalltalk on top of the Java VM
1999 PDST system Douglas Hammond open (Public Domain Smalltalk) fork of Little Smalltalk 3
1999 OpenSelf vm Marko Mikulicic open rewrite of the Self VM from scratch
1999 JSelf VM Diego Deck open Self VM in Java
1999 F-Script system Philippe Mougin open Smalltalk layer on top of Cocoa MacOS, with APL style extensions
1999 smalltalk system Richard Cornwell open VM in C and Smalltalk sources
1998 Jitter1 VM Ian Piumarta open JIT compiler for Squeak 1.3 generating threaded code
1998 Dolphin system Object Arts commercial small system optimized for Windows
1998 Pocket Smalltalk system Andrew Brault open develop in an IDE an generate executable for Palm Pilot
1997 tinySelf1 VM Jecel Assumpção Jr open parallel Self VM written in Self
1997 ZokuTalk system Peter William Lount internal MOBS: Messages, Object, Blocks and Syntax
1996 Us image David Ungar, Randy Smith internal a subjective extension of Self
1996 Squeak system Apple open VM written in Slang (Smalltalk subset) and simulated within Smalltalk
1996 Strongtalk system Animorphic Systems commercial vm techniques from Self, optional typing, traits
1995 Self/R paper Jecel Assumpção Jr reflective extension of Self
1994 Smalltalk MT system Tarik Kerroum commercial compiles Smalltalk to machine code with easy access to DLLs
1994 SmalltalkAgents system Quasar Knowledge Systems commercial features optimized to access MacOS resources
1993 VisualAge system IBM commercial focus on IDE for various languages
1991 Ultimardrev VM Philippe Mulet, Fred Rivard open Self 1 interpreter in Smalltalk 2.5
1990 GNU Smalltalk system Steve Byrne, Paolo Bonzini open text based
1989 Object Studio system ENFIN commercial originally called SCOPE, for military applications on the PC
1988 ConcurrentSmalltalk hardware MIT internal Lisp syntax version of Smalltalk on the 1024 processor J-Machine
1987 VisualWorks system ParcPlace commercial spinoff from Xerox PARC to implement Smalltalk-80 for workstations (originally ObjectWorks)
1987 Mushroom hardware U Manchester internal multiple FPGAs and TTLs
1987 Self paper Dave Ungar, Randy Smith prototype based
1986 Smalltalk/X system Claus Gittinger internal Smalltalk to C translator, initially
1986 ConcurrentSmalltalk system Yasuhiko Yokote, Mario Tokoro implements "return and continue", mailboxes
1986 Swamp hardware U Toronto internal bitslice
1986 AI32 hardware Hitachi internal chip
1986 Smalltalk V system Digitalk commercial graphic Smalltalk on DOS
1986 GemStone/S system Servio commercial integrated database and Smalltalk
1985 Methods system Digitalk commercial text GUI on the IBM PC
1985 Smalltalk-PC system Christopher Made implementation for the Apple II and other micros
1984 Sword32 hardware U Tokyo internal chip
1984 COM hardware Caltech internal Object architecture
1984 Little Smalltalk 1 system Tim Budd open text based for Unix machines with corresponding book
1984 Clone/Reduce VM Jecel Assumpção Jr internal An alternative execution model via copying ASTs at runtime
1983 SOAR hardware Berkeley internal Smalltalk On A RISC processor and software
1981 Smalltalk-80 VM Tektronix internal 68000 prototype
1981 Smalltalk-80 VM Apple internal Lisa
1981 Smalltalk-80 VM DEC internal 32 bit port to the VAX
1981 Smalltalk-80 VM HP internal VAX
1981 Smalltalk-80 VM U Berkeley VAX
1981 OPL 432 system Scott Warren commercial port of Rosetta Smalltalk to Intel's iAPX432 system
1981 Rosetta Smalltalk system Scott Warren for 8 bit microcomputers, shown at the Exidy booth at NCC'81
1980 Smalltalk-76 image PARC, Pablo Marx open reformated sources from a 1980 dump of Smalltalk-76
1980 TinyTalk system PARC internal 64KB adaptation of Smalltalk-76
1980 Smalltalk-80 system PARC open release to the world
1978 Smalltalk-78 system PARC internal Notetaker
1976 Smalltalk-76 system PARC internal bytecodes and inheritance
1974 Smalltalk-74 system PARC internal OOZE (object-oriented zoned environment) virtual memory system
1972 Smalltalk-72 system PARC internal first implementation
1971 Smalltalk-71 paper PARC initial ideas

Further Major Releases

year name and version authors license description
2022 Squeak 6.0 Squeak Board open high resolution, uses SistaV1 bytecodes
2022 Cuis 6 Juan Vuletich open includes Morphic 3
2022 VAST Platform 11.0.0 Instanciations commercial
2022 Pharo 10 Pharo Board open
2021 VAST Platform 10.0.0 Instanciations commercial renamed VA Smalltalk to VAST Platform
2021 Pharo 9 Pharo Board open
2020 ObjectStudio 9.0 Cincom commercial
2020 VisualWorks 9.0 Cincom commercial
2020 Pharo 8.0 Pharo Board open
2019 Pharo 7.0 Pharo Board open
2017 VA Smalltalk 9.0 Instanciations commercial
2017 Pharo 6.0 Pharo Board open
2017 Self 2017.1 Russell Allen open
2016 Cuis 5.0 Juan Vuletich open
2016 Dolphin 7 Object Arts open open sourced the system
2016 Pharo 5.0 Pharo Board open
2015 SmallWorld 2015 Russel Allen, Davide Casa open update of the SmallWorld 2007 fork of SmallWorld
2015 Squeak 5.0 Squeak Board open introduced Spur memory model
2015 Pharo 4.0 Pharo Board open
2014 Pharo 3.0 Pharo Board open
2014 VisualWorks 8.0 Cincom commercial
2013 Pharo 2.0 Pharo Board open
2012 Cuis 4.0 Juan Vuletich open better package support
2011 Cuis 3.0 Juan Vuletich open new look
2010 Cuis 2.0 Juan Vuletich open closure enabled, can used Co VM
2010 Self 4.4 Russell Allen open
2009 Pharo 1.0 Pharo Board open
2009 VA Smalltalk 8.0 Instanciations commercial
2009 Dolphin 6 Object-Arts, Lesser Software commercial moved Dolphin to LSWVST virtual machine
2008 Squeak 3.10 Squeak Board open first release after Pharo fork
2008 Self 4.3 Russell Allen open release of changes by David Ungar since 4.0 in 1995
2007 SmallWorld 2007 Russell Allen, Davide Casa open continuation of SmallWorld, a VM for Little Smalltalk in Java
2007 Little Smalltalk 5 Charles Childers open
2006 Strongtalk Sun open an open source release of the vm from the 1997 Strongtalk
2005 Little Smalltalk 4 Tim Budd open metaclasses, compiler in Smalltalk
2005 VA Smalltalk 6.0.2 Instanciations commercial transition from IBM VisualAge to VA Smalltalk
2002 Strongtalk Sun open an open source release of the image from the 1997 Strongtalk
2002 VisualWorks 7.0 Cincom commercial
2001 Squeak 3.0 Squeak Central open switched to Morphic as default GUI
2000 Squeak 2.0 Squeak Central open pluggable views, Morphic
1999 VisualWorks 5i Cincom commercial uses native stack
1998 VisualWorks 3.0 ObjectShare commercial
1996 Smalltalk Express ObjectShare no cost freeware version of Smalltalk V/Win
1995 Visual Smalltalk 3.0 Digitalk commercial client and Enterprise versions for OS/2 and Windows NT
1995 Self 4.0 Sun Labs open Morphic GUI
1994 Smalltalk/X eXept Software AG open moved from hobby to commercial development
1994 VisualWorks 3.0 ParcPlace commercial enhanced database communication
1993 Self 3.0 Sun Labs open two compilers with type feedback
1992 Self 2.0 Sun Labs open improved compiler
1991 Smalltalk V/Win 3.0 Digitalk commercial
1991 Self 1.1 Stanford open threads and clean up
1990 Smalltalk/X Claus Gittinger added JIT compilation
1990 Self 1.0 Stanford open first implementation
1988 Smalltalk V/286 Digitalk commercial protected mode system
1988 Smalltalk V 2.0 Digitalk commercial
1988 Smalltalk/X Claus Gittinger internal added bytecode interpreter
1988 Little Smalltalk 3 Tim Budd open reorganized source tree
1987 Little Smalltalk 2 Tim Budd open globals, more code moved to Smalltalk

About

The goal is to compile a reasonably complete list of all implementations of the Smalltalk system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published