Мені цікаво вивчити одночасне програмування, зосередившись на рівні програми / користувача (не системне програмування). Я шукаю сучасну мову програмування високого рівня, яка забезпечує інтуїтивні абстракції для написання одночасних додатків. Я хочу зосередити увагу на мовах, які підвищують продуктивність і приховують складність паралельного програмування.
Щоб навести кілька прикладів, я не вважаю хорошим варіантом написання багатопотокового коду на C, C ++ або Java, оскільки в IMHO моя продуктивність знижується, а їх модель програмування не є інтуїтивно зрозумілою. З іншого боку, мови, які підвищують продуктивність і пропонують більш інтуїтивні абстракції, такі як Python та багатопроцесорний модуль, Erlang, Clojure, Scala тощо, були б хорошими варіантами.
Що б ви порадили на основі свого досвіду і чому?
EDIT: Дякую всім за цікаві відповіді. Важко зробити висновок, не намагаючись насправді, оскільки є багато хороших кандидатів: Ерланг, Клуджуре, Скала, Гроові і, можливо, Хаскелл. Я проголосував відповідь найпереконливішими аргументами, але я спробую всіх хороших кандидатів, перш ніж вирішити, кого обрати :)
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.
Знову ж чому? Розгорніть своє запитання, щоб краще визначити, що ви насправді шукаєте.