This has been an interesting thread to read on the side, and I appreciate the 
thought provoking conversion.

On Sun, 20 Mar 2022, at 6:11 AM, Richard O'Keefe wrote:
> An override of #doesNotUnderstand: *is* (an instance of) the problem.
> What part of "you may think you know what to forward now, but just
> wait a couple of months or install an additional package and there
> will be *more* selectors you needed to think about but didn't" is
> hard to understand?

However I am confused by the above - as in Pharo and Dolphin (and I suspect 
other Smalltalks) - you don't have to make your proxy a subclass of Object 
right? If you want to forward as much behaviour as possible - you can subclass 
ProtoObject (or equivalent). The width of methods on that is much reduced (59 
from a quick glance), and loading other packages doesn't tend to extend at that 
level, so keeping things much more stable. The downside, is that such objects 
are tricky to view in an inspector etc.  There is a mocking framework in Pharo 
called Ghost that leverages this quite well from memory.

So I think that some of the side arguments on downsides might not be quite as 
bad as indicated.

Tim

Reply via email to