Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
History of Actors (eighty-twenty.org)
69 points by tonyg on Oct 19, 2016 | hide | past | favorite | 9 comments


The Pony language uses actors and has some other cool features, worth checking out if this subject interests you.

http://www.ponylang.org/


I recall Carl Hewitt talking about everything being an actor, even messages, and implementations differing from this idea, am I wrong?


You're quite right -- take a look at the original 1973 paper [1], "A Universal Modular ACTOR Formalism for Artificial Intelligence". The "universal" there is intended to mean, among other things, a uniform actor model (comparable to the uniform object model in Smalltalk). It's a remarkable paper.

Later actor languages step away from total uniformity, in part because it requires quite some finesse to avoid infinite regress and/or great inefficiency in such a system.

[1] https://eighty-twenty.org/2016/10/12/hewitt-bishop-steiger-i...

A few choice quotes from Hewitt, Bishop & Steiger IJCAI 1973:

"An actor is always invoked uniformly in exactly the same way regardless of whether it behaves as a recursive function, data structure, or process." (p235; page 1 of the PDF) This implicitly includes messages.

"The intentions [roughly, contract monitors] are written in the same formalism as the procedures they describe. Thus for example intentions can have intentions." (p235)

"[The reader] might envisage an infinite chain of actions (such as banking) to be necessary in order to get anything done. We short circuit this by only requiring that it appear that each of the above activities is done each time an actor is sent a message." (p238)

"There are no instructions [in the sense of present day machines] in our model. Instead of instructions, an actor machine has certain primitive actors built in hardware." (p241)


You can think of a pure-data object, such as a message, as a special kind of actor whose protocol includes messages to extract the parts. It gets tricky when it comes to comparisons: you want e.g. a boolean to be able to say "yes, I'm equal to this boolean b you sent me" but you also want to be able to send a transparent forwarder b' that wraps a "real" boolean b. I'm not sure how the different actor languages dealt with these issues.


Exactly. Data is necessary to make control flow decisions; the purely behavioural approach suffers infinite regress without some form of concrete data.

I suspect that this problem was one of the reasons later actor languages came to include some kind of data; in the case of Erlang, messages are the data, compared structurally; in E, object identities can be compared without sending messages to the objects.


Also:

> Gerald Sussman and Guy Steele then took an interest in Actors and published a paper on their Scheme interpreter in which they concluded "we discovered that the 'actors' and the lambda expressions were identical in implementation."

(https://en.wikipedia.org/wiki/History_of_the_Actor_model#Sch...)


Surprised this didn't make any mention of Hoare's Communicating Sequential Processes, which laid a lot of the groundwork for concurrent message passing.

https://en.m.wikipedia.org/wiki/Communicating_sequential_pro...


You're right that CSP has been influential more generally, but it doesn't relate directly enough to the history of the actor model, which is the focus here. (Though you can see, in the first paper specifically about CSP from 1978, citations to earlier actor-model work, and of course all the researchers involved had been following each other's work closely for years; a great amount of feedback was taking place continuously.)


A three-point history of actors

1. In the 500s BC, a poet named Thespis is credited with innovating a new style in which a solo actor performed the speeches of the characters in the narrative.

2. In 471 BC, the dramatist Aeschylus innovated a second actor, thus making dialogue between characters possible onstage.

3. Around 468 BC, Sophocles introduced a third actor making more complex dramatic situations possible. Three actors subsequently became the formal convention.

from http://www.crystalinks.com/greektheater.html




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: