Howdy Logo
Glossary Hero image

The Howdy Glossary

Search terms in Glossary


Self is a programming language designed for object-oriented programming by David Ungar and Randall Smith at Xerox PARC. It was developed as the successor to Smalltalk, intended to improve performance through adaptive optimization without the need for manual intervention from the programmer. Self introduced a model based on prototypes rather than classes, enabling dynamic redefinition of objects at runtime without affecting instances already created. The language uses a garbage collector with generational collection and copy-on-write semantics for efficient memory management. Despite failing to achieve mainstream adoption, Self has influenced other languages such as JavaScript, which adopted some of its ideas like prototype-based inheritance in ES6 (EcmaScript 2015).