3 ms·
Personally I'm not too fond of Pony's take on the actor model. I believe it is in the models core that every actor is in total control of their own behavior, an
by Zalastax 9y ago
Personally I'm not too fond of Pony's take on the actor model. I believe it is in the models core that every actor is in total control of their own behavior, and the only interaction is via messages that can be interpreted as the receiver pleases. In Pony, it is the sender that directly commands the receiver what it will do next (via function calls/behaviors).
- mcguire 9y agoMy take is that you are looking at it the wrong way. Pony uses a single message queue for each actor (which is completely invisible at the code level) and typed messages (which syntactically look like functions). Behaviors (the message handlers) have a lot of limits on them compared to functions (like no return values), so it really is message passing. I'm not sure I really like the syntax that makes messages look like functions, though.
- Zalastax 9y ago> Pony uses a single message queue for each actor (which is completely invisible at the code level) and typed messages (which syntactically look like functions). I totally agree with this definition but believe that it leads to awkward programming. The problem stems from forcing the message queue to be FIFO, which does not always make sense. I think the Erlang style selective receive is the correct abstraction, as it avoids having to maintain a separate queue in userland. I understand why Pony didn't go down that road though, we have a lot more shared experience in type systems for function calling compared to message passing.