[erlang-questions] Erlang is *not* a implementation of the Actor model Re: Go vs Erlang for distribution
Joe Armstrong
erlang@REDACTED
Wed Jun 25 20:39:31 CEST 2014
On Wed, Jun 25, 2014 at 6:56 PM, Miles Fidelman <mfidelman@REDACTED>
wrote:
> Joe, Thanks for the info. A bit of follow-up if I might (embedded inline):
>
> Joe Armstrong wrote:
>
>
>> On Wed, Jun 25, 2014 at 5:20 PM, Miles Fidelman <
>> mfidelman@REDACTED <mailto:mfidelman@REDACTED>> wrote:
>>
>>
>> On Wednesday 25 June 2014 00:09:35 Robert Virding wrote:
>>
>> I think it is very lucky that we weren't interested in, or
>> worried about,
>> the theoretical aspects, or that we had heard about the
>> actor model. If we
>> had we would probably still be discussing whether we were
>> doing the actor
>> model and which parts of it, or where we differed and how
>> important that
>> was? Or should we differ and maybe we should drop the
>> differences to we
>> would comply, etc ... :-)
>>
>> We were trying to solve *THE* problem and this was the
>> best solution we
>> could come with. It was purely pragmatic. We definitely
>> took ideas from
>> other inputs but not from the Actor model.
>>
>>
>> Robert, I know it's probably documented somewhere, but...
>> 1. what do (did) you see as "*THE* problem" you were trying to
>> solve at the time
>>
>>
>> Joe here - I'll dive in with a reply:
>>
>> Bjarne Däckers thesis has a good outline of the problem the thesis is
>> here http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.88.1957
>>
>> This blog has a good summary of Bjarnes thesis
>>
>> http://jlouisramblings.blogspot.se/2012/10/ramblings-
>> on-thesis-of-bjarne-dacker.html
>>
> Thanks for the pointers - and yes, the blog post is a very nice summary!
>
> Re.
>
>
> 2. what sources DID you draw from (other than the predecessor
>> languages at Ericsson), are there any that you'd consider primary
>> influences?
>>
>>
>> Prolog and Smalltalk in equal measure. Pattern matching and syntax was
>> inspired by Prolog. Messaging from Smalltalk. We took a few ideas on
>> guarded commands from
>> Dijkstra.
>>
>> This is mostly in the form of historical curiosity of course, but...
> can you say a bit more about the Smalltalk influence, and in particular,
> which version of Smalltalk? I ask, because:
> - The earlier versions of smalltalk included (at least in theory) a lot of
> concurrency (objects seemed a bit more like actors), whereas later
> versions, starting with Smalltalk-72, pretty much dropped concurrency as a
> focus (there was really interesting exchange with Alan Kay on this, a while
> back, on the fonc email list).
>
I can't be sure but at a guess smalltalk-80. The version I used was
on a sun workstation and I used to take a coffee break when it garbage
collected. To be honest I was more influenced by the books than the
implementation which was very slow - the red green and blue books
were great reading.
> - During that time period (very early 70s), there was a lot of
> cross-fertilization between Alan Kay (Smalltalk), Hewitt (PLANNER, actor
> model), and Steele and Sussman (Scheme)
(I'm kind of exploring Robert's statement that "I think it is very lucky
> that we weren't interested in, or worried about, the theoretical aspects,
> or that we had heard about the actor model." Particularly, in that Alan Kay
> cites PLANNER as a key influence on Smalltalk. I'm kind of interested in
> the origins and history of languages that treat processes as fundamental
> units of computation, vs. the object model).
>
All the smalltalk stuff did talk about "sending messages to objects" - so
was
in a sense a message passing model - there were a few problems with
this - message passing was really just a disguised function call, and time
and errors didn't fit into the model.
I always thought it was funny to say "everything is an object" - time and
errors don't seem to naturally fit into this ontology - a time value (like
10.45 pm on 12 march 1984) might be represented by an object - but
not time as being something which passes as processes execute - this is
some kind of invisible stuff that is outside the computation.
It's funny that the "sending message to an object" way of describing
Java and Smalltalk, Objective-C, C++ etc. objects has persisted despite the
fact that this is manifestly *not* what happens (which is a function call).
In Erlang we really do send a message to an object (well a process
actually) - so Erlang is probably the only OO language there is :-)
/Joe
>
> Thanks,
>
> Miles Fidelman
>
>
> --
> In theory, there is no difference between theory and practice.
> In practice, there is. .... Yogi Berra
>
> _______________________________________________
> 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/20140625/17bb49f2/attachment.htm>
More information about the erlang-questions
mailing list