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