On 3/25/16 18:53 , Eliot Miranda wrote:
Hi Andres,
On Thu, Mar 24, 2016 at 11:20 PM, Andres Valloud <avalloud@smalltalk.comcastbiz.net mailto:avalloud@smalltalk.comcastbiz.net> wrote:
It's there to avoid crashes when people implement proxy classes and Instantiate before remembering to implement doesNotUnderstand: (a recursive doesNotUnderstand: causes the VM to exit). Strange. The VM knows plenty of objects that could arguably understand a message such as object: anObject doesNotUnderstand: aMessage
What's to stop someone deleting, say, Context>>object:doesNotUnderstand: ? At some point there has to be a message handler. Why bother complicating things by allowing there to be no doesNotUnderstand: ?
To me, the case of omitting a method in a new subclass of nil seems different enough from the case of deleting a method from Context to warrant a different outcome. We can already see that omission of doesNotUnderstand: has already led to the creation of classes such as ProtoObject, i.e. extra complexity.
Andres.