Programming with Prototypes

Difference between version 1 and 3 - Previous - Next
'''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, constrainsts, 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 wthichat 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]:   



<<categories>> 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]:   




<<categories>> object orientation