[self-interest] prototypes (was: new video)

Randy Smith randy.smith at gmail.com
Sat Jun 16 21:32:13 UTC 2018

> On Jun 16, 2018, at 1:23 PM, 'Jecel Assumpcao Jr.' jecel at merlintec.com [self-interest] <self-interest at yahoogroups.com> wrote:
> Randy,
> thanks for the story of ARK and prototypes!
> I first saw the idea in the description of ObjectLogo in
> "Object-Oriented Languages for the Macintosh". See page 177 of
> https://archive.org/details/byte-magazine-1986-08
> The awkward message passing syntax compared to my own SuperLogo of 1983
> (which used classes) hid the simplicity of the idea from me at the time.
> In 1988 I finally read the Self paper as well as the "An Exemplar Based
> Smalltalk" (Wilf LaLonde, Dave Thomas and John Pugh) and I finally got
> it.

I am probably misattributing the "exemplar" idea to Danny Bobrow. He may have done something similar, or I just got my stories mixed up. He was at PARC when I was, and had created the Loops system.

I notice that my first ARK paper was '86, the same year as the exemplar paper. I think I had somehow already heard of exemplars by '85  but can't be certain. Maybe folks in the Smalltalk group at PARC were already familiar with the exemplar work of LaLonde et. at. .

> http://www.selflanguage.org/_static/published/self-power.pdf
> http://www.davethomas.net/papers/exemplar.pdf
> > [Xerox button in ARK]
> I thought it was great fun, but can see why trademark lawyers would
> worry about it.
> > [Warehouse (list of system classes)]
> There was some central thing? I thought each class had an object that
> looked like a metal door for a loading dock in a warehouse but that
> these were just floating around without any organization. I guess I will
> have read the paper again.

No, there was just one Warehouse. Where all the prototypes were stored (heh heh). 

(Pleased you perceived the metal door from a loading dock graphic as I intended it. :-). )

> > [...] Writing code in ARK was (quite awkwardly) done by "swallowing" collections
> > of buttons into a new button, thus concatenating together functionality one
> > expression at a time.[...]
> I can see how that could both be very slow and, with rather fat buttons,
> be visually inconvenient. But Scratch has made block based languages
> very popular for beginners so I think thise scheme could be made usable.
> One way to make the sequence of buttons when using the system more
> closely match the programming of the system is to use time / animation.
> When using you drop the "increment" button on 3 and you get 4. When
> programming you drop the "increment" button on the ghostly X object and
> you get a ghostly "X increment" result. Then you can step forward and
> back in the animation. The buttons don't visually pile up, though the
> ghosly object names get longer and longer.

You also remind me of demonstration-based programming.  Another similar way to go.

> Good luck with your demo! Back in 2000 I gave a demo to a professor who
> taught programming languages (including Self) at a local university and
> he was so impressed at being able to actually see the doubly linked list
> live that he asked me teach a mini course about Self to his students.

Wonderful story!

More information about the Self-interest mailing list