Programming with Prototypes

Programming with prototypes is an alternative to using class-based object systems.

See Also

On things, by RS
artificial intelligence

Further Reading

The Universal Design Pattern , [L1 ], 2008-10-20
An explanation of the Properties Pattern.
Organizing Programs Without Classes , Ungar et al, Lisp and Symbolic Computation 1991
Born of the the Self project.

Tcl Prototype Systems

Prototype Pattern in Tcl
A simple prototype implementation by EKB, and an example by DKF of how to do it in 8.6 with TclOO
Selfish, by Setok
another minimal tcl object system (XOTcl like syntax)
dicthash: Yet another lightweight object system
Prototype Object Extension for Tcl. Features prototype-based inheritance, constrainst, and persistence.
Prototype Pattern in Tcl
includes a short and sweet TclOO implementation of Steve Yegge's Prototype Pattern
SELF extension
Inspired by SELF Uses objects that only have slots.
Snit's Not Incr Tcl
a pure-Tcl object framework which relies on object composition and delegation rather than object inheritance
Frameset based OO implemention for Tcl.
Small prototype-oriented object system.
Yet another object system
does everything with lists.
a pure Tcl system that is very simple and extensible.
Procs as objects
does it with default arguments to procs, instance variables might be kept in alias only.
an extension to the Tcl programming language that enables object-oriented (OO) programming in a class-based, Java-like style. Toe provides commands that allow a Tcl scripting programmer to create OO classes, define functional relationships between classes, run Tcl code in objects created from the classes, and implement various multiple-class patterns that are well-known in the object-oriented paradigm.
Tcl With Objects. Author wrote it because I felt that existing object extensions to TCL either were so complex they were difficult to port and to debug, or they made member variable access unnecessarily complex
UFO (yet another pure tcl OOS), by MS
an unfriendly [sic] but powerful prototype-based object system
ycl::context, by PYK
Features cascading variable and command access. A predecessor to ycl shelf.
ycl ns dupensemble
Instantiate objects duplicating namespaces.
ycl::ns::object, by PYK
like ycl::context, but implemented in less code, taking advantage of the nuances namespace functionality. Cascading variable and command access. Methods are subcommands of a namespace ensemble, and use info level 0 to bind to an object when called. Upmethods bind to an object by using upvar 1..., and upvar 2... is the caller of the method. Also a predecessor to ycl shelf.
ycl shelf
Provides a reasonably-well-equipped prototype from which to begin. Utilizes ycl ns dupensemble.

Non-Tcl Prototype Languages

Self Programming Language