LINUX.ORG.RU

Какой язык функционального программирования выбрать?


1

2

Хочу инвестировать в свои знания, сейчас мне требуется выбрать язык функционального программирования.

Выбираю из:

  • Erlang
  • Haskell
  • OCaml
  • CL


Основные требования к языку/платформе(по степени важности):

  • востребованность в промышленности
  • живое сообщество + наличие современной литературы
  • простота кода
  • скорость выполнения кода


Пока, самостоятельно попытался сделать небольшое исследование:
Erlang показался наиболее востребован,
Haskell+Erlang - нашел кое-какую литературу.

Если у вас есть опыт в функциональных языках, буду рад советам.



Последнее исправление: Donnie_Darko (всего исправлений: 2)
Ответ на: комментарий от anonymous

Вакансий с сишарпом сотни тысяч. Вакансий с говнофункциональщиной единицы, и те для красноглазых студентов, которые готовы вкалывать за идею за миску риса.

anonymous
()
Ответ на: комментарий от anonymous

> Вакансий с сишарпом сотни тысяч. Вакансий с говнофункциональщиной единицы, и те для красноглазых студентов, которые готовы вкалывать за идею за миску риса.

Да, согласен.

anonymous
()
Ответ на: комментарий от arhibot

Буду каждый раз, когда вижу херню. Покрайней мере пока кто-нибудь (да хоть ты) не убедит меня в обратном.

dizza ★★★★★
()
Ответ на: комментарий от anonymous

> А сам-то как-нибудь обосновывал свое утверждение?

Если ты настолько в танке и сомневаешься, что вакансий с C#, Java, PHP на порядки больше, то это легко проверяется.

anonymous
()

Erlang --- ничего про него не знаю Haskell --- лучший в мире язык для вычисления факториалов OCaml --- эклектичный CL --- не ФЯ.

ugoday ★★★★★
()

http://ru.wikipedia.org/wiki/Haskell

Хаскель принадлежит к семейству языков ML.Миранда была первым чистым функциональным языком, имевшем коммерческую поддержку, и была относительно популярна в 1980-х годах, но оставалась несвободным программным обеспечением. Это затрудняло развитие и исследования возможностей ленивого функционального программирования, поэтому буквально за пару лет появилось более десятка схожих языков. Чтобы объединить усилия разных разработчиков, в 1987 г. на конференции по функциональным языкам программирования и компьютерной архитектуре в Орегоне (FPCA’87) было решено создать комитет для разработки открытого стандарта.

В 1990 г. была предложена первая версия языка, Haskell 1.0. В дальнейшем работа комитета продолжилась, и в 1999 г. был опубликован «The Haskell 98 Report[4]», который стал стабильным стандартом языка на много лет. Язык, однако, продолжал бурно развиваться, компилятор GHC был фактическим стандартом в отношении новых возможностей.

http://ru.wikipedia.org/wiki/OCaml

Самый распространённый в практической работе диалект языка ML.

http://ru.wikipedia.org/wiki/Erlang

Erlang (Эрла́нг) — функциональный язык программирования с динамической типизацией, предназначенный для создания распределённых вычислительных систем

anonymous
()
Ответ на: комментарий от anonymous

> И из этого ты делаешь вывод, что фп для «студентов, работающих за миску риса»?

Из этого делается вывод, что ТСу надо учить C#, Java или PHP, а фп забыть.

Про миску риса тот анонимус решил немного потроллить между делом. Основная мысль, что надо учить C#.

anonymous
()
Ответ на: комментарий от anonymous

В вопросе ТСа явно указано фп, а про C#, Java и PHP нет ни слова. Может стоит чуть-чуть повнимательнее читать головной пост? Рейтинг вакансий указанных трех яп не имеет к треду отношения.

anonymous
()
Ответ на: комментарий от anonymous

> В вопросе ТСа явно указано фп, а про C#, Java и PHP нет ни слова.

Ну был человек в заблуждении. Мы ему помогли, расширили область поиска. Теперь его шансы получить работу возрасли многократно.

anonymous
()
Ответ на: комментарий от anonymous

Откуда вы вообще решили, что я нуждаюсь в вакансии?
Сейчас такой этап в моей жизны, что я изучаю новые технологии, написал же «инвестировать в свои знания». Не стоит, пожалуйста, мне советовать выучить php за 24 часа и получать «тищу» долларов зеленых.

