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