Кто-нибудь успел поработать со Scala и Erlang и сделать для себя выбор?
По-моему, это сейчас два главных конкурента в области функционального программирования.
уууу Scala и Erlang это два разных языка. Erlang функциональный, Scala же императивный с примисью функциональщины.
Хотя идея Actor и была взята разработчиками Scala из Erlang'а — она далеко (ну в тысячи раз наверное) менее легковесна, чем это сделано в Erlang'е (ну это ограничение JVM и того факта, что все в Erlang'е immutable и работает правило single assign).
Вообще Erlang восхитителен, вот только он недостаточно популярен и компиляция его рантайма иногда это просто пляска с бубном.
Scala по мне через чур перегруженный язык. Тут лучше сравнивать Haskell, F# и Erlang, чем Scala
sudo apt-get install erlang ну и какую версию вы получите? В большенстве случаев это будет 1.13, когда многие разработчики советуют использовать 1.14
В Scala там работает все быстро и хорошо до того момента, когда появляются блокирующие операции. А если нужно в Actor'ах с ними работать, добро пожаловать в thread мир.
В Erlang'е такого нет и не было. Кстате, для .Net то же есть библиотеки наподобии CCR и Retlang. Но все это кастыли (как тот же nodejs) и не поддерживаются на таком же уровне, что и в Erlang'е.
> sudo apt-get install erlang ну и какую версию вы получите? В большенстве случаев это будет 1.13, когда многие разработчики советуют использовать 1.14
О боже, какой ужас! Ну сделай тогда emerge erlang, будет тебе 1.14.
Сами пробывали? Там чтоб из исходников надо много чего компилить предварительно.
Тот же widget хрен поймешь какой, хотя это и не надо, чтобы ранить сервисы.
sha1dy говорил именно про ситуацию когда они всеже есть, IO например.
Я, на самом деле, погулил эту тему, но, тем не менее, я не понял концептуального различия между scala и erlang, имхо они решают это одинаково, разница лишь в том что один на уровне виртуальной машины, другой на уровне библиотеки. Поэтому не понятно почему в одном случае проблема в принципе не может возникнуть, а в другом она возникнет чуть ли не сразу.
Есть знакомый, который долго и тщательно (около месяца) изучал варианты. Остановился на Erlang из-за BEAM. По его словам, JVM принципиально не подходит для массовой параллельности и никогда исправлена не будет.
Erlang изначально создавался для телекома и его OTP — это просто сказка. JVM создавался для других целей, поэтому там никогда не будет такой отказаустойчивости и параллелизации.
Грант — безвозмездная субсидия предприятиям, организациям и физическим лицам в денежной или натуральной форме на проведение научных или других исследований, опытно-конструкторских работ, на обучение, лечение и другие цели с последующим отчетом об их использовании.
Для получения гранта заявитель пишет подробный план, с указанием расходов и сроков, а также описывает свой вклад — ту часть расходов, которые он возьмет на себя или сможет получить из других источников. Заявки проходят этап рассмотрения в организации, выделяющей грант, и, часто, конкурс между заявками разных участников. В конкурсе учитывается весомость обоснования на получение финансирования, адекватность требуемых расходов, степень подготовки участника, длительность результата и др. Грантополучатель отчитывается о расходах, предоставляя чеки, отчеты и объективные результаты (научные работы, публикации, исследования, статистику). Как правило, это важная и большая часть работы над заявкой.
(wikipedia)
Кто-то ещё из подобных проектов в гранте участвовал? Помоему просто написали заявку, получили грант. Система грантов так и работает.
Насколько я понял идею — это создать кучу DSL которые позволят программировать декларативно, а компилятор и runtime научить распараллеливать выполнение декларативных кусков. Так?
Разработчики Scala выиграли грант Евросоюза