Я заинтересован в изучении параллельного программирования, ориентируясь на уровень приложения / пользователя (не системное программирование). Я ищу современный язык программирования высокого уровня, который предоставляет интуитивные абстракции для написания параллельных приложений. Я хочу сосредоточиться на языках, которые повышают производительность и скрывают сложность параллельного программирования.
Чтобы привести некоторые примеры, я не считаю хорошим вариантом написания многопоточного кода на C, C ++ или Java, потому что ИМХО моя производительность снижается, а их модель программирования не интуитивна. С другой стороны, хорошими вариантами будут языки, которые повышают производительность и предлагают более интуитивные абстракции, такие как Python и модуль многопроцессорной обработки, Erlang, Clojure, Scala и т. Д.
Что бы вы посоветовали, основываясь на вашем опыте и почему?
РЕДАКТИРОВАТЬ: Спасибо всем за ваши интересные ответы. Трудно сделать вывод, фактически не пытаясь, так как есть много хороших кандидатов: Erlang, Clojure, Scala, Groovy и, возможно, Haskell. Я проголосовал за ответ с наиболее убедительными аргументами, но я попробую всех хороших кандидатов, прежде чем решить, какой из них выбрать :)
begin transaction
end transaction
и все внутри должно быть без тупиков и либо успешно, либо с ошибками в целом.
To give an example, I don't consider a good option writing multithreaded code in C, C++, or Java
, Зачем?On the other hand, Python and the multiprocessing module, Erlang, Clojure, Scala, etc. are some of my options.
Опять же почему? Расширьте свой вопрос, чтобы лучше определить, что вы на самом деле ищете.