Coding With Fun
Home Docker Django Node.js Articles Python pip guide FAQ Policy

Is erlang really an actor model language?


Asked by Emely Little on Dec 03, 2021 Erlang



The actor model has most famously been associated with Erlang, a functional, dynamically typed language invented in 1986 at Ericsson. Erlang was designed for creating applications (such as telephone switches) that must run nonstop. That requires the code to be hot-swappable, distributed, and robust in the face of errors.
Next,
The model. The actor model is a conceptual model to deal with concurrent computation. It defines some general rules for how the system’s components should behave and interact with each other. The most famous language that uses this model is probably Erlang.
Thereof, I think Joe Armstrong usually calls those sublanguages of Erlang Functional Erlang, Concurrent Erlang, SMP Erlang, Distributed Erlang and Reliable Erlang, where each one is a proper superset of the one before. So, Functional Erlang is what runs inside an Actor, and it is purely functional.
Keeping this in consideration,
Both Erlang and Scala take a different approach to concurrency: the Actor Model. It is necessary to look at the concepts of the actor model first, before studying the peculiarities of the languages itself. The Actor Model, which was first proposed by Carl Hewitt in 1973 [5] and was improved, among others, by Gul Agha [6].
One may also ask,
Actors in Erlang. Due to its roots in the telecom industry, where a very large amount of concurrent processes are normal, it is almost impossible to think of Erlang without actors, which are also used to provide distribution. Actors in Erlang are called processes and are started using the built-in spawn function.