Estoy interesado en aprender programación concurrente, centrándome en el nivel de aplicación / usuario (no en la programación del sistema). Estoy buscando un lenguaje de programación moderno de alto nivel que proporcione abstracciones intuitivas para escribir aplicaciones concurrentes. Quiero centrarme en los lenguajes que aumentan la productividad y ocultan la complejidad de la programación concurrente.
Para dar algunos ejemplos, no considero una buena opción escribir código multiproceso en C, C ++ o Java porque, en mi humilde opinión, mi productividad se reduce y su modelo de programación no es intuitivo. Por otro lado, los lenguajes que aumentan la productividad y ofrecen abstracciones más intuitivas como Python y el módulo de multiprocesamiento, Erlang, Clojure, Scala, etc. serían buenas opciones.
¿Qué recomendarías según tu experiencia y por qué?
EDITAR: Gracias a todos por sus interesantes respuestas. Es difícil llegar a una conclusión sin intentarlo, ya que hay muchos buenos candidatos: Erlang, Clojure, Scala, Groovy y quizás Haskell. Voté la respuesta con los argumentos más convincentes, pero probaré todos los buenos candidatos antes de decidir cuál elegir :)
begin transaction
end transaction
y todo lo que contenga debe estar libre de puntos muertos y tener éxito o fallar en su conjunto.
To give an example, I don't consider a good option writing multithreaded code in C, C++, or Java
. ¿Por qué?On the other hand, Python and the multiprocessing module, Erlang, Clojure, Scala, etc. are some of my options.
De nuevo por qué? Expande tu pregunta para definir mejor lo que realmente estás buscando.