On Sat, Jun 9, 2012 at 8:48 PM, Pascal J. Bourguignon <[email protected]> wrote: > Request-responses mode comes from the mapping of the notion of message > sending to the low-level notion of calling a subroutine. Unidirectional > references comes from the mapping of the notion of association to the > low-level notion of pointer. > > But those mappings are not inherent of OOP, and aren't even necessarily > promoted by a OO programming language. > > And even if they may seem at first natural with common OO programming > languages, it's easy to avoid using them.
I agree that these are not necessary or intended implications of OOP. My comments used "OOP" to refer to the paradigm that I see used and implemented in common practice. Message passing does not necessitate a conceptual dependence on request-response communication. Yet most code I see in the wild uses this pattern. A hierarchy of control is set up. An object will request information from its subordinate objects, do some coordination, send commands back down, or report back to its superior. Centralized control seems to be the only way we can keep track of things. 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. As for bidirectional references, I see them used for specialized subsystems (implemented by specialists) such as relational databases and publish-subscribe servers. But they tend to be tricky to set up in OOP settings. Yet, as I bring up in the Sketchpad remarks, I believe they have a lot of potential when they can be used as a fundamental primitive of a programming paradigm. _______________________________________________ fonc mailing list [email protected] http://vpri.org/mailman/listinfo/fonc