Donnie_Darko
() автор топика
Ответ на: комментарий от arhibot

ну это для контрактников, но для работы на ставке цена не сильно хуже. Это банкинг, Лондон - такие вакансии регулярно появляются, только их наверное не всем предлагают

ott ★★★★★
()
Ответ на: комментарий от Donnie_Darko

> Откуда вы вообще решили, что я нуждаюсь в вакансии?

Это по всему топику размазано - востребованность, востребованность, востребованность, язык, язык, язык.

Сейчас такой этап в моей жизны, что я изучаю новые технологии, написал же «инвестировать в свои знания». Не стоит, пожалуйста, мне советовать выучить php за 24 часа и получать «тищу» долларов зеленых.

Тогда повторюсь. Зазубрить какой-то язык и быть востребованным - это быдлопоход. Он работает только на сишарпах, пхп и явах. Они для этого и создавались.

В ФП это не прокатит. Ты либо знаешь математику, которая лежит в основе и знаешь ВСЕ функциональные языки, либо ты ничего не знаешь.

Поэтому если хочешь вакансию - зубри шарп. Хочешь знаний - учи математику.

anonymous
()
Ответ на: комментарий от anonymous

Для полного счастья ТСа осталось привести список книг по математике необходимых для достаточных знаний...

И да - Scheme конечно не CL(изучаю именно Scheme), но в любом случае - Lisp не чистый функциональный язык. Он мультипарадигменный.(ну очень сильно прости просили фанатов Лиспа влезть)

Что касается языка - учи любой. А потом следующий. И следующий. Как в универах плюсы и джаву учат. Поймешь основы - поймешь какой язык больше нравится.

Идеал существует только в твоем воображении

И последнее - Nemerle? Не рассматривал этот вариант?

TheKnight ★★★
()

Ознакомится надо с каждым из этих языков - это несомненно. Хотя бы, чтобы быть в курсе. А вот в качестве «рабочей лошадки» из этого списка я бы ни чего не порекоммендовал.

ЗЫ. А вообще сходи в поиск, тема поднимается раз в месяц точно.

cathode
()
Ответ на: комментарий от anonymous

Это понятно, прицел на послевузовую карьеру. С юридическими моментами знаком, иллюзий нет. С вашей точки зрения, полезнее для карьеры java девелопера: scala или же как выше советуют «Haskell - для мозгов».

#

если после этого коммента, я в вашей иерархии быдлокодер, то мне от этого не жарко и не холодно. Ваш тезис про математику понятен - он рационален и мне априори был понятен. Но вовсе не о том речь. Как сказал кто-то из мудрецов анонимус в какой-то из соседных тредов: мир уже не тот, детка, и нужно заранее планировать свою жизнь. Вот я и пытаюсь быть эффективным и «востребованным». Мне жаль, если тем я задел ваши религиозные чувства, вторгнувшись в ваше благородное царство функциональшины из плебейскей императивности и объектно-ориентированности. (php-зазубрен, python-возлюблен, java-в процессе.)

Donnie_Darko
() автор топика
Ответ на: комментарий от anonymous

Вдогонку - если интересуют не чистые ФЯП и при этом под оффтопик - то присмотрись к .NET. F# к примеру. Тот же Nemerle. И многие другие. Есть еще под JVM языки типа Clojure.

Если все же чистые ФП в чисто образовательных целях - это все таки Haskell. Собственно все вышенаписанное - ИМХО студентоты-техника.

TheKnight ★★★
()
Ответ на: комментарий от annulen

>>Сишарп конечно ше. Лямбда там есть

Внезапно, С++0х! в нем тоже есть лямба

Без сборки мусора ничего не получится.

Waterlaz ★★★★★
()
Ответ на: комментарий от cathode

>ЗЫ. А вообще сходи в поиск, тема поднимается раз в месяц точно.

mea culpa. гугление, действительно, подняло много интересного.

Donnie_Darko
() автор топика
Ответ на: комментарий от Waterlaz

1. В С++0x возможна реализация со сборкой мусора

2. Есть же «ручная сборка» - смартпойнтеры

annulen ★★★★★
()
Ответ на: комментарий от Donnie_Darko

> если после этого коммента, я в вашей иерархии быдлокодер, то мне от этого не жарко и не холодно.

Специалист ориентируется на задачу, быдлокодер - на инструмент. Ты на что ориентируешься?

