'''Programming with prototypes''' is an alternative to using class-based [object orientation%|%object systems.] ** See Also **'''Programming with prototypes''' is an alternative to using class-based [object orientation%|%object systems.] ** See Also ** [On things], by [RS]: [artificial intelligence]: ** Further Reading ** [http://en.wikipedia.org/wiki/Prototype-based_programming%|%Wikipedia]: [http://c2.com/cgi/wiki?PrototypeBasedProgramming%|%C2]: [http://steve-yegge.blogspot.com/2008/10/universal-design-pattern.html%|%The Universal Design Pattern], [http://steve-yegge.blogspot.com/Steve Yegge], 2008-10-20: An explanation of the ''Properties Pattern''. [http://cs.au.dk/~hosc/local/LaSC-4-3-pp223-242.pdf%|%Organizing Programs Without Classes], Ungar et al, Lisp and Symbolic Computation 1991: Born of the the [Self Programming Language%|%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 [Changes in Tcl/Tk 8.6%|%8.6] with [TclOO] [Selfish], by [Setok]: [another minimal tcl object system (XOTcl like syntax)]: [BOS]: [dicthash: Yet another lightweight object system]: [Poet]: 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 [framesets]: Frameset based OO implemention for Tcl. [theObjects]: Small prototype-oriented object system. [Yet another object system]: does everything with lists. [SDynObject]: 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. [TOE]: 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. [TWO]: 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%|%ycl::context], by [PYK]: Features cascading variable and command access. A predecessor to [ycl shelf]. [ycl%|%ycl ns dupensemble]: Instantiate objects duplicating namespaces. [ycl%|%ycl::ns::object], by [PYK]: like [ycl%|%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%|%ycl ns dupensemble]. ** Non-Tcl Prototype Languages ** [Self Programming Language]: <> object orientation [On things], by [RS]: [artificial intelligence]: ** Further Reading ** [http://en.wikipedia.org/wiki/Prototype-based_programming%|%Wikipedia]: [http://c2.com/cgi/wiki?PrototypeBasedProgramming%|%C2]: [http://steve-yegge.blogspot.com/2008/10/universal-design-pattern.html%|%The Universal Design Pattern], [http://steve-yegge.blogspot.com/Steve Yegge], 2008-10-20: An explanation of the ''Properties Pattern''. [http://cs.au.dk/~hosc/local/LaSC-4-3-pp223-242.pdf%|%Organizing Programs Without Classes], Ungar et al, Lisp and Symbolic Computation 1991: Born of the the [Self Programming Language%|%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 [Changes in Tcl/Tk 8.6%|%8.6] with [TclOO] [Selfish], by [Setok]: [another minimal tcl object system (XOTcl like syntax)]: [BOS]: [dicthash: Yet another lightweight object system]: [Poet]: 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 [framesets]: Frameset based OO implemention for Tcl. [theObjects]: Small prototype-oriented object system. [Yet another object system]: does everything with lists. [SDynObject]: 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. [TOE]: 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. [TWO]: 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%|%ycl::context], by [PYK]: Features cascading variable and command access. A predecessor to [ycl shelf]. [ycl%|%ycl ns dupensemble]: Instantiate objects duplicating namespaces. [ycl%|%ycl::ns::object], by [PYK]: like [ycl%|%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%|%ycl ns dupensemble]. ** Non-Tcl Prototype Languages ** [Self Programming Language]: <> object orientation