Re:Alan Kay on the Meaning of “Object-Oriented Programming” ...
by Joeri on Sunday November 30, 2014 @04:25PM
(#8678160)
I think it's a bit charitable to call what Objective C does to be "message passing". The messages are not asynchronous and have only a single recipient, so in practice I would say they're method calls with late binding.
[ Parent
| on HN ]
Re:Alan Kay on the Meaning of “Object-Oriented Programming” ...
by mpweiher on Monday December 01, 2014 @12:11AM
(#8679615)
However, they can easily be made asynchronous and address multiple recipients. See Higher Order Messaging[1][2], first implemented in Objective-C[3]. So for example:
[[myView onMainThread] setNeedsDisplay:YES];
result = [[someObject future] someMessage:arg];
combined = [[prefixes collect] stringByAppendingString:[suffixes each]];
The reason this is easy in Objective-C is because its brand of message passing is just (barely) powerful enough to qualify as message passing. In fact, if you squint just a little, you can see it as fully reified message passing with the common-case (a synchronous method is invoked) optimized.[1] http://en.wikipedia.org/wiki/Higher_order_message
[2] http://www.metaobject.com/papers/Higher_Order_Messaging_OOPS...