Paradigms | object-oriented (prototype-based) |
---|---|
Family | Smalltalk |
Designed by | David Ungar, Randall Smith |
Developers | David Ungar, Randall Smith, Stanford University, Sun Microsystems |
First appeared | 1987 |
Stable release | 2024.1
/ August 28, 2024 |
Typing discipline | dynamic, strong |
OS | Cross-platform: Unix-like, macOS, Windows |
License | BSD-like |
Website | www |
Major implementations | |
Self | |
Influenced by | |
Smalltalk, APL[1] | |
Influenced | |
NewtonScript, JavaScript, Io, Agora, Squeak, Lua, Factor, Rebol |
Self is a general-purpose, high-level, object-oriented programming language based on the concept of prototypes. Self began as a dialect of Smalltalk, being dynamically typed and using just-in-time compilation (JIT) with the prototype-based approach to objects: it was first used as an experimental test system for language design in the 1980s and 1990s. In 2006, Self was still being developed as part of the Klein project, which was a Self virtual machine written fully in Self. The latest version, 2024.1 was released in August 2024.[2]
Several just-in-time compilation techniques were pioneered and improved in Self research as they were required to allow a very high level object oriented language to perform at up to half the speed of optimized C. Much of the development of Self took place at Sun Microsystems, and the techniques they developed were later deployed for Java's HotSpot virtual machine.
At one point a version of Smalltalk was implemented in Self. Because it was able to use the JIT, this also gave extremely good performance.[3]