почему haskell используют совместно с erlang?

почему haskell используют совместно с erlang?

Уже не в первый раз вижу миграцию с питона на haskell + erlang. Например, в яндексе и селектел. Зачем нужно сразу два яп?

потому-что erlang делали для разработки больших, легко масштабируемых, не убиваемых систем?

про хаскель ничего не знаю.

да какой-то чувак лекцию прочитал в интернете, вот все хипсторы и побежали.Хаскель наверное нужен для 'ускорения' и более жёсткой компайлтайм проверки типов проверки каких-то 'критичных' к этому кусочков.

Скоро фп станет мэйнстримом, а какие ещё парадигмы есть, куда можно будет свалить, чтобы быть не как все ?

удиви всех, пиши на дракон

Уже не в первый раз вижу миграцию с питона на haskell + erlang. Например, в яндексе и селектел.

o_O пару пруфов бы не помешало

после Haskell, можно замахнуться на Рефал+ и Акторный Пролог.

пруф про яндекс:

Пруф про селектел лень искать.

примерно по такой же причине, по которой питон используют в связке с с/c++. erlang также часто используют с тем же си для ускорения.

а разве это не языки одного уровня по возможностям? Говоря проще, чего не хватает в erlang (или наоборот) что есть в хаскеле?

у ерланга динамическая типизация, например.

Статическая типизация, скорость.

По селектелу видел на хабре, все это достаточно ограниченная ниша, а не «переходят с питона на хаскель и эрланг» - облачные вычисления и прочая распределенщина. Собственно, логично: eralng отвечает за многопоточность, хаскель как замена плюсам - убогий рантайм, статическое огораживание, но потенциальная многопоточность + скорость, чтобы erlang подстраховать и по незнанию ocaml. Не D же выбирать, в самом-то деле.

а разве это не языки одного уровня по возможностям? Говоря проще, чего не хватает в erlang (или наоборот) что есть в хаскеле?

В хаскеле нет ничего подобного эрланговскому let it die, в эрланге - динамическая типизация и тормоза.

т.е. у haskell с гринлетами проблемы?

В хаскеле нет ничего подобного эрланговскому let it die

ну это не совсем аргумент. Если там чего-то нету из коробки, это можно было бы реализовать.

У erlang это уже готовая и отлаженная рабочая модель + vm + otp, а не экспериментальная поделка.

Никто и на джаве с плюсцами не запрещает писать многопоточные приложения, потенциально-то на них можно огого! :D

Баян и не взлетело, хипстеры не одобрят.

Не смог удержаться и таки решил заняться разжиганием?

Ты ничего не понимаешь в хипстерах.

И это называется громкими словами «переход яндекса»? %)

Если я правильно понял слайды: официальные причины перехода - type safety и SMP, реальные - кому-то захотелось поиграть с другими технологиями, и как раз подвернулась относительно небольшая задача вида «пора переписать прототип».

P.S. рассеянные по тексту пони заставляют сомневаться в ментальном здоровье авторов.

Селектел своё облако переписал. Это не тривиальная задача.

Больной, если вы не будете сопротивляться, вам же будет легче.

Селектел своё облако переписал. Это не тривиальная задача.

Я не говорил, что в яндексе решена тривиальная задача - только то, что система кажется относительно небольшой. И это переписывание. Про селектел ничего сказать не могу.

конечно же не одного.

эрланг ускоспециализированный динамический язык крутящийся на вм, которая не умеет быструю математику.

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

тебе уже сказали, проблема в управлении этими потоками. т.е. в живучести распределенных программ.

ну это не совсем аргумент. Если там чего-то нету из коробки, это можно было бы реализовать.

бггг. вот эту фичу реализовали, и назвали все это эрлангом :)))))

Эрланг в плане языковых средств для написания т.н. «обычных» программ был полным фуфелом, когда я пару лет назад читал книжку, лёжа на пляже пузом кверху. Использование его в паре с каким-нибудь более весёлым языком просто само напрашивается.

Говоря проще, чего не хватает в erlang (или наоборот) что есть в хаскеле?

Лёгкие процессы, сообщения, исключения и перезапуск, таймауты и прочая конкурентность - есть и там и там. В эрланге оно прозрачно между нодами, в хаскеле - нет (если не считать CloudHaskell). В эрланге есть горячее обновление, живой образ и дебагер, в хаскеле - только бинарники и GHC API (GHCi как среда и дебагер весьма слабый). А так хаскель статически типизирован с разными языковыми и рантайм плюшками, тогда как в эрланге многого нет (хотя в хаскеле нет, например, чего-то вроде атомов).

Вот ещё есть такая ссылка - http://eric.themoritzfamily.com/websocket-demo-results-v2.html, если не видел. Хаскельный Snap, который там представлен, написан вполне идиоматично, с точки зрения подхода эрланга.

питон + эрланг тоже замечательная связка.

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

📎📎📎📎📎📎📎📎📎📎