Sebbene il modello di attore sia più vecchio di Erlang, i progettisti di Erlang hanno appreso del modello di attore solo dopo aver progettato Erlang, quindi ci si aspettano alcune differenze.
Seguirono però percorsi paralleli di evoluzione: il modello di attore è stato creato da Carl Hewitt sulla base del messaggio che passa la semantica di Smalltalk. Alan Kay, a sua volta, aveva basato il messaggio che passava la semantica di Smalltalk sulla valutazione guidata dagli obiettivi di PLANNER, progettata da ... Carl Hewitt.
PIANIFICATORE era il precursore di Prolog. Inizialmente Erlang non intendeva essere un linguaggio, piuttosto iniziò come una libreria per la programmazione distribuita a tolleranza d'errore in Prolog, e in seguito si evolse in un dialetto di Prolog, prima che diventasse la sua lingua, ancora oggi fortemente influenzato da Prolog (inoltre, l'interprete originale di Erlang è stato scritto in Prolog).
Quindi, le somiglianze tra Processes in Erlang, Objects in OO e Actors in the Actor Model sono tutt'altro che casuali.
Erlang è una lingua con diversi livelli, ognuno dei quali sono superset dei livelli inferiori. Il livello più piccolo è Functional Erlang . Questo è un linguaggio funzionale standard con alcune aggiunte ereditate da Prolog, come l'unificazione anziché l'associazione / uguaglianza. Se aggiungiamo Processi e Messaggi a questo, otteniamo l' Erang simultaneo . Avvia i processi remoti e ottieni Distributed Erlang . Ora aggiungi alcune librerie e modelli di progettazione dall'OTP e hai Erlang con tolleranza agli errori.
I processi sono attori. (Sono anche oggetti.) L' interno dei processi è funzionale, non basato sull'attore. La struttura di un grande sistema Erlang tollerante ai guasti, costruito utilizzando gli strumenti e i modelli dell'OTP, è spesso molto orientato agli oggetti.
Quindi, dipende da quale scala stai guardando.
In un tipico sistema Erlang di grandi dimensioni, si dispone di un'architettura orientata agli oggetti con attori che passano messaggi implementati utilizzando la programmazione funzionale. Ciò che OTP chiama a server
è strettamente correlato a un oggetto, server
i quali sono costituiti da processi (che sono attori), i processi utilizzano funzioni internamente.
In generale, non credo che nessun linguaggio attore puro abbia mai lasciato la ricerca. Cavolo, non so nemmeno se il PLASMA di Carl Hewitt, la lingua originale dell'attore, sia mai stato implementato.