"Alejandro F. Reimondo" aleReimondo@sugarweb.com wrote:
Parts for Smalltalk works connecting objects with links. The objects can be visual (GUI) objects or non-visual. You can save your work in aFile with the component, later you can use the component (loaded from file). You can connect the parts with point & drag; but if you want to, you can
write
a new method for any object. The method will be bound to the object (not
to
its class) to expand the part or to implement a more convenient message in the context where the part is been used.
What we're getting into here is the advantage of instance-methods, or more radically, prototype object models, for dynamic GUI building environments. A couple interesting examples of such systems include:
* Amulet, done by Brad Myers' group at CMU, in which they implemented a prototype object model on top of C++(!):
http://www.cs.cmu.edu:80/afs/cs/project/amulet/www/amulet-overview.html
*SK8, done at Apple (a project with which I was associated for awhile), with a prototype object model implemented on top of Lisp: http://sk8.research.apple.com/ <--- Sigh... this link appears to be dead.
*NewtonScript, a relative of Self, with a really funky inheritance/containment model.
*Hmm... I bet we can consider Cocoa (now Stagecast) to be built with prototypes, too :-) http://www.stagecast.com/
Mike Wirth