Помогите выбрать язык ФП. (Хаскелл или Эрланг?)

Модератор: Модераторы разделов

Аватара пользователя
Yaros
Сообщения: 501
ОС: Debian Wheezy / Gentoo

Помогите выбрать язык ФП.

Сообщение Yaros »

Решил начать изучать ФП (функциональное программирование), пытаюсь определится с языком. Хотелось бы узнать мнение бывалых: какие плюсы и минусы по отношению друг к другу у языков Haskell и Erlang и для каких целей что лучше использовать? Заранее спасибо.
=========
=Мой блог. =
=========
Gentoo-ниасилятар
Спасибо сказали:
Аватара пользователя
korvin
Сообщения: 39
ОС: >_<

Re: Помогите выбрать язык ФП.

Сообщение korvin »

Haskell -- чистый ФП-язык, его и бери, раз хочешь ФП изучать.

Erlang все-таки больше на многопоточные и многопроцессорные вычисления, так что ФП там вроде и не так чтобы основа, в *ML больше ФП, например можешь взять O'Caml.

ну и все-таки тут важен не столько язык, сколько теоретические основы, так что литературу в руки и вперед.

P.S. если это все покажется сложноватым, то можно начать с (не совсем про ФП, но в том числе и про него) SICP и Scheme
(© '(define LISP (такой язык-программирования (состоящий-из смайликов (чуть более) (чем целиком)))) lurkmore)
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Помогите выбрать язык ФП.

Сообщение Portnov »

Тема не менее 'животрепещущая', чем, скажем, 'выбор ЯП вообще'. См. также http://fprog.ru , в частности, http://fprog.ru/2009/issue3/eugene-kirpich...onal-languages/ и список литературы оттуда.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
Yaros
Сообщения: 501
ОС: Debian Wheezy / Gentoo

Re: Помогите выбрать язык ФП.

Сообщение Yaros »

korvin писал(а):
19.01.2010 12:01
Erlang все-таки больше на многопоточные и многопроцессорные вычисления, так что ФП там вроде и не так чтобы основа, в *ML больше ФП, например можешь взять O'Caml.

А насколько часто приходится писать приложения (in real life), которые за счет поддержки многопоточности могут получить реальные выгоды (типа ускорения, роста стабильности, etc)?
korvin писал(а):
19.01.2010 12:01
Haskell -- чистый ФП-язык, его и бери, раз хочешь ФП изучать.

Просто не совсем понятна целевая ниша языка
korvin писал(а):
19.01.2010 12:01
ну и все-таки тут важен не столько язык, сколько теоретические основы, так что литературу в руки и вперед.

Уже вкуриваю потихоньку в лямбда-счисления...
Portnov писал(а):
19.01.2010 13:37
Тема не менее 'животрепещущая', чем, скажем, 'выбор ЯП вообще'. См. также http://fprog.ru , в частности, http://fprog.ru/2009/issue3/eugene-kirpich...onal-languages/ и список литературы оттуда.

FProg читаю потихоньку, но определиться с выбором пока не выходит.
Потому и задал вопрос.
=========
=Мой блог. =
=========
Gentoo-ниасилятар
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Помогите выбрать язык ФП.

Сообщение Portnov »

Yaros писал(а):
19.01.2010 17:53
насколько часто приходится писать приложения (in real life), которые за счет поддержки многопоточности могут получить реальные выгоды

Это, прежде всего, зависит от того, какие приложения вы пишете вообще. Скажем, всякие веб- и прочие подобные сервисы явно выигрывают от многопоточности. Многие вычислительные алгоритмы хорошо "параллелятся".

Yaros писал(а):
19.01.2010 17:53
Просто не совсем понятна целевая ниша языка

Это язык общего назначения. На некоторых задачах (скажем, создание компиляторов, всяких DSL и EDSL итп) он даёт больше преимуществ над языками более низкого уровня, чем на других.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
Yaros
Сообщения: 501
ОС: Debian Wheezy / Gentoo

Re: Помогите выбрать язык ФП.

Сообщение Yaros »

Portnov писал(а):
19.01.2010 18:47
Yaros писал(а):
19.01.2010 17:53
насколько часто приходится писать приложения (in real life), которые за счет поддержки многопоточности могут получить реальные выгоды

Это, прежде всего, зависит от того, какие приложения вы пишете вообще. Скажем, всякие веб- и прочие подобные сервисы явно выигрывают от многопоточности. Многие вычислительные алгоритмы хорошо "параллелятся".

Т.е. при создании приложений "Клиент-Сервер" сервер выигрывает от использования Эрланга?
Portnov писал(а):
19.01.2010 18:47
Yaros писал(а):
19.01.2010 17:53
Просто не совсем понятна целевая ниша языка

Это язык общего назначения. На некоторых задачах (скажем, создание компиляторов, всяких DSL и EDSL итп) он даёт больше преимуществ над языками более низкого уровня, чем на других.

В качестве языка общего назначения Си учу. Очень нравится, пока не собираюсь ему изменять))
=========
=Мой блог. =
=========
Gentoo-ниасилятар
Спасибо сказали:
Nymin
Сообщения: 1095
Статус: -
ОС: GNU/Linux

