Я рассчитываю начать экспериментальный проект с использованием функционального языка и пытаюсь выбрать между Эрлангом и Хаскеллом, и у обоих есть некоторые моменты, которые мне действительно нравятся.
Мне нравится сильная система типов и чистота Хаскелла. У меня есть ощущение, что это облегчит написание действительно надежного кода. И я думаю, что сила Хаскелла сделает кое-что из того, что я хочу сделать, намного проще.
С другой стороны, у меня возникает ощущение, что некоторые из фреймворков для работы в Интернете на Haskell, такие как Yesod, не так продвинуты, как их контрагенты Erlang.
Мне скорее нравится подход Erlang к нитям и отказоустойчивости. У меня есть ощущение, что масштабируемость Erlang может стать большим плюсом.
Это приводит к моему вопросу, каков опыт людей в реализации бэкэндов веб-приложений в Haskell и Erlang. Существуют ли пакеты для Haskell, чтобы предоставить некоторые легкие темы и актеров, которые есть в Erlang?
источник
Ответы:
Единственный вопрос, который у меня есть, это что делает ваш веб-сервис? Если веб-сервис действительно является функциональной проблемой, то Haskell подойдет лучше.
Эрланг не обязательно является функциональным языком. Это процедурный язык с очень сильной моделью исполнения для массивно параллельных систем. Он был разработан для телекоммуникационной отрасли и определенно отлично подходил для ответа на запросы веб-сервисов.
См. Эту страницу * для обзора различий между процедурным и функциональным программированием. (Заранее извиняюсь за уродливый черный на голубой странице).
Если ваш веб-сервис выполняет большое количество сопоставлений с шаблоном и применяет правила, то Haskel - ваш выбор. Если вы просто хотите масштабируемую инфраструктуру, которая не слишком отличается от языков, которые вы, вероятно, уже знаете, выберите Erlang.
(* ссылка через Wayback machine. Оригинальный файл был удален)
источник
Между двумя из упомянутых вами, безусловно, Хаскель академичен, а Эрланг используется в реальных проектах с высокой масштабируемостью. Так что из двух для веб-сервисов я бы выбрал Erlang.
Но я бы сказал, что у вас есть третий выбор: Scala , язык, который находится под сильным влиянием Хаскелла и Эрланга. Он используется для создания первоклассных веб-сервисов, таких как Twitter или Foursquare. Существует даже Lift , веб-фреймворк, вдохновленный Rails и Django, хотя и с немного другим, более функциональным подходом. Foursquare использует Lift.
источник
Обычно я говорю: «Изучай вещи настолько далеко, насколько это возможно от твоей зоны комфорта, это сделает тебя лучшим программистом, даже если ты никогда не будешь использовать это на практике».
В этом случае это может означать Haskell; но Эрланг не только становится почти социально приемлемым; но основные моменты (легкие процессы, передача сообщений, огромная масштабируемость) появляются на многих других «практических» платформах, поэтому извлеченные уроки имеют широкое и непосредственное применение для более «реальной» работы.
Мой совет: если это для удовольствия, сделайте Haskell. если это для обучения, иди Erlang.
источник