On 9 June 2012 22:06, Toby Schachman <t...@alum.mit.edu> wrote:

> Message passing does not necessitate a conceptual dependence on
> request-response communication. Yet most code I see in the wild uses
> this pattern.


Sapir-Whorf strikes again? ;-)


> I rarely
> see an OO program where there is a "community" of objects who are all
> sending messages to each other and it's conceptually ambiguous which
> object is "in control" of the overall system's behavior.
>

Perhaps you're not taking into account programs that use the
observer/observable pattern? As a specific example, all the uses of the
"dependents" protocols (e.g. #changed:, #update:) in Smalltalk are just
this. In my Squeak image, there are some 50 implementors of #update: and
some 500 senders of #changed:.

In that same image, there is also protocol for "events" on class Object, as
well as an instance of Announcements loaded. So I think what you describe
really might be quite common in OO *systems*, rather than discrete programs.

All three of these aspects of my Squeak image - the "dependents" protocols,
triggering of "events", and Announcements - are encodings of simple
asynchronous messaging, built using the traditional request-reply-error
conversational pattern, and permitting conversational patterns other than
the traditional request-reply-error.

As an aside, working with such synchronous simulations of asynchronous
messaging causes all sorts of headaches, because asynchronous events
naturally involve concurrency, and the simulation usually only involves a
single process dispatching events by synchronous procedure call.

Regards,
  Tony
-- 
Tony Garnock-Jones
tonygarnockjo...@gmail.com
http://homepages.kcbbs.gen.nz/tonyg/
_______________________________________________
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc

Reply via email to