Object pointers

Alan Kay Alan.Kay at squeakland.org
Sat Mar 23 19:22:41 UTC 2002


"Think LISP" folks ...

Cheers,

Alan

------
At 11:02 AM -0800 3/23/02, Martin McClure wrote:
>At 4:52 PM +0100 3/23/02, Bert Freudenberg wrote:
>[...]
>>
>>I always loved the analogy of balloons (objects) held by threads
>>(references) attached to pins (variables). Balloons (objects) can have
>>pins (instance variables) by themselves. Balloons can be attached to
>>multiple pins at the same time (objects can be referenced by more than one
>>variables), but one pin (variable) only ever holds one balloon 
>>(object). Attaching a new balloon to a pin (assigning to a 
>>variable) cuts the thread
>>to the balloon previously held there. If the last thread to a balloon is
>>cut (the last reference is overwritten with another value) the balloon
>>floats up into the sky and after a while, it gets recycled by a small
>>plane sweeping the area (unreferenced objects are cleaned up by the
>>garbage collector, but not immediately). This even works for a network of
>>balloons (objects referencing each other): Once the last thread to a bunch
>>of balloons is cut, up it goes.
>
>That's a great visualization! The visualization I've always had for 
>object space is similar, but inverted: The root object(s) are 
>attached to a 'ceiling', the objects they reference are attached to 
>them by strings, and changing a reference can cause a clump of 
>objects to be unsupported and fall into a bottomless pit, never to 
>be seen again.
>
>I like the positiveness and buoyancy of the balloon imagery, but I'm 
>not sure I can turn my view upside down after so long thinking about 
>it the other way...
>
>-Martin


-- 



More information about the Squeak-dev mailing list