Erlang и Scala

Недавно изучал Scala, заинтересовался Erlang.
Начитался противоречивых обсуждений в Сети, хотелось бы услышать мнение людей, которые уже столкнулись с этой дилеммой.
Что вы выбрали? Почему?

Может быть, кто-то работал с Akka? Получается ли из него полноценная альтернатива распределенным нодам Erlang'a?
  • Вопрос задан
  • 9004 просмотра
Пригласить эксперта
Ответы на вопрос 5
@VlK
Пробовал работу с обоими языками. Опыт небольшой, но есть.

Scala (щупал фреймворки Lift и Actors). Объектно-ориентированный в целом язык, хорошо интегрированный с Java. На лицо некоторая двойственность парадигмы и расширенный спектр концепций, внесенный в язык в связи с этим.

Не нравятся традиционной для JVM безмерной глубины трейсы. Синтаксис привычный, а ла Java.

Фирменная фича: Actors — фрейморк на языке, упрощающая работу с распределенными (или, вернее, распределяемыми) задачами.

Erlang — интересная высокоуровневая реализация функциональной парадигмы. Мои симпатии на стороне этого языка.

Никаких глобальных состояний, изменяемых переменных, избыточности ООП, чистый message passing. Разработчик почти полностью абстрагирован от уровня узлов кластера.

Явистам могут показаться непривычными синтаксис и сугубо функциональный стиль программирования. Несколько больше времени уйдет на освоение. Трейсы умеренной зашифрованности.
Ответ написан
Комментировать
Rigidus
@Rigidus
Вот довольно интересное сравнение эрланга и скалы — автор начал с эрланга, а потом посмотрел на скалу. Возможно вам поможет взгляд «с другой стороны»: wiki.rsdn.ru/thinking-in-erlang-vs-scala.ashx
Ответ написан
mr_elzor
@mr_elzor

К трейсам erlanga очень быстро привыкаешь, они в меру подробные и всегда четко локализуют проблему. Лично мне трейсы erlang'a нравятся куда больше, чем java.

Ответ написан
Комментировать
philpirj
@philpirj
У Erlang'а живое сообщество. У Scala есть свои проблемы, возможно, временные.
Если смущает синтаксис Erlang'а — посмотрите на Reia.
Ещё был в своё время интересный проект Kilim, actor framework для Java, но затрудняюсь ответить, насколько он жив.
Ответ написан
afiskon
@afiskon
У нас пишут на Scala и Erlang. Я лично пишу на Erlang, мое мнение об этом языке можете почитать тут. В двух словах, язык не без шероховатостей, но в целом весьма годный.

Скалу тоже пробовал, но совершенно не проникся. Язык сложный, медленно компилируется, много подпорок (манифесты и тд). Что же касается Akka, то это плохо слизанные акторы Erlang'а. Плохо слизанные, как минимум, потому что актор может упереться в I/O, тем самым заблокировав все акторы, работающие на той же нитке. В Erlang весь I/O происходит через select/poll, поэтому такой проблемы не возникает. Кроме того, Erlang равномерно распределяет процессорное время между акторами, а JVM этого не может, просто потому что она не для этого создавалась.

В заключение отмечу, что даже наши Scala разработчики плюются от Akka и предпочитают те старые акторы из Scala 2.8.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы