it-swarm-es.com

¿Qué piensas del modelo actor?

The Actor Model que es usado por Erlang parece ser una forma muy diferente de hacer programación concurrente. ¿Qué piensas del modelo actor? ¿Será una solución popular para la concurrencia?

18
Jonas

Supongo que conoce el concepto. Bueno, todavía no lo sé muy bien.

La respuesta corta es que creo en la popularidad de este modelo a la concurrencia a corto y medio plazo. Siempre amé lambda y cierres y veo cierres como actores especialmente manejados para potenciar la concurrencia. Así, los procesadores multi-core nos traen un nuevo paradigma a la programación, la concurrencia es obligatoria para lograr un alto rendimiento. El modelo de actor parece el camino fácil para explotar el hardware moderno.

Tarde o temprano (espero que antes) casi todos los lenguajes convencionales admitirán un mejor modelo de concurrencia. En mi humilde opinión, el modelo de actor tan bien implementado en Erlang debería ser el mejor candidato.

Un obstáculo para que el modelo Actor gane popularidad es la poca impedancia con OOP, el paradigma dominante ahora. Pero se está dando el primer paso, los principales lenguajes están implementando algunas características funcionales que limpiarán el camino al modelo Actor.

Estoy leyendo mucho sobre este tema, creo que es muy importante que todo programador avance en sus habilidades.

Edición tardía:

Ahora entiendo mejor el paradigma. Entonces puedo decir que es mejor que un lenguaje de programación permita permitir que el problema sea manejado por bibliotecas o que eventualmente tenga una característica que facilite la adopción de un modelo. Atar un idioma con un solo modelo no ve una buena idea.

7
Maniero

"Popular" no es una métrica muy importante. "Útil" o "poderoso" es.

El modelo Actor existe desde hace unos 35 años, al menos en la academia, y ha sido adoptado por más y más lenguajes del mundo real a medida que pasa el tiempo. (OK, Erlang no adoptó el modelo Actor, sino reinventó el modelo Actor. Aún así).

Entonces, dado que ha sobrevivido a varias décadas en el mundo académico y se está moviendo hacia la corriente principal, yo diría que existirá por un buen tiempo.

7
Frank Shearar

Sinceramente, creo que es la mejor forma de hacer concurrencia. El modelo de memoria compartida con cerraduras me asusta, puedo ver demasiadas formas en las que puede salir mal. Los actores con transmisión de mensajes parece ser una forma mucho más limpia de hacer las cosas.

También mire STM que se puede usar en Clojure y Haskell y probablemente en algunos otros lenguajes.

5
Zachary K