Ответ 1
Хотя это может и не быть той же самой моделью, которую использует Erlang, вы можете взглянуть на JoCaml, которая основана на исчислении соединения.
Может ли кто-нибудь рекомендовать библиотеку для Ocaml, которая предлагает основанную на актерах модель concurrency для распределенных вычислений?
Обратите внимание на "актер-основанный" и "распределенный". Мне нужна модель на основе актера, но я также хочу, чтобы без проблем работала с распределенными участниками - я не хочу писать протокол, чтобы поговорить с ними. В идеале библиотека также должна предлагать стандартные шаблоны, такие как деревья супервизора и т.д.
Мне нравится модель Erlang concurrency и способность прозрачно обрабатывать распределенные процессы и локальные процессы вместе. Тем не менее, я считаю синтаксис Эрланга довольно ограниченным и хотел бы получить гораздо более выразительный язык. Я рассматриваю переход из Erlang в Scala или Ocaml.
Я знаю, что Scala имеет библиотеку Akka, которая, кажется, предлагает приятную версию модели Scala модели Erlang concurrency. Я хотел бы посмотреть, что доступно на стороне Ocaml.
Я также был бы рад услышать о основанных на актерах библиотеках concurrency для других языков (в частности, С++, Haskell, Python и Ruby).
Хотя это может и не быть той же самой моделью, которую использует Erlang, вы можете взглянуть на JoCaml, которая основана на исчислении соединения.
Вы можете взглянуть на parvel - библиотеку/структуру передачи сообщений для ocaml. Он еще не завершен, но уже включает в себя некоторые примитивы для программирования с актерами.
"Я рассматриваю переход из Erlang в Scala или Ocaml.
Вам следует рассмотреть scalang, который позволяет вам программировать в Scala, но использовать актеров Erlang.
Недавно я увидел разговор на языке @moonpolysoft (Cliff Moon) на конференции Strange Loop. Cliff Moon разработал его для https://boundary.com/ и открыл его в начале этого года.
Вероятно, вы потратите много времени на чтение:
Scala и F # имеют akka и MailboxProcessor, которые используются в производственных приложениях (примечание: Scala актеры и, я думаю, akka, очень привязаны к Hotspot, я не уверен, что MailboxProcessor можно использовать в MONO)
В Haskell есть потоки пользовательского пространства и как минимум 1 актерская реализация, о которой я мало что знаю о
Для ML и ocaml некоторые библиотеки, которые, вероятно, широко не используются: poly/ML и oc4mc
Хотя это очень старый вопрос, все изменилось с тех пор, как его спросили. С++ имеет реалистичную модель актера, которая довольно надежна. Он также предоставляет распределенные вычислительные функции по запросу OP. Домашняя страница находится на http://actor-framework.org/
Кроме того, он также может сделать нас OpenCL для HPC, модуль, для которого расположен в github в одном из хранилищ.