[erlang-questions] Erlang is *not* a implementation of the Actor model Re: Go vs Erlang for distribution

Ignas Vyšniauskas i.vysniauskas@REDACTED
Mon Jun 23 14:17:12 CEST 2014


On Mon, Jun 23, 2014 at 2:43 PM, Raphael Korsoski <psidrinal@REDACTED> wrote:
> I'd go so far as to say that Erlang and the Actor Model are in the same
> programming paradigm, but with different axioms in their semantics--
> although that's of course conjecture without (large, tedious) proof....
>
> In my opinion, strictly separating Erlang-style concurrency and the Actor
> model is only of academic interest; unless you are implementing, say, an
> Erlang runtime of course. The differences are certainly relevant to category
> theorists, language theorists, mathematicians working in the Curry-Howard
> domain and so forth, but for the general programmer the differences are more
> or less implementation details ("up-to the usual nonsense").

I agree with you in the general spirit of "formally it doesn't matter
much because it's mostly the same thing."

However, there is one crucial thing in Erlang which, on the positive
side makes it a very practical tool, and on the negative side makes it
very hard to talk about formal semantics and prove things like
progress. This is the availability of the `receiver .. after ..`
primitive. Allowing local-timing-based behaviour in processes usually
means that you need some very strong global fairness assumptions in
order to do any kind of formal proofs. I don't see how one could
obtain a (useful) representation of Erlang semantics in any of the
usual process calculi without ignoring this fact. It would be
interesting to find out if anyone ever did something similar formally.

--
Ignas



More information about the erlang-questions mailing list