Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

The Actor Model which is used by Erlang seems to be a very different way to do concurrent programming. What are your thoughts about the Actor Model? Will it be a popular solution for concurrency?

share|improve this question

closed as too broad by MichaelT, Jim G., Blrfl, Kilian Foth, Giorgio May 12 '14 at 7:10

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

This site seems to be way too biased and unfair towards soley opinion-based questions. This is clearly opinion-based but has not been closed. Other opinion-based questions get closed within minutes. How can this process be improved and become more fair? – jordan May 12 '14 at 5:03
I find the topic very interesting but, yes, the question is too broad and opinion-based. – Giorgio May 12 '14 at 7:10
up vote 6 down vote accepted

I presume you knows the concept. Well, I don't know very well yet.

The short answer is that I believe in popularity of this model to concurrency in short and medium term. I always loved lambda and closures and I see actor like closures specially handled to power concurrency. Thus multi core processors bring to us a new paradigm to programming, concurrency is obligatory to achieve high performance. Actor model seems the ease path to exploit modern hardware.

Sooner or later (i hope sooner) almost every mainstream language will support a better model to concurrency. IMHO Actor model so well implemented in Erlang should be the best candidate.

One obstacle to Actor model gain popularity is the little impedance with OOP, the dominant paradigm now. But the first step is being given, the main languages are implementing some functional features which will clean the path to Actor model.

I am reading a lot about this issue, I think it is very important to every programmer advance in his/her skills.

Late Edit:

Now I understand better the paradigma. So I can say it's better to a programming languague allow allow the problem be handled by libraries or eventually has a feature to facilitate the adoption of one model. Tie a language with just one model doesn't see a good ideia.

share|improve this answer
There's impedance between the Actor model and OOP? Alan Kay based Smalltalk in no small part on PLANNER. Hewitt took a lot from Smalltalk-72. Joe Armstrong now calls Erlang "possibly the only real OO language". – Frank Shearar Oct 10 '10 at 20:54

"Popular" isn't a terribly important metric. "Useful" or "powerful" is.

The Actor model's been around for about 35 years now, at least in academia, and it has been adopted by more and more real-world languages as time passes. (OK, Erlang didn't adopt the Actor model, it reinvented the Actor model. Still.)

So, given that it's survived several decades in academia, and it's moving into the mainstream, I'd say it's going to be around for a good while.

share|improve this answer

Honestly I think it is the best way to do concurrency. The shared memory with locks model scares me, I can just see too many ways where it can go wrong. Actors with message passing seems to be a much cleaner way to do things.

Also look at STM which can be used in Clojure and Haskell and probably a few other languages.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.