Re: Помогите выбрать язык ФП.

Сообщение Nymin »

Си
измените ему с Си++
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Помогите выбрать язык ФП.

Сообщение Portnov »

Yaros
http://vshabanov-ru.blogspot.com/2008/07/blog-post.html

Nymin
Из ссылки выше, например:
Касательно C++, утверждаю что для ЛЮБОЙ задачи ВСЕГДА найдётся лучшее средство для её решения нежели C++. Неоправдано писать на C++ даже если уже есть огромная наработанная кодабаза на нём, которую нужно использовать.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Nymin
Сообщения: 1095
Статус: -
ОС: GNU/Linux

Re: Помогите выбрать язык ФП.

Сообщение Nymin »

например Моно и Джава, да?
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Помогите выбрать язык ФП.

Сообщение Portnov »

В каких-то случаях - да. Во всех остальных - что-нибудь более высокоуровневое, тот же Haskell :)
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
Yaros
Сообщения: 501
ОС: Debian Wheezy / Gentoo

Re: Помогите выбрать язык ФП.

Сообщение Yaros »


Это к тому, что хаскель предпочтительнее? =)
=========
=Мой блог. =
=========
Gentoo-ниасилятар
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Помогите выбрать язык ФП.

Сообщение Portnov »

Имхо - да. Понятно, что вы услышите и другие мнения. Но ситуация примерно следующая. Программирование / computer science развивается в общих чертах подобно другим наукам. Подобно математике, скажем. Есть совсем прикладная математика - сдачу в магазине посчитать. Есть чуть более абстрактная - типа, посчитать площадь фигуры с помощью интеграла. Есть при этом и "фундаментальная математика", передний край науки. При этом мир развивается таким образом, что идеи из фундаментальной математики постепенно (медленно, да) становятся всё более жизненными (ну, например, теория машины Тьюринга, теория сложности алгоритмов - появились до компьютеров). С программированием аналогично. Есть совсем прикладное программирование, называемое в простонародье быдлокодингом. Есть более "продвинутое". Есть передний край computer science. И направление развития такое же: идеи с нынешнего переднего края когда-нибудь будут уделом быдлокодеров. Известно, что разные ЯП тоже можно располагать на шкале "клепание формочек ---> передний край CS". У левого края всякие Delphi и VBA, у правого - Agda2, Epigram итд. Haskell замечателен тем, что расположен ближе к "переднему краю", но достаточно далеко от него, чтобы иметь практические применения (на всяких Epigram, афаик, дальше докторских диссертаций пока не продвинулось дело). И при этом идеи, которые сейчас в хаскеле передовые, скоро будут в "быдлокодерских" языках (а некоторые уже есть).
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
Yaros
Сообщения: 501
ОС: Debian Wheezy / Gentoo

Re: Помогите выбрать язык ФП.

Сообщение Yaros »

Хорошо, попробую Хаскель.
Вот что удалось накопать из доков на русском (увы, очень плохо знаю инглиш):
http://www.haskell.ru/
http://www.roman-dushkin.narod.ru/fp.html
http://www.rsdn.ru/article/haskell/haskell_part1.xml
Есть ли еще какая-либо русскоязычная документация, на которую стоитт обратить внимание?
=========
=Мой блог. =
=========
Gentoo-ниасилятар
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Помогите выбрать язык ФП.

Сообщение diesel »

Yaros писал(а):
20.01.2010 13:04
Есть ли еще какая-либо русскоязычная документация, на которую стоитт обратить внимание?

а с английским совсем никак? Есть ИМХО хорошая для новичков книга: http://book.realworldhaskell.org/read/, но на русский ее вроде не переводили, написана достаточно простым английским.
Спасибо сказали:
Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

Re: Помогите выбрать язык ФП.

Сообщение RasenHerz »

Yaros писал(а):
20.01.2010 13:04
(увы, очень плохо знаю инглиш)

Это вы зря - больше всего документации именно на английском.

P.S. лично мне очень понравилась книжка Haskell - The Craft of Functional Programming, авторов, к сожалению, не помню.
Спасибо сказали: