Obwohl das Actor Model älter als Erlang ist, erfuhren die Designer von Erlang erst nach dem Entwurf von Erlang von dem Actor Model, sodass einige Unterschiede zu erwarten sind.
Sie folgten jedoch parallelen Entwicklungspfaden: Das Actor Model wurde von Carl Hewitt basierend auf der Semantik der Nachrichtenübermittlung von Smalltalk erstellt. Alan Kay wiederum hatte die Message-Passing-Semantik von Smalltalk auf die zielgerichtete Bewertung von PLANNER gestützt, die von Carl Hewitt entworfen wurde.
PLANER war der Vorläufer von Prolog. Erlang war ursprünglich nicht als Sprache gedacht, sondern begann als Bibliothek für fehlertolerante verteilte Programmierung in Prolog und entwickelte sich später zu einem Dialekt von Prolog, bevor es zu seiner eigenen Sprache wurde, die bis heute stark von Prolog beeinflusst wurde (Außerdem wurde der ursprüngliche Erlang-Interpreter in Prolog geschrieben).
Die Ähnlichkeiten zwischen Prozessen in Erlang, Objekten in OO und Akteuren im Akteurmodell sind also alles andere als zufällig.
Erlang ist eine Sprache mit mehreren Schichten, von denen jede Obermenge der unteren Schichten ist. Die kleinste Schicht ist Functional Erlang . Dies ist eine Standardfunktionssprache mit einigen Ergänzungen, die von Prolog übernommen wurden, z. B. Vereinheitlichung anstelle von Bindung / Gleichheit. Wenn wir dazu Prozesse und Nachrichten hinzufügen , erhalten wir Concurrent Erlang . Wenn Sie entfernte Prozesse einsetzen, erhalten Sie Distributed Erlang . Fügen Sie nun einige Bibliotheken und Entwurfsmuster aus dem OTP hinzu, und Sie haben fehlertolerantes Erlang.
Prozesse sind Akteure. (Sie sind auch Objekte.) Das Innere von Prozessen ist funktional und nicht akteurbasiert. Die Struktur eines großen fehlertoleranten Erlang-Systems, das unter Verwendung der Werkzeuge und Muster des OTP konstruiert wurde, ist oft sehr objektorientiert.
Es kommt also darauf an, welchen Maßstab Sie betrachten.
In einem typischen großen Erlang-System verfügen Sie über eine objektorientierte Architektur mit Message-Passing-Akteuren, die mithilfe der funktionalen Programmierung implementiert werden. Was OTP a nennt, server
hängt eng mit einem Objekt zusammen, server
es besteht aus Prozessen (die Akteure sind), Prozesse verwenden Funktionen intern.
Im Allgemeinen glaube ich nicht, dass irgendeine reine Darstellersprache jemals die Forschung verlassen hat. Ich weiß nicht einmal, ob Carl Hewitts PLASMA, die ursprüngliche Darstellersprache, jemals implementiert wurde.