Hi guys
As I exposed newbies to our wonderfull debugger I think that we should change MessageNotUnderstood: Class>>#message into an instance of Class did not understand message To me this simple change would have a HUGE impact on making the debugger first contact a lot more friendly. Any taker? I'm off with a company today. Stef -- |
Done: 19441. I also change nil case to "message was send to nil" (instead of "receiver of message is nil"). You can correct it as you wish :) 2016-12-07 21:44 GMT+01:00 stepharong <[hidden email]>: Hi guys |
On Thu, Dec 8, 2016 at 5:54 AM, Denis Kudriashov <[hidden email]> wrote:
> Done: 19441. > > I also change nil case to "message was send to nil" (instead of "receiver of > message is nil"). You can correct it as you wish :) send==>sent > > 2016-12-07 21:44 GMT+01:00 stepharong <[hidden email]>: >> >> Hi guys >> >> As I exposed newbies to our wonderfull debugger I think that we should >> change >> >> MessageNotUnderstood: Class>>#message >> >> into >> >> an instance of Class did not understand message Perhaps(?) a short form can be put in brackets? ==> an instance of Class did not understand #message sent to it (MNU Class>>#message) cheers -ben >> >> To me this simple change would have a HUGE impact on making the debugger >> first contact a lot more friendly. |
> On 8 Dec 2016, at 00:42, Ben Coman <[hidden email]> wrote: > > On Thu, Dec 8, 2016 at 5:54 AM, Denis Kudriashov <[hidden email]> wrote: >> Done: 19441. >> >> I also change nil case to "message was send to nil" (instead of "receiver of >> message is nil"). You can correct it as you wish :) > > send==>sent > >> >> 2016-12-07 21:44 GMT+01:00 stepharong <[hidden email]>: >>> >>> Hi guys >>> >>> As I exposed newbies to our wonderfull debugger I think that we should >>> change >>> >>> MessageNotUnderstood: Class>>#message >>> >>> into >>> >>> an instance of Class did not understand message > > Perhaps(?) a short form can be put in brackets? > ==> an instance of Class did not understand #message sent to it (MNU > Class>>#message) +1 > cheers -ben > >>> >>> To me this simple change would have a HUGE impact on making the debugger >>> first contact a lot more friendly. |
In reply to this post by Ben Coman
2016-12-08 0:42 GMT+01:00 Ben Coman <[hidden email]>: > message is nil"). You can correct it as you wish :) Yes. Slice uses correct word |
In reply to this post by Sven Van Caekenberghe-2
What if the method is on class side? Phil On Thu, Dec 8, 2016 at 7:35 AM, Sven Van Caekenberghe <[hidden email]> wrote:
|
Good question. It will be which of course not so good. What you suggest? |
MyClass did not understand #message Phil On Thu, Dec 8, 2016 at 11:24 AM, Denis Kudriashov <[hidden email]> wrote:
|
I think
Message does not exist Makes more sense, I always found the use of the word understood kinda weird
|
"Message(method) does not exist" happens in C/Java/etc when we call a method. "Message not understood by an object" happens in Smalltalk/Ruby when we send a message. I like this conceptual distinguishment between calling a method and sending a message. Cheers, Alex |
First of all you will never see the word message mentioned in those languages you mentioned
Second the word , understood, says nothing about the nature of the problem to a beginner Is it that the method does not exist ? Or is it that method exists but message does not ? Or is it that the method does something it should not ? Or is the VM that has problem executing the method ? On Thu, 8 Dec 2016 at 11:27, Aliaksei Syrel <[hidden email]> wrote:
|
The fact that method does not exist does not necessarily mean that object does not understand a message ;)
First of all you will never see the word message mentioned in those languages you mentioned Indeed in C/Java/etc there is no such word message, that is why you can find word "method" in parentheses to the right from word "message" (actually second word in first sentence). In case of two other mentioned languages Smalltalk/Ruby word "message" is common. Do you agree that it is the case in Smalltalk? ;) For the Ruby I would like to refer to official documentation, especially method_missing hook (analogue of doesNotUnderstand: in Pharo). Invoked by Ruby when obj is sent a message it cannot handle. Cheers, Alex On 8 December 2016 at 12:34, Dimitris Chloupis <[hidden email]> wrote: First of all you will never see the word message mentioned in those languages you mentioned |
In reply to this post by kilon.alios
This is because you have been shaped by those other languages. Message is not Operation which is not Method. There are lots of mechnisms that are based on hooking in the #DNU mechanism. That's a key feature of Pharo, so, trying to hide that fact is not helping. #DNU is "cannot make sense of what you are asking me to do, Dave". <Subject> <Verb> Phil Phil Phil On Thu, Dec 8, 2016 at 12:34 PM, Dimitris Chloupis <[hidden email]> wrote: First of all you will never see the word message mentioned in those languages you mentioned |
In reply to this post by kilon.alios
It is not correct because in fact message exits and it is here in argument of #doesNotUnderstood: and it is shown in degugger. |
Kilon, Check the MessageSend class and its users. There are a lot of interesting things one can do there. Phil On Thu, Dec 8, 2016 at 1:29 PM, Denis Kudriashov <[hidden email]> wrote:
|
In reply to this post by Denis Kudriashov
2016-12-08 13:29 GMT+01:00 Denis Kudriashov <[hidden email]>:
Executing a method (CompiledMethod) is how an object would react when receiving a message. Who is sending the message has (should have) no idea of which method exactly will be executed, or it least shouldn't have to care about it. It's encapsulated/delegated/private/you name it, IOW it's the responsibility of the object we sent the message to. So in Smalltalk we have to think in term of message, not method. DNU happens when the method lookup failed. I fail to see what is not crystal clear? |
In reply to this post by kilon.alios
|
In reply to this post by philippeback
cheers -ben On Thu, Dec 8, 2016 at 5:59 PM, [hidden email] <[hidden email]> wrote: > What if the method is on class side? Good point. Thus... 'class-side of AClass did not understand #message sent to it (MNU AClass-class>>#message)' On Thu, Dec 8, 2016 at 7:14 PM, Dimitris Chloupis <[hidden email]> wrote: >I think > Phil > > On Thu, Dec 8, 2016 at 7:35 AM, Sven Van Caekenberghe <[hidden email]> wrote: >> >> >> > On 8 Dec 2016, at 00:42, Ben Coman <[hidden email]> wrote: >> > >> > On Thu, Dec 8, 2016 at 5:54 AM, Denis Kudriashov <[hidden email]> >> > wrote: >> >> Done: 19441. >> >> >> >> I also change nil case to "message was send to nil" (instead of >> >> "receiver of >> >> message is nil"). You can correct it as you wish :) >> > >> > send==>sent >> > >> >> >> >> 2016-12-07 21:44 GMT+01:00 stepharong <[hidden email]>: >> >>> >> >>> Hi guys >> >>> >> >>> As I exposed newbies to our wonderfull debugger I think that we should >> >>> change >> >>> >> >>> MessageNotUnderstood: Class>>#message >> >>> >> >>> into >> >>> >> >>> an instance of Class did not understand message >> > >> > Perhaps(?) a short form can be put in brackets? >> > ==> an instance of Class did not understand #message sent to it (MNU >> > Class>>#message) >> >> +1 >> >> > cheers -ben >> > >> >>> >> >>> To me this simple change would have a HUGE impact on making the >> >>> debugger >> >>> first contact a lot more friendly. >> >> > |
In reply to this post by kilon.alios
On Thu, Dec 8, 2016 at 7:14 PM, Dimitris Chloupis <[hidden email]> wrote: I think I always liked the term 'understand'. I think such anthropomorphism helps give the system its feeling of liveness, and changed the way I thought about programming. cheers -ben |
+42 also “does not understand” puts the accent where it belongs: is a message *send* that is not part of object vocabulary… Esteban
|
Free forum by Nabble | Edit this page |