[erlang-questions] Erlang is *not* a implementation of the Actor model Re: Go vs Erlang for distribution
Raphael Korsoski
psidrinal@REDACTED
Mon Jun 23 13:43:11 CEST 2014
My €.2, as a computer scientist (categories for the win) and an Erlang
coder:
There are certainly formal differences between Erlang-style concurrency and
the many different Actor Models that have appeared in the literature (cf.
Aπ-calculus). The runtime doesn't use a reduced set of communication
primitives as a foundational concept, such as in the pi-calculus
formulations of Actor Models. I haven't seen any proof of the
fairness/progress property for Erlang, either.
On the other hand, it is more or less trivial to _implement_ models of
Actors in Erlang, whichever of the many proposed semantics for actors you
choose.
Although I have never completed the exercise, I believe quite strongly that
you could also fully embed Erlang's style of concurrency in both abstract
actor models and operational (process calculi) implementations of those,
with relatively simple, or even trivial, translations; eg selective receive
as a set of actors with a receptionist.
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").
By contrast, although it is just as relevant, we generally don't discern
between object-oriented models that allow either contra- or covariant
inheritance (or both). Should we really distinguish process-oriented models
by the semantics of the "becomes" relation?
/// Raphael
On Mon, Jun 23, 2014 at 4:40 AM, zxq9 <zxq9@REDACTED> wrote:
> On Monday 23 June 2014 11:22:36 Ngoc Dao wrote:
> > > In many ways an Erlang system does have an OS feeling about it. At
> least
> >
> > I think so.
> >
> > I think so, too:
> > http://www.slideshare.net/ngocdaothanh/cloud-erlang
>
> I enjoyed the abbreviated cut-down (once I got over the use of the empty,
> warped, buzzsound term "cloud"... its necessary to attract attention from a
> certain type of party, but they aren't the sort who are really going to
> embrace what you have to say). Its a good reference to explain why Erlang
> implies a lot more than just a language. Much better, I think, to do like
> you've done here and treat Erlang/OTP as a system that supports a very
> different model of computation than most folks are accustomed to than to
> start
> them on the language syntax first.
>
> Actually, quite a few interesting early attempts at explaining Erlang as a
> system up-front have come out over the last few threads. Most of this
> stuff is
> unpolished, but represents a lot of effort in a good direction.
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20140623/65ca6178/attachment.htm>
More information about the erlang-questions
mailing list