On 15/10/2020 13:03, Anton Shepelev wrote:


we definitely should have sticked with Alan Kay's
"message-sending", and there would be much less
misunderstandings and problems today.
I fear this message-passing approach even further from
normal proceudural prgramming that conventinal OO languages
and would therefore be even more confusing and unintuitive.


It is not an approach per se, but just terminology.

And when coming from Assembler/C/C++, like I do, it is a very confusing one: At the end of the day, it is always just about pushing the arguments on the stack and picking the subroutine address to which the CPU shall branch, whether that address selection is static (and can therefore be done at compile time), virtual (i.e. based on the object the function is called for, which requires a (quick and simple) virtual function table lookup for the object's class at runtime), dynamic (i.e. based on the object and the argument types on the stack, like Groovy does), or completely custom implemented in the language itself (as can be done in Groovy).

It is never about passing messages from one object to the other, which to me implies creating messaging objects, which are being put into a queue for asynchronous processing by the receiving object (possibly with prioritization, ...), and maybe being sent over a network connection, etc. So a much more heavy & slower mechanism than what actually takes place.

Of course one often times finds logical/natural what one first encountered, but keeping that in mind, from what lies underneath it, calling it a method call with passed arguments still makes the most sense to me.

Cheers,
mg




Reply via email to