Re:Alan Kay on the Meaning of “Object-Oriented Programming” ...
by mamon on Sunday March 17, 2019 @06:18PM
(#19417089)
ok, so truly oriented OO system needs some equivalent of Ruby's method_missing() ? Is that's what you mean?
[ Parent
| on HN ]
Re:Alan Kay on the Meaning of “Object-Oriented Programming” ...
by dodobirdlord on Sunday March 17, 2019 @10:23PM
(#19418265)
The structure I'm envisioning here is that every object has a public pass(m) method that takes an input message and has no other public methods. Every message is a legitimate input to pass(m), and every object can call the pass method of any other object. It's up to each object to decide for itself what it will do with any given message that it receives. If an object wants a response to its message it can identify itself in the message and then hopefully the object being passed the message will choose to pass a message back.
This seems exactly analogous to how a collection of webservers interact. They can only communicate with each other by tossing a chunk of bytes around hoping that the target knows what it's supposed to be doing with those bytes.
Re:Alan Kay on the Meaning of “Object-Oriented Programming” ...
by hota_mazi on Monday March 18, 2019 @01:40AM
(#19418921)
> and every object can call the pass method of any other object. It's up to each object to decide for itself what it will do with any given message that it receives.
It's a horrible programming model, though. We should be glad this is not how most languages work.
Re:Alan Kay on the Meaning of “Object-Oriented Programming” ...
by dnautics on Monday March 18, 2019 @02:47AM
(#19419123)
>It's a horrible programming model, though.
Have you ever actually programmed in this model? I wrote a correct RAFT library in ~300 lines of code that are extremely legible using this model.
Re:Alan Kay on the Meaning of “Object-Oriented Programming” ...
by scroot on Monday March 18, 2019 @09:16AM
(#19420739)
> It's a horrible programming model, though. We should be glad this is not how most languages work.
This is not only about languages, but also environments. The argument Kay makes is that in order to make very large complex systems that are resilient, you need something like this kind of message passing. And indeed, this is how the Internet works too
Re:Alan Kay on the Meaning of “Object-Oriented Programming” ...
by hota_mazi on Monday March 18, 2019 @02:27PM
(#19423683)
The Internet works in hundreds of different ways, message passing, RPC, REST, store and forward, propagation, etc...
Re:Alan Kay on the Meaning of “Object-Oriented Programming” ...
by scroot on Monday March 18, 2019 @08:41PM
(#19426944)
It's all made possible because of the protocol which is a kind of message passing. If a node somewhere on the Internet doesn't receive a packet for whatever reason, the whole network doesn't come crashing down.
Re:Alan Kay on the Meaning of “Object-Oriented Programming” ...
by chrisseaton on Sunday March 17, 2019 @07:33PM
(#19417497)
I'm not sure method_missing is powerful enough to do message passing. It's method_missing, not method_received. You can't intercept message that already have a method defined for them. The sender chooses which method to call, and may call method_missing. It's not entirely up to the object how to respond to a message.
Re:Alan Kay on the Meaning of “Object-Oriented Programming” ...
by galaxyLogic on Sunday March 17, 2019 @11:13PM
(#19418447)
You can create a class which has no other methods than 'method_missing'. The explicitly declared methods are just useful syntactic sugar for how to respond to specific messages.