> On 20 Feb 2015, at 18:11, Chris Muller <[email protected]> wrote:
> 
>> Chris,  didn't you do something about this in Squeak?  It would be nice to 
>> keep consistent if possible...
> 
> Yes, but no one liked it because it employed the Proxy design-pattern
> and requires a become.  Perhaps if I'd gotten it perfect the first
> time it'd have been better-received.  But, I didn't, and the ensuing
> backlash wiped out any motivation for me to fix it.
> 

This is always the danger… I start to be very careful in this regard: better 
make (and allow!)
mistakes than doing nothing. Because mistakes can be fixed, while a discouraged 
person will
just never do anything. (e.g. leave the project in case of open source).

Of course #become: sadly get really slow when the image gets large… but this is 
fixed with Spur,
which means it will possible.

> Marcus' suggestion is more explicit, and so might be better received
> by the community.  There's a tradeoff between the two designs:  In my
> design, you have to make sure you get it right or the image could lock
> up.  In Marcus' design, you have to sprinkle multiple checks for
> #reload in the code and make sure you get it right, or you might end
> up saving corrupt MCZ packages (e.g., with #reload as the ancestry).
> 
Yes. I think the only reason I dared to let me think in this direction is that
the #ancestors are accessed *only* via the accessor… but nevertheless:
checks need to be added.

> Either way, its a wasteful part of the design of MC that should be
> addressed.  I'm partial to fixing the Proxy solution, but I'd be in
> favor of ripping it out and adopting a stable alternative from Pharo
> if it becomes available.
> 

We could do it in two steps: adopt the #become: solution when we use
spur 100%… I even want to have a default Proxy framework in the system
to make these things easier. (something like Ghost).

        Marcus

Reply via email to