Smalltalk-80
Pure object-oriented, message passing. First appeared 1980; dynamic scripting; gui research, live environments.
Record¶
| First appeared | 1980 |
|---|---|
| Family | Dynamic scripting |
| Paradigm emphasis | Pure object-oriented, message passing |
| Typing | Dynamic, strong |
| Memory | Tracing GC |
| Execution | Bytecode VM |
| Primary domain | GUI research, live environments |
| Designers | Alan Kay, Dan Ingalls, Adele Goldberg |
| Reference | https://www.iso.org/standard/36042.html |
| Last verified | not yet checked against its source by a human |
Dates are first public release or publication, not the start of internal development. Colour on the typing and memory tags encodes kind, never rank.
Influence¶
Within the Dynamic scripting¶
Late binding and rapid iteration, usually paired with a large package ecosystem and an interpreter or JIT.
| Language | First appeared | Typing | Memory | Execution |
|---|---|---|---|---|
| BASIC | 1964 | Dynamic, weak | Interpreter-managed | Interpreted |
| Perl | 1987 | Dynamic, weak | Reference counting | Interpreted |
| Self | 1987 | Dynamic, strong | Generational tracing GC | JIT |
| Python | 1991 | Dynamic, strong | Refcount with cycle collector | Interpreted |
| Lua | 1993 | Dynamic, weak | Incremental tracing GC | Bytecode VM |
| JavaScript | 1995 | Dynamic, weak | Tracing GC | JIT |
| PHP | 1995 | Dynamic, weak | Refcount with cycle collector | Bytecode VM |
| Ruby | 1995 | Dynamic, strong | Tracing GC | Bytecode VM |
| TypeScript | 2012 | Static, erased at runtime | Tracing GC (host) | Transpiled to JavaScript |
9 other languages in this family, ordered by first appearance. Smalltalk-80 itself is omitted. Source: languages.json.