Pull to refresh

Comments 41

Кто-нибудь успел поработать со Scala и Erlang и сделать для себя выбор?
По-моему, это сейчас два главных конкурента в области функционального программирования.
Как-то вы легко Haskell cо счетов скинули.
А там есть средства для параллельного программирования — такие как процессы Erlang или akka(построенная на Actors) для Scala?
UFO just landed and posted this here
Ну да, я ошибся, сказав про «область функционального программирования». Новичок в этом.
Есть как библиотеки для Actor-model, так и для message-passing и даже Software-transactional memory.
Haskell не позиционируется как production-ready язык. Тогда уж OCaml или F# стоит рассматривать.
>Haskell не позиционируется как production-ready язык
Кто вам такую чушь сказал?
По резкой форме вашего вопроса могу предположить, что я вас задел за личное :) Не переживайте вы так, ничего я против хаскеля не имею, я ему посвятил довльно много своего времени. Было интересно.
На самом деле вы действительно спороли чушь, но возможно вдобавок ещё и задели тов. Nekuromento за личное. :)
Есть два варианта. Почему-то люди в таких ситуациях выбирают более удобный вместо того чтобы включить олову.
уууу Scala и Erlang это два разных языка. Erlang функциональный, Scala же императивный с примисью функциональщины.

Хотя идея Actor и была взята разработчиками Scala из Erlang'а — она далеко (ну в тысячи раз наверное) менее легковесна, чем это сделано в Erlang'е (ну это ограничение JVM и того факта, что все в Erlang'е immutable и работает правило single assign).

Вообще Erlang восхитителен, вот только он недостаточно популярен и компиляция его рантайма иногда это просто пляска с бубном.

Scala по мне через чур перегруженный язык. Тут лучше сравнивать Haskell, F# и Erlang, чем Scala
UFO just landed and posted this here
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 хрен поймешь какой, хотя это и не надо, чтобы ранить сервисы.
Что пробовал? emerge erlang? Делаю регулярно, собирается и инсталлируется сам, прикинь?
А как Erlang обходит блокирующие операции?
Методика share nothing, соответственно и блокироваться не на чем. Почитайте книжку, каменты — не лучший способ учить язык.
sha1dy говорил именно про ситуацию когда они всеже есть, IO например.

Я, на самом деле, погулил эту тему, но, тем не менее, я не понял концептуального различия между scala и erlang, имхо они решают это одинаково, разница лишь в том что один на уровне виртуальной машины, другой на уровне библиотеки. Поэтому не понятно почему в одном случае проблема в принципе не может возникнуть, а в другом она возникнет чуть ли не сразу.
UFO just landed and posted this here
Есть знакомый, который долго и тщательно (около месяца) изучал варианты. Остановился на Erlang из-за BEAM. По его словам, JVM принципиально не подходит для массовой параллельности и никогда исправлена не будет.

Вопросы можете не задавать, я этим не занимался.
Erlang изначально создавался для телекома и его OTP — это просто сказка. JVM создавался для других целей, поэтому там никогда не будет такой отказаустойчивости и параллелизации.
Для полного счастья нужна Scala на BEAM :) Хотя он, похоже, слишком императивен для этого.
Clojure очень достойный претендент.
Clojure — достойный конкурент для Erlang? вы серьезно?
Clojure достойный конкурент в области функционального программирования (см. родительский комментарий).

В узких нишах, под которые заточен Erlang, последний вероятно лучше.
Если разработка языка идет на гранты, это кое-что говорит о его востребованности для реальных проектов…
это просто значит, что кто-то подсуетился
UFO just landed and posted this here
Грант — безвозмездная субсидия предприятиям, организациям и физическим лицам в денежной или натуральной форме на проведение научных или других исследований, опытно-конструкторских работ, на обучение, лечение и другие цели с последующим отчетом об их использовании.

Для получения гранта заявитель пишет подробный план, с указанием расходов и сроков, а также описывает свой вклад — ту часть расходов, которые он возьмет на себя или сможет получить из других источников. Заявки проходят этап рассмотрения в организации, выделяющей грант, и, часто, конкурс между заявками разных участников. В конкурсе учитывается весомость обоснования на получение финансирования, адекватность требуемых расходов, степень подготовки участника, длительность результата и др. Грантополучатель отчитывается о расходах, предоставляя чеки, отчеты и объективные результаты (научные работы, публикации, исследования, статистику). Как правило, это важная и большая часть работы над заявкой.
(wikipedia)

Кто-то ещё из подобных проектов в гранте участвовал? Помоему просто написали заявку, получили грант. Система грантов так и работает.
Scala используется как большой backend в твиттере и facebook'е — так что да, это о чем то говорит.
Но никакой хэви-логики она не выполняет.
backend как раз всю хэви-логику и выполняет
Насколько я понял идею — это создать кучу DSL которые позволят программировать декларативно, а компилятор и runtime научить распараллеливать выполнение декларативных кусков. Так?
Sign up to leave a comment.

Articles