5 ms·
He explicitly credited the actor model as one of the major influences on Smalltalk and OOP. The distinction as far as I have been able to tease it out is that i
by madhadron 7y ago
He explicitly credited the actor model as one of the major influences on Smalltalk and OOP. The distinction as far as I have been able to tease it out is that in the actor model there is a distinction in kind between actors and values passed among actors. In OOP, there is no distinction in kind, that is, imagine you have an actor-like thing that sends you a reference to something, but that something is going to be of the same category of actor-like thing.
- abecedarius 7y agoHewitt created actors after hearing an early Smalltalk talk by Kay at MIT, as I recall it. That wasn't the only influence (capabilities were a big one, for instance) and I'd be surprised if there wasn't reciprocal influence, though. In Hewitt's actor model, messages are also (immutable) actors. At least in the early version I read about.
- ProfHewitt 7y agoActors were developed to unify and overcome limitations of previous important contributions including lambda calculus [Church 1932] (first-class procedures), Petri nets [Petri 1962] (true concurrency), semaphores [Dijkstra 1962-1963], packet switching [Baran 1964] (concurrent communication between computers using fixed size packets), capabilities [Dennis and van Horn 1966] (pointer security), Simula [Dahl and Nygaard 1967] (class hierarchy), and SmallTalk-72 [Goldberg and Kay 1976] (bit-mapped computer graphics and browser, the precursor of modern programming Integrated Development Environments). The lambda calculus could not express concurrency with the consequence that lambda calculus programs can be thousands of times slower than Actors. A Petri net cannot dynamically expand and has the limitation that tokens can miraculously disappear from different places, which is inefficient to implement. Capabilities have the limitation that pointers must be manipulated using indexes into capability lists thereby making programming awkward. Simula did not implement concurrency and did not have messages. SmallTalk-72 used a byte stream of program tokens thereby making it awkward for concurrency. See the following for more information: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3418003 https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3418003
- agumonkey 7y agoanother cyclical influence is scheme trying to reimplement the actor model in a lisp/lambda clothing.
- ProfHewitt 7y agoThe programming language Scheme was originally named Schemer against Actors ;-) The monad (https://wiki.haskell.org/Monad https://wiki.haskell.org/Monad) is another mostly unsuccessful lambda calculus way to try to address some of the issues resolved in the Actor Model.
- agumonkey 7y agoMy english is failing me, what's the meaning behind 'schemers against actors' ? I only knew about actors for its scheme influence and the fact that it was highly concurrent (even this I'm not so sure). I got into college way too late for it to be studied sadly.
- ProfHewitt 7y agoThe original name of the programming language Scheme was "Schemer", which was shortened by removing the last character because of file system limitations. The motivation for the name Schemer was that the authors were scheming against Actors analogous to the programming Conniver, where the authors were conniving against Planner.
- agumonkey 7y agoOh I see the trail goes deep. Interesting.
- deleted 7y ago[deleted]