tag:blogger.com,1999:blog-13578244.post112637976576102329..comments2023-10-30T15:20:55.876+00:00Comments on Random thoughts of a Camaelon: High Order MessagingNicolashttp://www.blogger.com/profile/04057058584432088746noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-13578244.post-1126541789458203162005-09-12T17:16:00.000+01:002005-09-12T17:16:00.000+01:00Damien: actually, that's a typo, marcel sent an em...Damien: actually, that's a typo, marcel sent an email about that. Normally it should be :<BR/><BR/>alice do addReport: sally reports each.<BR/><BR/>For the concat, what's the problem ? concat (actually, it's stringByAppendingString:) is the normal string method; the HOM method is collect (see fig.5)<BR/><BR/>Stefan: yes, I was wondering how we could put that directly in the language and/or compiler... and a new syntax to be clearer (like, using commas instead of colons..) ? <BR/><BR/>All in all, I think it just reflect the necessity in a language to reificate everything -- pieces of codes (blocks), messages (hom), etc. Reflectivity ...Nicolashttps://www.blogger.com/profile/04057058584432088746noreply@blogger.comtag:blogger.com,1999:blog-13578244.post-1126520151893837942005-09-12T11:15:00.000+01:002005-09-12T11:15:00.000+01:00Still, there is a strange part in the paper, with ...Still, there is a strange part in the paper, with the adding reports example:<BR/>alice addReport: sally reports each.<BR/><BR/>That implies that addReport: is implemented to handle the trampoline in a specific way, doesn't it?<BR/><BR/>Similarly, with the concat: examples:<BR/>aCollection concat: aString // OK<BR/>aString concat: aCollection // concat: reimplemented ?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-13578244.post-1126510279266053012005-09-12T08:31:00.000+01:002005-09-12T08:31:00.000+01:00Hm, what about pushing some of the concepts to the...Hm, what about pushing some of the concepts to the compiler? No new syntax added, but recognised message patterns that would be optimalised by compiler.<BR/><BR/>I think that some library functionalities are evolved enough that they can be considered stable. Even Smalltalk is optimalising some message sends into special bytecodes.Stefan Urbanekhttps://www.blogger.com/profile/03976522737016826732noreply@blogger.comtag:blogger.com,1999:blog-13578244.post-1126392159675425602005-09-10T23:42:00.000+01:002005-09-10T23:42:00.000+01:00Yes, one of the benefit over using @selector is th...Yes, one of the benefit over using @selector is that the arguments are handled automatically. Without args, @selector could be "good enough" sometimes, yes. And hom is "cleaner" to write while coding.<BR/><BR/>About the naming problem, I partly agree.. but don't forget (to use marcel's nomenclature) that they aren't "first order messages" but "high order messages", thus the classical naming rules doesn't really apply.. sortof.<BR/><BR/>But I like the idea anyway. Blocks are something else, and I think both ideas (blocks and hom) are interesting.Nicolashttps://www.blogger.com/profile/04057058584432088746noreply@blogger.comtag:blogger.com,1999:blog-13578244.post-1126390725447141632005-09-10T23:18:00.000+01:002005-09-10T23:18:00.000+01:00At first I didn't really get the difference with d...At first I didn't really get the difference with doing things like:<BR/>[myArray eachPerform: @selector(aMessage)];<BR/>[object asynchronouslySend: @selector(doSomething)];<BR/>[object afterDelay: 1.0 send: @selector(doSomething)];<BR/><BR/>When I see [[myArray do] aMessage] I wonder what's returned by do and sent aMessage... When you give instructions to someone, you actually give him instructions, that he will memorize and carry later. He doesn't present you to some impostor to which you will give orders... anyway.<BR/><BR/>The actual benefit I see is with the ifResponds example, where windowdidClose takes an argument. Using @selector-passing way you'd have to create an array or a dictionary of arguments, which is OK in ruby but not that nice with the keyword-message syntax of smalltalk and objective-c...Anonymousnoreply@blogger.com