<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
<meta name="Generator" content="Cocoa HTML Writer">
<meta name="CocoaVersion" content="1265.2">
<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 15.0px; font: 12.0px Helvetica}
p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 15.0px; font: 16.0px Times; color: #011892; min-height: 19.0px}
p.p3 {margin: 0.0px 0.0px 0.0px 12.0px; font: 16.0px Times; color: #011892}
p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Helvetica; min-height: 14.0px}
p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 12.0px Helvetica}
p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 16.0px Times; color: #011892; min-height: 19.0px}
p.p7 {margin: 0.0px 0.0px 0.0px 12.0px; font: 16.0px Times; color: #011892; min-height: 19.0px}
span.s1 {direction: ltr; unicode-bidi: embed}
span.s2 {text-decoration: underline ; direction: ltr; unicode-bidi: embed}
span.s3 {text-decoration: underline}
</style>
</head>
<body>
<p class="p1">On 2014-06-23 11:43:11 +0000, Raphael Korsoski said:</p>
<p class="p2"><br></p>
<p class="p3">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. </p>
<p class="p4"><br></p>
<p class="p5">I agree, except the automatic garbage collection of actors that are inactive which seems so important for Hewitt.<span class="Apple-converted-space">  </span>The latter would not be trivial to implement.<span class="Apple-converted-space">  </span>Not sure why he thinks its such a big deal.</p>
<p class="p4"><br></p>
<p class="p3">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.</p>
<p class="p4"><br></p>
<p class="p5">Well in theory you can implement everything in almost everything. In practice its eaither infeasible or has quite bad performance if you model Erlangs mailbox, linking and monitoring behavour.</p>
<p class="p6"><br></p>
<p class="p3">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.<span class="Apple-converted-space"> </span></p>
<p class="p4"><br></p>
<p class="p5">I disagree.<span class="Apple-converted-space">  </span>Almost all the good things in Erlang come from differences from the Actor model:</p>
<p class="p4"><br></p>
<p class="p5">* mailboxes with selective receive help to significantly reduce state complexity.<span class="Apple-converted-space">  </span>If you don't know what I mean please watch http://www.infoq.com/presentations/Death-by-Accidental-Complexity</p>
<p class="p4"><br></p>
<p class="p5">Of cours if you are only using sycronous gen_server calls you won't notice the differences but at the same time giving up lots of expresive power.</p>
<p class="p4"><br></p>
<p class="p5">* links and monitors and the failure handling derived from them</p>
<p class="p4"><br></p>
<p class="p5">* The possibility of sequential long running preempted code</p>
<p class="p4"><br></p>
<p class="p5">Generally Erlang implements something that "solves the problem", wheras actors are just a theoretical construct.</p>
<p class="p4"><br></p>
<p class="p5">Cheers</p>
<p class="p5">-- Peer</p>
<p class="p4"><br></p>
<p class="p3">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").</p>
<p class="p7"><br></p>
<p class="p3">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?</p>
<p class="p7"><br></p>
<p class="p3">/// Raphael</p>
<p class="p7"><br></p>
<p class="p7"><br></p>
<p class="p3">On Mon, Jun 23, 2014 at 4:40 AM, zxq9 <span class="s1"><<a href="mailto:zxq9@zxq9.com"><span class="s2">zxq9@zxq9.com</span></a>></span> wrote:</p>
<p class="p3">On Monday 23 June 2014 11:22:36 Ngoc Dao wrote:</p>
<p class="p3">> > In many ways an Erlang system does have an OS feeling about it. At least</p>
<p class="p3">></p>
<p class="p3">> I think so.</p>
<p class="p3">></p>
<p class="p3">> I think so, too:</p>
<p class="p3">> <a href="http://www.slideshare.net/ngocdaothanh/cloud-erlang"><span class="s3">http://www.slideshare.net/ngocdaothanh/cloud-erlang</span></a></p>
<p class="p7"><br></p>
<p class="p3">I enjoyed the abbreviated cut-down (once I got over the use of the empty,</p>
<p class="p3">warped, buzzsound term "cloud"... its necessary to attract attention from a</p>
<p class="p3">certain type of party, but they aren't the sort who are really going to</p>
<p class="p3">embrace what you have to say).  Its a good reference to explain why Erlang</p>
<p class="p3">implies a lot more than just a language. Much better, I think, to do like</p>
<p class="p3">you've done here and treat Erlang/OTP as a system that supports a very</p>
<p class="p3">different model of computation than most folks are accustomed to than to start</p>
<p class="p3">them on the language syntax first.</p>
<p class="p7"><br></p>
<p class="p3">Actually, quite a few interesting early attempts at explaining Erlang as a</p>
<p class="p3">system up-front have come out over the last few threads. Most of this stuff is</p>
<p class="p3">unpolished, but represents a lot of effort in a good direction.</p>
<p class="p3">_______________________________________________</p>
<p class="p3">erlang-questions mailing list</p>
<p class="p3"><span class="s3"><a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a></span></p>
<p class="p3"><span class="s3"><a href="http://erlang.org/mailman/listinfo/erlang-questions">http://erlang.org/mailman/listinfo/erlang-questions</a></span></p>
<p class="p4"><br></p>
</body>
</html>