Aunque el Modelo de actor es más antiguo que Erlang, los diseñadores de Erlang solo aprendieron sobre el Modelo de actor después de haber diseñado Erlang, por lo que es de esperar algunas diferencias.
Sin embargo, siguieron caminos paralelos de evolución: el modelo de actor fue creado por Carl Hewitt basado en la semántica de mensajes de Smalltalk. Alan Kay, a su vez, había basado el mensaje que transmitía la semántica de Smalltalk en la evaluación de PLANNER dirigida por objetivos, que fue diseñada por ... Carl Hewitt.
PLANNER fue el precursor de Prolog. Originalmente, Erlang no estaba destinado a ser un lenguaje, sino que comenzó como una biblioteca para la programación distribuida tolerante a fallas en Prolog, y más tarde se convirtió en un dialecto de Prolog, antes de que se convirtiera en su propio lenguaje, aún hoy en día muy influenciado por Prolog (Además, el intérprete original de Erlang fue escrito en Prolog).
Por lo tanto, las similitudes entre los procesos en Erlang, los objetos en OO y los actores en el modelo de actor están lejos de ser una coincidencia.
Erlang es un lenguaje con varias capas, cada una de las cuales son superconjuntos de las capas inferiores. La capa más pequeña es Functional Erlang . Este es un lenguaje funcional estándar con algunas adiciones heredadas de Prolog, como la unificación en lugar de enlace / igualdad. Si agregamos procesos y mensajes a eso, obtenemos Erlang concurrente . Agregue procesos remotos y obtendrá Erlang distribuido . Ahora agregue algunas bibliotecas y patrones de diseño de la OTP, y tendrá Erlang tolerante a fallas.
Los procesos son actores. (También son objetos). El interior de los procesos es funcional, no basado en actores. La estructura de un gran sistema Erlang tolerante a fallas construido utilizando las herramientas y patrones de la OTP, a menudo está muy orientado a objetos.
Entonces, depende de la escala que esté viendo.
En un sistema Erlang grande típico, tiene una arquitectura orientada a objetos con actores que pasan mensajes implementados mediante programación funcional. Lo que OTP llama a server
está estrechamente relacionado con un objeto, server
están formados por procesos (que son actores), los procesos usan funciones internamente.
En general, no creo que ningún Actor Language puro haya abandonado la investigación. Diablos, ni siquiera sé si el PLASMA de Carl Hewitt, el lenguaje original del actor, incluso se implementó alguna vez.