Welcome to Self

News

  • From the blog: Announcing the Self Handbook (30 September 2009)
  • From the blog: Congrats to Dave Ungar for winning the the 2009 Dahl-Nygaard Senior Prize for his work on Self and object orientation! (16 May 2009)
  • We have an official Self blog! Check it out today! (16 May 2009)
  • Self 4.4 Alpha 2 is released - the Demo snapshot is back, and MacOS X snapshots can be run without requiring the Terminal.app to be open (though commandline execution is of course still available) (download now). We look forward to help and feedback. (9 May 2009)
  • As a technology preview of the new MacOS X performance and of the new Linux VM, Self 4.4 Alpha 1 is released (download now). We look forward to help and feedback. (6 February 2009)
  • Welcome to the new official website and one-stop-shop for Self! (26 January 2009)

About

Self is a prototype-based dynamic object-oriented programming language, environment, and virtual machine centered around the principles of simplicity, uniformity, concreteness, and liveness.

Self includes a programming language, a collection of objects defined in the Self language, and a programming environment built in Self for writing Self programs. The language and environment attempt to present objects to the programmer and user in as direct and physical a way as possible. The system uses the prototype-based style of object construction.

The first version of the Self language was designed in 1986 by David Ungar and Randall B. Smith at Xerox PARC. A series of Self implementations and a graphical programming environment were built at Stanford University by Craig Chambers, Urs Hölzle, Ole Agesen, Elgin Lee, Bay-Wei Chang, and David Ungar. The project continued at Sun MIcrosystems Laboratories, where it benefited from the efforts of Randall B. Smith, Mario Wolczko, John Maloney, and Lars Bak. Smith and Ungar jointly led it there. Work on the project officially ceased in 1995

Release 4.0 contained an entirely new user interface and programming environment designed for “serious” programming, enabling the programmer to create and modify objects entirely within the environment, and then save the object into files for distribution purposes. The metaphor used to present an object to the user is that of an outliner, allowing the user to view varying levels of detail. Also included in the environment is a graphical debugger, and tools for navigation through the system.

Self is available for Solaris, Linux and natively on MacOS X under a BSD-like licence; we would be very interested in anyone prepared to make a Windows port.

Contents

 

This page