Но вовсе не о том речь. Как сказал кто-то из мудрецов анонимус в какой-то из соседных тредов: мир уже не тот, детка, и нужно заранее планировать свою жизнь. Вот я и пытаюсь быть эффективным и «востребованным».

Это что ли какой-то вид имитации бурной деятельности? Чтобы баззвордами потом понтоваться?

Мне жаль, если тем я задел ваши религиозные чувства, вторгнувшись в ваше благородное царство функциональшины из плебейскей императивности и объектно-ориентированности.

Я опасный тролль. Троллю и тех, и других.

anonymous
()
Ответ на: комментарий от anonymous

>Специалист ориентируется на задачу, быдлокодер - на инструмент. Ты на что ориентируешься?

ориентируюсь на общение и любовь

Это что ли какой-то вид имитации бурной деятельности? Чтобы баззвордами потом понтоваться?

ты кругом не прав

Я опасный тролль. Троллю и тех, и других.

Ништяк, анонимус, уважил внатуре

Donnie_Darko
() автор топика
Ответ на: комментарий от anonymous

>> Специалист ориентируется на задачу, быдлокодер - на инструмент.

Все нормальные работающие специалисты ориентируются на соотношение «кредит - дебит». И только анонимные аналитики ЛОРа продолжают спорить про специалистов и быдлокодеров. А ведь когда-то спорили про арийцев и неарийцев, католиков и гугенотов, про физиков и лириков, в конце концов.

cathode
()
Ответ на: комментарий от cathode

>>Без сборки мусора ничего не получится.

На кол!

Ну расскажи же нам тогда про нормальное ФП без сборки мусора. Заодно посмеемся.

Waterlaz ★★★★★
()
Ответ на: комментарий от ott

Конечно же миска риса. С php люди гораздо больше зарабатывают.

anonymous
()
Ответ на: комментарий от ott

Конечно же миска риса. С php люди гораздо больше зарабатывают.

anonymous
()
Ответ на: комментарий от ott

>800 фунтов/день - это миска риса?

Это, насколько я помню, лондонские haskell/ocaml банкинговые вакансии? А сходное для CL имеется?..

yoghurt ★★★★★
()
Ответ на: комментарий от Donnie_Darko

> еще интересует как с востребованностью языков в Германии

Лучше ориентируйся на штаты/калифорнию. Здесь всегда нужно много разных специалистов, и именно здесь больше половины людей говорят с акцентом (а ещё климат один из лучших на земле)

anonymous
()
Ответ на: комментарий от Waterlaz

>> Ну расскажи же нам тогда про нормальное ФП без сборки мусора. Заодно посмеемся.

Сначала расскажи про так как лямбду без GC нельзя реализовать

cathode
()
Ответ на: комментарий от cathode

> Сначала расскажи про так как лямбду без GC нельзя реализовать

Лучше расскажи, как её можно реализовать без GC и преведи 3 языка, где нет GC, но есть лямбда функции и ФВП.

anonymous
()
Ответ на: комментарий от anonymous

> Лучше расскажи, как её можно реализовать без GC

Ну, без ГЦ принципиально возможно. Просто тупо таскать постоянно за собой лексический контекст, копируя его. Производительность будет хуже, да. Видимо, по этой причине так и не делают.

anonymous
()
Ответ на: комментарий от anonymous

> > Лучше расскажи, как её можно реализовать без GC

Ну, без ГЦ принципиально возможно. Просто тупо таскать постоянно за собой лексический контекст, копируя его. Производительность будет хуже, да.

Если язык с побочными эффектами, как ты будешь копировать «лексический контекст» и когда его собираешься освобождать?

anonymous
()
Ответ на: комментарий от dizza

>Бля, ненавижу ЛОР.

Пеши исчо. Можно подумать, остальные ходят сюда любить ЛОР. А еще они тут едят.

slackwarrior ★★★★★
()
Ответ на: комментарий от arhibot

>Ejabberd, rabbitmq, couchdb

и только один камент про erlang :)

Deleted
()

в германии больше всего востребован abap (язычог SAP). лично меня рекрутеры уже задолбали спамить предложениями мест абапера и консультанта sap.

anonymous
()
Ответ на: комментарий от anonymous

erlang используют в united internet (aka 1&1, aka web.de) в мюнхене, afaik. в карлсруэ они же предлагали писать диплом на тему исследования применимости эрланга вместо жабы в их web-проектах (точнее - в бэкендах на кластерах).

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.