3 ms·
Their definitions are distinct -- and at least at a surface level, quite different.[1] They have different abstract interfaces. From a practical point of view,
by RossBencina 8y ago
Their definitions are distinct -- and at least at a surface level, quite different.[1] They have different abstract interfaces. From a practical point of view, if you're going to use them for programming, it's safe to say that they're not "the same." However, you do see some overlap in practical implementations: for example some actor systems have first-class channel or mailbox abstractions, whereas the pure Actor model has no such entities. People talk about implementing actors in Go, but Go is a CSP-based system.
You can ask whether the models are somehow equivalent (isomorphic?), or to what degree can you express one model in the other. Last time I checked, that is a fairly deep rabbit hole -- you'd need a solid grasp of the theory of equivalence of concurrent programs (e.g. pi-calculus) to answer the question properly.
Also don't forget that the Erlang team claim to have never heard of Hewitt's actor model, so Erlang-inspired actor systems are potentially distinct from (Hewitt, Agha et. al.) Actor Model systems.
[1] https://arild.github.io/csp-presentation/#1 https://arild.github.io/csp-presentation/#1