Это копия, сохраненная 6 ноября 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Ну, ты это, того, прикрепляй материалы к шапке треда, там сайты, книжки интересные по теме, всякие плюсы-минусы платформы, всякие рофлы, шутки и прибаутки, как в аналогичных языковых тредах, а то что ты как этот.
https://github.com/h4cc/awesome-elixir
Официальные гайды (en):
https://elixir-lang.org/getting-started/introduction.html
Туториал на русском:
https://elixirschool.com/ru/
Плагины для IDE:
https://gist.github.com/agustif/2f573557e5d2e4b42ed3b6cc4d285a8b
Вакансии:
https://elixirjob.ru/
Шпаргалка по синтаксису:
http://media.pragprog.com/titles/elixir/ElixirCheat.pdf
Часовое видео по базовому синтаксису для тех, кто не любит читать (en):
https://www.youtube.com/watch?v=pBNOavRoNL0
Зачетнейший язык, жаль что перекатился в питончик.
Как сейчас с рынком для эрланга/эликсира?
Пасты/гошки не выдавили его?
Выдавливают понемногу.
>Самые высокие зарплаты у разработчиков Scala, Objective-C и Golang — 150 000 рублей. Лидер прошлого полугодия Elixir — сейчас занимает только 6 место по зарплате.
>Рост медианной зарплаты произошёл практически по всем языкам. Особенно сильным ростом отличились Objective-C (25%), Swift (24%) и Java (20%). Небольшое снижение зарплаты видим у C++ и Delphi. Наибольшее снижение медианной зарплаты наблюдаем у Elixir (-19%).
Другими словами, эликсирошизики больше не нужны, ибо все нормальные компании переходят на гошу.
Как быстро я смогу написать опердень на Эрланге?
Сравнивать процедурный кусок говна с фичами на уровне урезанного паскаля и функциональный язык с метапрограммированием и лучшей имплементацией лучшей конкурентной модели.
>>489146
Ну, ты можешь писать бекенды на функциональном языке, при этом с приятным UX’ом как у Ruby, со скоростью разработки как у рельс, при этом у тебя нихуевый нативный инструментарий для риалтайма, автощедулинг на все ядра в системе, и почти бесплатный линейный скейл на N узлов, и пачка эрланговской плюшек типа хот код свапа, развитой интроспекции, ремоут шела, кучи трейсеров-дебагеров-профайлеров-сисмониторов, а ну и ультимативная отказоустойчивость конечно же.
Все это нахуй не нужно, когда у тебя бедная стандартная библиотека. Полтора фреймворка, которые поддерживают три анонимуса и динамическая типизация, которая сводит на нет все твои попытки написать что-то больше туду листа, лол.
Лев Валкин - ееее!
Двачую.
Мне как человеку, имеющему опыт лишь с си-подобными языками, вкатываться было довольно сложно.
Ну ты же понимаешь, что Erlang берут не из-за языка, а из-за рантайма, который в отличии от той же JVM не стопает все треды, когда нужно собрать мусор. + там из коробки неплохая модель акторов и библиотека OTP, которая тебе позволяет писать различные штуки из области телекома.
По-сути он и нужен для того, чтобы гонять данные из одного актора в другой и из одной ноды в другую. Для скорости туда прикручивают нативные модули на Rust или C/C++ через NIF. Мультиплеейрный бекенд калл оф дьюти так собственно и работает.
Только из-за рантайма можно терпеть все эти "прелести" динамической типизации и отсутствие библиотек/системы сборок/нормальные IDE и т.д.
шо с пакетами для решения рутиных задач?
>отсутствие библиотек/системы сборок/нормальные IDE и т.д.
Насчет IDE ничего не скажу - они мне не нужны, хватает атома и терминала спокойно.
Отсутствие библиотек - спорно, большинство необходимого есть. Раньше писал на ruby, там либ дохуя и типичное приложение - конструктор, собранный из 100500 гемов, ну его нахуй. В elixir можно пользуясь тем, что есть из коробки решить овер дохуя проблем.
Системы сборок - в elixir 1.9 завезли встроенный сборщик релизов.
Да есть работа, я что на первое, что на второе место за неделю, а то и меньше нашел и устроился. Само собой, вакансий меньше, чем на мейнстрим технологиях, но они есть. Но тут стоит учесть, что на elixir/erlang и пишет не столько много людей как на PHP.
>>489330
Для примера, с помощью ген сервера можно решить почти любую проблему, для которой в ruby подтягивают редис и сайдкик.
Я на том, что ты перечислил писал либо что-то чуть сложнее хеллоуворлдов, либо вообще не писал. Задавай какие-то более конкретные вопросы.
Ну так-то rebar3 нормально собирает. Вот в эликсире наконец-то сделали встроенный релиз менеджер, который вобрал в себя лучшее, что было в relx и distillery, а в эрланге ещё немного приходится возиться, но все есть.
В плане IDE, всегда были годные конфиги под вим/емакс, есть хорошие плагины для жыдеи и для эрланга и для эликсира, хотя эликсирщики чаще сидят под VS Code + Language Server.
>динамическая типизация, которая сводит на нет все твои попытки написать что-то больше туду лист
Ебать тут дед из 2004 года, проснись, маня, сейчас уже почти весь интернет работает на языках с динамической типизацией, а ты до сих пор лелеешь байку, что строгая типизация - это серьезно и единственный верный выбор для больших проектов. Не говоря уже про то, что в эликсире культура тестирования одна из самых охуенных, которые я видел в любом языке, тут хорошо покрытый тестами проект/либа(а то и вовсе написанные через TDD) - это правило, а не исключение. А юнит тесты всегда стоят на уровень выше типов и уже покрывают все то, что типы могли отловить.
Ну нет. Сейча обратный тренд.
Все хотят типизацию и максимальную строгость компилятора.
Это банально ускоряет разработку, оберегая от ошибок невнимательности
>типизация
>ускоряет разработку
Держи в курсе, наркоман. Одна из основных причин, почему динамические языки стали такими популярными - это как раз то, что скорость разработки на них выше.
Как бе да.
Не зря же js заменяют typescriptом, а python - go.
В питон и php добавили аннотации типов.
Ну и я перейдя на строготипищированные языки, начал чувствовать себя увереннее в своем коде.
Все кейсы не протестируешь.
>оберегая от ошибок невнимательности
Скорее оберегая от опечаток. А знаешь, что еще оберегает от опечаток, причем даже от тех, которые никакой компилятор не отловит? тесты
>Не зря же js заменяют typescriptом, а python - go.
Никто ничего не заменяет, через пять лет колесо моды опять повернется и все будут хайпить по динамическим языкам. Это все уже проходили и 10 лет назад, и 20, но тендеция такова, что динамические языки все популярнее и популярнее с каждым годом.
>Все кейсы не протестируешь.
TDD
Я не понял ты про эликсир или эрланг.
У эликсира достаточная стандартная библиотека, есть один вебфреймворк, один фреймворк для работой с БД, они охуенные и больше нахуй не надо. Лично мне либ на хексе хватает, во всяком случае 95% стандартных вещей который нужны при написании дженерик бекенда покрыты. Так же есть форматтер, линтер, тайпчекер, стайлгайды, проперти/апи/юнит тест фреймворки - всё что нужно чтоб поддерживать стабильность кодовой базы на проекте.
По поводу пары анонов на поддержке - это совсем уже тупой пиздёж, у эликсира очень активное комьюнити, со стабильной кор-тимой, во всяком случае релизят они не реже, чем те же менйтенйнеры рельс/джанг.
По поводу динамики, тут я тебя проигнорю, на нулевой есть тред где статикодебилы делятся своими маняфантазиями, пиши лучше туда на этот счет.
Чисто для справки, Саймон Пейтон Джонс с командой не смогли больше чем за год сделать в ерланга типизацию, потому что для конкурентной модели предполагающей нефиксированную топологию и теоретический неограниченный недетерминизм - это сделать не так просто. Но если сделаешь - не забудь позвонить в Эриксон. Ну и опять же, добавить типизацию = проебать интроспекцию и изменение кода в запущенной программе и добрую часть отказоустойчивости вместе с let it fail = проебать язык.
Типы + акторы это хуйня, есть рисеч проект Akka Typed, выглядит интересно, но уныло, типа акка и так урезанная версия эрланговских акторов, а тут ещё больше ограничений, ну нахуй
>Не зря же js заменяют typescriptом, а python - go.
тайпскрипт-обычный компилятор В жс,жс никуда не делся
В том то и дело.
Что пилили-пилили интерфейсы на J's и охуевали. Потому что без типизации поддерживать большой проект - жопа.
Вот и наворотили поверх тайпскрипты/флоу/ещё какую-нибудь хрень.
Дурачок, блядь. Ты что-нибудь сложнее вебни писал на своем эликсире?
И какой смысл использовать эликсир, когда это можно сделать проще, быстрее, а самое главное дешевле.
Тебе уже объяснили что это не так. Тем более, ты не сможешь найти нормальную работу. Кругом одни мутные компании, которые за твой эрланг с эликсиром платят 80к в серую, лол.
Ещё бы goakka кто-нибудь написал и было бы славно.
Кто мне что объяснил? Я не первый год пишу на эликсире за деньги, что ты мне рассказываешь?
Какой же ты смешной. Ты на HH давно был? 95% всех эликсир вакансий - это переписывание проектов с рубей на эликсир. Остальные 5% так же предполагают знание рубей.
Вся работа на эликсире - это веб параша и круды за мелкий прайс.
У меня лично выходит так, что круды это максимум 10% задач, все остальное - разные микросервисы.
На HH у меня стоит автопоиск, до сих пор каждый день какие-то вакансии прилетают, сейчас открыл, пришла вакансия 150-200к, только elixir, без рубей.
Я хуй знает, ты пробовал сам устроиться или начитался чего-то? Вакансий мало, разработчиков на эликсире в РФ еще меньше, наоборот, если у тебя есть опыт, то тебя с руками оторвут.
Ты плохо читаешь описание вакансий. Никому не нужен чистый эликсир. Все переписывают свои приложения с рельсов на феникс. А твои "микросервисы" - это обычная вебня и круды.
Что у тебя за жопоболь от веба? Веб - это во-первых огромный процент рынка программирования, а во-вторых(в том числе и из-за процента рынка) интересных задач там хоть жопой жуй, даже самый дегенеративный проект не будет состоять на 100% из чистых крудов. Очередной студент протек, который разделяет области программирования на илитные и ниилитные, основываясь на собственном манямире?
>Тебе уже объяснили что это не так.
Где? Если ты про этот >>489221 высер, то тебе ответили что это всё тупой пиздёж. Особенно меня улыбнул пук что нельзя больше больше двух строк написать, охуеть у бекенда дискорда значит меньше двух строк.
Олсо, нахуй ты мне вообще что-то объясняешь шизик с дивана блять? Я на этом языке продакшн код пишу четвертый год, сменил 3 конторы. Все фирмы UK/US/Norway/Sweden-based.
Я конечно понимаю что современный зк/ подразумевает атмосферу беспросветной тупости, так как почти полностью состоит из вкатывальщиков и теоретизирующих студентиков с лабами, но это уже какой-то совсем пиздец. Мир не заканчивается на обосанных аутсорсерах и hh.ru (ни разу туда не заходил, кстати).
Если у тебя главная задача - продать свою жопу по-быстрее в ютненький отечественный бадишоп, действительно, лучше начать с жееса или джявы там, но ты, наверное, сейчас охуеешь, но люди не только по таким критериям языки выбирают.
По вакансиям, мне каждую неделю минимум одна прилетает. Прямо сейчас есть открытые вакансии в Валенсию, в Торонто, в Берлин, в Таллин, во многих из них даже эликсир можно не знать, достаточно иметь хороший опыт в руби, понимать на базовом уровне ФП и быть открытым для обучения.
> goakka
Клоакка, блять.
Алсо, кто-нибудь уже писал с использованием Phoenix LiveView? Насколько всё круто?
Потому что языки вызывают интерес, но работы по ним нет или мало, и вкатиться в них типичному похапэшнику непросто. одна из причин
Для того же, что и элик concurrent, fault-tolerance, high load, только синтаксис более ебанутый. Собственно элик и был создан для того, чтобы для виртуальной машине эрланга было проще писать.
Какой смысол просто так бампать. Давайте уж проведем перекличq: кто писал/пишет в реальных проектах на erlang/elixir? Пока что помимо себя видел только одного анона итт.
это типа замена жс на фронте(частично)?
Из рашкинских средне-крупных контор на элике пишут только funbox вроде. И то не факт, что они этому рады, судя по вечно открытым вакансиям.
Судя по вакансиям, у них там в основном RoR, который они переписывают на Elixir/Phoenix. Вполне обычный юзкейс щас.
В эликсире ебанутые только макросы, остальное 10/10, просто и интуитивно. Еще есть простой как палка clojure, где ты за 10 минут можешь усвоить 90% всего синтаксиса в принципе.
ReasonML/OCaml
>Еще есть простой как палка clojure, где ты за 10 минут можешь усвоить 90% всего синтаксиса в принципе
Как вообще так случилось блэт, что богомерзкий php нехило так апгрейднулся в скорости и фичах, а божественный руби почти на свалке истории.
немного не так,рубен медлено,но верно ускоряется,уже есть JIT в сыром виде.
другое дело рельсы,которые все больше обрастают фичами,больше абстракций,что нивелирует скорость руби
но говорит о том,что они идут в верном направлении,по плану-3x3
Язык выбирается по многим параметрам, синтаксис - один из них. Я не хочу писать на языке, который внешне и внутренее by design представляется мне уродливым.
Говорят же тебе, что это дело привычки, в том числе и твои критерии красоты.
Что-то уровня "я не хочу учить английский, потому что он мне представляется уродливым и ограниченным". Ты блять не знаешь языка, откуда у тебя вообще хоть какое-то представление о его уродливости-не уродливости? Потому что ты посмотрел на 10 строчек кода и они тебе НЕ ПОНРАВИЛИСЬ ВНЕШНЕ, хотя синтаксиса ты не знаешь и следовательно не особо понимаешь, что эти строчки кода делают и какие там есть альтернативы данной записи? Ебать дебил.
эликсирошизик, ты?
тут немного не верная аналогия
А что не так, если я, например, не люблю французский и никогда не буду его учить, потому что считаю его ебанутым по произношению и написанию?
Языки, в том числе и языки программирования, в большинстве случаев учат не просто потому что захотелось, а для конкретной цели.
> а для конкретной цели.
правильней сказать
для цели нужно выбирать наиболее удобный для этого язык.
бложик и на жаве можно сделать
Мешает то, что синтаксиса ты не знаешь, а следовательно твое "я считаю" не значит примерно нихуя, потому что это просто эмоциональная оценка, которую ты не сможешь подкрепить фактами и тебя любой владеющий языком обоссыт и будет прав.
Или я стану ненавидеть его еще больше, потому что мне придется тратить время на то, что я хейчу и считаю уродством.
Не шизик, просто дурачок с категоричностью студента, не желающий узнавать новое.
Ну так переводи, заодно подучишь.
Всем блять.
очередная скрипто-херня?
>И какой смысл использовать эликсир, когда это можно сделать проще, быстрее, а самое главное деше
для нагруженных сетевых приложений?не?
Это какой-то мем? Почему на подобные вопросы всегда отвечают 6 недель?
Ну лан те, порог вхождения в эрланг тоже высокий, посему достойны звания боярского.
На расте с вакансиями тож не особо, но эт пока. А что с эрлангом не так? Давно на рынке, куча кода уже написана, сферы применения устоявшиеся. Или go'вно вас давит?
Давит.
В целом согласен, но все же сейчас наблюдается тенденция популяризации типизации. Даже в JS Тайпскрипт уже де факто стандарт, а прикрутку типов сбоку завезли даже в Питон и Руби, хотя строгая типизация там только мешает.
Замена плюсам без сегфолтов.
Куда уж понятнее.
+ php, который так же движется в сторону статики.
Хз, что там завезли в руби с питоном, но подозреваю, что "типы" там уровня типов в эликсире - опциональная фича для того, чтобы статический анализатор кода был чуть-чуть поумнее в определенных местах. Тайпскрипт это на 100% временный форс фейсбука, который используется в основном смузехлебами на хайпе, писать на нем - это огромная боль даже по сравнению с чистым жсом. Не думаю, что он уедет куда-то далеко.
Эрланг не является языком общего назначения. Это нишевый язык, предназначен для надежного и быстрого перекладывания байтиков из одной сотни тысяч сокетов в другую (телеком, онлайн игры, динамические опердени, вся хайлоад хуйня). Для этого стандартной библиотеки и динамической типизации более чем достаточно.
А вы, блять, туду листы зачем-то на нем пишите.
>Тайпскрипт это на 100% временный форс фейсбука, который используется в основном смузехлебами на хайпе, писать на нем - это огромная боль даже по сравнению с чистым жсом.
хз, я недавно начал в пед проекте использовать, не знаю как с классами, классов у меня нет, только хуки, там удобно все, вс код теперь в разы больше подсказок показывает а обозначить типы аргументов не сложно, да и при желании можно оставить их эни
Это дрысня как раз взлетела из-за интернетов нанчало нулевых. Плюсов нет, кроме как быстро намакакить полурабочее
Вот же тупые макакеры, написали весь интернет на динамике, и даже не подумали, что в ней нет плюсов. Хорошо, что ты наконец вкатился в ИТ и теперь можешь их поставить на место своим авторитетным мнением.
Ну ты же понимаешь, что нет универсального ответа? Может ты даун, которому и года не хватит, а может наоборот уникум и за три дня всё схватишь.
Этот шарит. В целом всё так, но с другой стороны, если у тебя уже набита рука, то на elixir + phoenix + ecto можно быстро написать что угодно, хоть todo list. Само собой, если твоя сфера деятельности ограничивается написанием простых крудов на php и тебя всё устраивает - перекатываться тебе незачем. Если ты столкнулся с проблемами, когда на твоем php сложно что-то запараллелить, сделать отказоустойчивым, распределенным, etc - welcome to the club!
Алсо в phoenix из коробки охуенная работа с вебсокетами - просто берешь и делаешь без жопной боли и триллиона сторонних зависимостей с костылями.
>написали весь интернет на динамике
Да, вордпресс рулит!
>что в ней нет плюсов
>быстро намакакить
Это и был плюс, который перевешивал все недостатки
В те времена нужно было долго компилировать на петниумах
Сейчас с тулзой всё гораздо лучше, как и производительностью компов. Так что ещё вопрос, кто ещё быстрее из нас напишет
>Тайпскрипт это на 100% временный форс фейсбука, который используется в основном смузехлебами на хайп
майкрософта,маня
Ну это понятно, но все равно интересен прежде всего личный опыт переката из ООП-параши в функциональщину.
Перекатывался внезапно (нет) с руби. Лично для меня это было легко, потому что в руби/рельсах есть дохуя мест, где хуй разберешься, что вообще происходит из-за того, что там практически везде ебаная магия и типичные приложения состоят из 1005000 сторонних зависимостей. В elixir всё максимально логично - у тебя есть модули, в модулях есть функции и функции, сука, просто берут входящие данные, обрабатывают их без всякой магии и прочего садизма, и возвращают результат - всё ведет себя так, как должно вести на первый взгляд.
Единственное, немого сложным может показаться то, что касается OTP, но и это хуйня - на самом деле всё очень просто и логично работает, а сложности могут быть только из-за того, что ты с таким раньше не сталкивался в других ЯП/технологиях.
Эрланг может и является, но эликсир на пениксе - это вполне себе современный и удобный веб-фреймворк, где можно быстро накатать что угодно.
Если ты типичный промытый дурачок, который считает, что ООП - это плохо, а ФП - это хорошо и илитно, то наверное не стоит, так и останешься дурачком. В эликсире элементов ООП просто дохуя, а агенты-генсервера - это самые что ни на есть стейтфул классы. И это как раз охуенно, потому что ООП - это очень мощный инструмент и ФП оно никак не противоречит.
для своей узкой специализации, очевидно
можно побаловаться
Протокол - это полиморфизм(вызывается разная функция в зависимости от типа переменной), а behaviour - это интерфейс(определенный набор функций, который модуль обязуется предоставить). Скорее вопрос, что там одинакового.
По большей части - да, можно и так сказать, но есть и свои фичи.
Ну а так, конечно, лучший язык.
В чувствительных местах гарды + приведение типа к нужному, понятно, что это лишние телодвижения по сравнению со статической типизацией, но большинство проблем решить можно, да и не так это и геморно тащемта.
Используй тайпспеки + диалайзер + статически типизированные протоколы.
1) Не слать сообщения процессу через ! или даже через erlang:send(). Из-за этого потом совершенно невозможно понять, кто вообще может слать сообщения процессу, код которого ты сейчас читаешь. Процессы всегда делать ген_серверами и оборачивать посылку сообщений им через соответствующий интерфейсный метод модуля. Если не следовать этому правилу, то код превращается в асинхронную лапшу, где совершенно не возможно понять, кто с кем общается.
2) Не пользоваться туплами, пользоваться структурами. С туплами, особенно если люди не потрудились прописать спеки, бывает сложно понять, где там что лежит.
3) Не использовать процессы там, где это не нужно. Программируя на эрланге (и на го, кстати, тоже, но там еще хуже) тоже можно скатиться в асинхронный ад. Десятки процессов, все асинхронно, держать в голове - невозможно.
4) "Выпрямлять" взаимодействие процессов. Параллельное выполнение - всегда сложно и если много процессов запутанно общаются между собой, то получается асинхронная лапша, гораздо страшнее goto. Это правило похоже на классическое требование к небольшому числу связей у модуля с внешним миром. Если эти связи еще и параллельные, то это очень плохо. Лучший вариант, это когда диаграмма параллельного взаимодействия процессов направленна в одну сторону - это не всегда возможно, но к этому стоит стремиться.
5) Всегда прописывать типы, спеки, настроить автоматический прогон диалайзера на всех приложениях.
никакие,потому что кроме тебя тут эрлангистов нет
>рефакторить и расширять большие куски кода
Ну так рефактори и расширяй не большими кусками кода, а маленькими шажками, чтобы на каждом шаге все тесты работали, а не висели красными по 15 минут.
1) Согласен.
2) Внутри функций/в приватных функциях вполне себе можно юзать без задней мысли, очень удобно зачастую.
3) Согласен.
4) С такими проблемами не сталкивался.
5) Согласен, но диалайзер у меня на работах как-то не приживался никогда.
Добавлю еще: не переусердствовать с нифами. Любой ниф, как мы помним, блокирует весь тред виртуальной машины. Порой эффект от этого гораздо хуже, чем польза от ускорения кода нифом. У меня был случай, когда переписали один кусок на нифы и в итоге получили падения всей вм по памяти. Шедулер блокировался, росли очереди, не успевали разгребаться, шедулер снова блокировался и т.д. В документации разработчики Erlang советуют, чтобы время выполнения нифа было примерно 1 млсек. У нас это требование сохранялось в среднем, но пики доходили до сотни млсек. Как оказалось, распределение пиков порой получалось довольно плотным и клало вм.
Кстати, как выше писали, эрланг - не совсем язык общего назначения. Как у вас устроена интеграция с написанными на других языках частями? Общение по сети? Jinterface? C node?
Ща осваиваю бальзам + феникс фреймворк. На фоне Node.js просто небо и земля. Насколько все удобно, для людей как говориться. Одного не понимаю, почему бальзам так непопулярен. Я его для своих целей учу, так что пох. Но как по мне работать на нем очень удобно.
бальзам == эликсир
хватит семенить
> На фоне Node.js просто небо и земля.
Что небо, что земля? Ты по-человечески можешь расписать хотя бы в пару предложений достоинства и недостатки озвученных технологий в сравнении друг с другом?
Неужели, блядь, это так тяжело сделать сразу, когда свои мысли в форму изливаешь, вместо пердежа в лужу?
Про ноду достаточно знать, что там одно необработанное исключение в заднице какого-нибудь http-хэндлера кладет весь сервер к хуям.
300$ на счёт, и готов провести тебе небольшой ликбез.
А бесплатно тупое говно на анонимном форуме учить - занятие бесполезное и неинтересное.
почему,тут неплохие кодкры сидят,отвечают на вопросы быстрее и понятнее иногда,чем на стэковерфлоу
>пацаны у меня лаба
>пошел нахуй
>ребята моя тян хочет устроится хрюшей подскажите
>пошел нахуй
>с чего начать изучать Х
>нутыпонл
ну да,но к адекватным вопросам вполне норм относятся.в пхп треде даже ОП треда помогает
>300$ на счёт, и готов провести тебе небольшой ликбез.
Готов бесплатно провести тебе шершавым по губам, беспруфный ты петушок. Грош цена твоим словам.
Erlang and OTP in action - пожалуй, лучшая книга. Если кажется сложной, то Learn you some Erlang for great good, там максимально разжевано, а по охвату информации почти не уступает первой.
Для хардкода - the beam book - описание работы вм от разработчиков, увы, далеко не полное, но альтернатива только одна - читать исходники.
Есть хорошая статья про работу с памятью в эрланге https://blog.heroku.com/logplex-down-the-rabbit-hole
название оставьте
В Node.js нет нормального фреймворка вообще. Ну то есть как. Есть конечно Nest, который говно по перфомансу. И еще Loopback, который тоже недалеко ушел от него.
Все остальное Koa2, Express, Fastify по-сути не фреймворки, а просто либы в дополнение к которым надо собирать все остальное. То есть по сути каждый новый проект, это проект из говна и палок, только разных. Особенно учитывая качество многих нпм либ.
Например, нормальные орм для ноды - их нет. Ну то есть как нет. Есть sequelize который не работает без их кли, а их кли в свою очередь хуево дружит с тс. И так постоянно. Тебе надо что-то одно, а по итогу ты сидишь и весь день ебешься то с одним, то с другим.
А ведь еще надо писать авторизацию, логгирование, гарды, контроллеры и еще много много всего руками. Что в Фениксе есть почти сразу.
Нахуй ты цитируешь фразу на русском, говоря про мой родный язык, даун?
Сейчас, вот прохожу этот туториал - https://medium.com/@benhansen/lets-build-a-slack-clone-with-elixir-phoenix-and-react-part-2-backend-authentication-d0a40b474899
Туториал устаревший немного. Такой вопрос, то что автор делает тут с гардом (конфиг, сериалайзер) , это уже устарело?
Потому что мне например кидает что warning: @behaviour Guardian.Serializer does not exist
Ну и кучу других ворнингов
Походу много что поменялось с 2016:
https://github.com/ueberauth/guardian/blob/3aa953367ff4653ed47895074bf6b66223a44810/guides/upgrading/v1.0.md
>In 0.14.x you defined a serializer. The two functions from_token, and for_token have been renamed and moved. In 0.14.x you'd create a serializer with these two functions.
>The new functions are subject_for_token and resource_from_claims. These functions are more clearly named and receive more complete arguments.
Я бы тебе, раз ты только вкатываешься, посоветовал не либу юзать, а свою регистрацию/авторизацию запилить, тащемта это максимально легко делается.
У фениксу, наверное, был бы ближе Sails (он, вроде, ещё живой) и Loopback, ну про него уже ты сказал.
Для всего должен быть свой инструмент, как по мне. И вообще зачастую фронтом и бэком занимаются совершенно разные специалисты (считаю, что это правильно) и им должно быть похуй на каком языке пишут вторую часть.
вакансии фул-стек никто не отменял.это же удобно,когда разворачиваешь свой проэкт.
Если замахнулся работать на фуллстеке, то будь добр выучить нормальный язык для серверной части.
Свои проекты, конечно, можно хоть на прологе писать. Но я бы подумал сто раз перед тем как идти работать в компанию, которая пишет на node.js что-то, даже если моя позиция требовала бы erlang/elixir - это же придется как-то взаимодействовать с неадекватами каждый день почти. Однажды там на тебя чихнет какой-нибудь конч, ты ночью с температурой в лихорадке полежишь, а потом хуяк и начнешь ходить на работу со специальным жеским диском на 1ТБ для папки node_modules.
на жс много работы
А если сравнивать со священной гошечкой?
Как скорость, удобство разработки? Как элик перформит по сравнению с сусликом?
В эрланге от функциональщины взяты только иммутабельность переменных, TCO, гарантия отсутствия побочек в гвардах, паттерн матчинг. Фреймворк OTP - по сути ООП Алана Кея.
Максимум чего ты добьешься, выбрав Эрланг вместо своей ООП параши - перекатишься из одного типа ООП в другой. А потом будешь бузотерить на формуах, что Эрланг не торт, так как чтобы сделать бложик надо либо дохуя низкоуровнего кода написать, бинари, там, матчить вот это все либо дрочить/допиливать полудохлые Chicago Boss, N2O и прочие фреймворки. Для чего нужен Эрланг я писал выше >>493640 . Если нужен высоконагруженный телеком - то вэлкам, если хочешь просто перекатиться в ФП - становись борщехлёбом.
А какой смысл сейчас выбирать эрланг, а не эликсир? Имхо, если начинать новые проекты, то уже сразу на эликсире, эрланг сейчас нужен только при поддержке легаси всякого.
Да-да, спасибо. Как раз вчера на это и поменял. Мне главное понимать что я правильно причесываю код)
Можешь расписать на пальцах что для этого надо? Или ссылку скинуть, я сам разберусь?
Не знаю про go вообще ничего.
Где-то видел бенч на хабре, где эликсир и го были примерно на одном уровне.
Вот, например https://medium.com/innoventes/user-authentication-phoenix-1-4-ebda68016740
Если коротко - при аутентификации записываешь в conn текущего пользователя и создаешь сессию, затем делаешь plug который срабатывает при вызове каждого роута и проверяет наличие сессии
Бляяя.
Ты же деревенский. Какой тебе еще эрланг, лол.
Учить олимпиадные задачи на сайте leetcode и потом отправлять заявку сюда https://www.facebook.com/careers/jobs
И будет тебе работа на эрланге с топовой зарплатой в пересчете на рубли 1.5 миллиона в месяц.
Нет смысла перекатываться в почти мертвую экосистему. Я бы строил карьеру в текущем стеке, там тоже хорошо платят.
Я и так уже её строю и готовлюсь к перекату на 2к$ мидлом .NET, очевидно, но не хочу жизнь 9 to 5 за бабло отдать, ибо понимаю, что в итоге ну будет там 5к$ в месяц к 30-35 годам, а дальше что, ради чего жизнь прожита? Вот смотрю, на наших сеньйоров 30+, понимаю, что вот да, у людей есть бабло, опыт и скиллы, но они слизняки, который пресмыкаются перед начальниками, и импотенты, который, кроме корпоротивной дряни ничего в жизни не сделали.
Врёте, очевидный 300кпрограммист, которому баттхертит от Эрланго зарплат. Всё там есть, если между строк читать.
>но они слизняки, который пресмыкаются перед начальниками, и импотенты, который, кроме корпоротивной дряни ничего в жизни не сделали
А эрланг поможет как-то этого всего избежать?
А то! Можно будет поддерживать такие штуки как ejabberd, чтобы он никогда не потонул в уязвимостях.
Тоже с этого проорал. Гениальный пост о том, как энларж помогает избежать импотенции к 30 годам.
Не понял о чём троллинг, на erlang работает WhatsApp: https://advance.careers/jobs/ca6292e167b82723/software-engineer-whatsapp-erlang-team-at-facebook
блядь, а как учить матешу для проганья, чтобы доказывать алгоритмы?
Везде абстрактная хуета для школьников, которые дрочат на егэ, а где рисерч материал для серьезных дядек, которые хотят играться в песочнице на корпоративные барыши?
Применение эрланга - это писать небольшие серверные прокладки в хай-лоад системы с кучей пользователей. Вот эликсир - это вменяемый язык общего назначения, но пока там инфраструктура заточена под те же сервера/веб. Писать можешь что угодно и легко скейлиться в хайлоад, если приспичит.
Обычно такие сервисы, которые не хранят ничего важного в базах данных и которым хватает in-memory баз.
Микросервисы, веб сокеты, лоад балансер, базы данных в памяти, логи и метрики. А вот нейросети и машинное обучение это нет, они чаще на питоне. Обработка видео на с++ делается. Веб морды тоже на отдельных языках.
Поэтому сработает только если проект изначально архитектурировали под микросервисы на разных языках.
> нейросети
Они чаще на питоне, согласен, там есть определенная эко-система. Ну а как на счет того, что процессы эрланговские маппятся 1:1 к нейронам в мозге, соответсвенно, архитектурно-теоретически говоря, не легче ли клепать НН на Эрланге?
> маппятся 1:1 к нейронам в мозге,
От копирования один в один процессов мозга для сетей уже давно отказались.
Ты ведь не хочешь сказать, что в нейросетях отказались от модуляции нейронов?
Нет, с чего ты взял.
Ну какие-то либы нужно будет подтянуть, а так да. Тащемта и феникс не такой уж большой фреймворк как те же рельсы. Можно создать приложение без html, webpack, ecto и прочих зависимостей.
>ну и какой у него потолок работы
Да такой же как и для всей остальной эликсирщины - распределенный хайлоад ¯\_(ツ)_/¯
В фениксе начиная с версии 1.3 или 1.4 четко разделили бизнес-логику и web интерфейс к этой логике. Бизнес-логика - обычное приложение на elixir, а феникс, считай, просто предоставляет интферфейс к ней ну и доп. плюшки типа channels.
Нода - хуйня для сумасшедших, про aiohttp впервые слышу, но что бы это ни было - главная плюшка это Erlang OTP и все из нее вытекающие. Почитай хотя бы для начала что к чему: https://ru.wikipedia.org/wiki/Open_Telecom_Platform
Не припоминаю, чтобы когда-то сталкивался с отсутствием каких-то либ.
Скорее уж нужно приводить аргумент в пользу ноды, потому что ни один человек в здравом уме не будет писать сервера на кривом огрызке для браузеров(жаваскрипте), если у него есть выбор из десятков других языков. Но джаваскрипт мало того, что сам по себе кривой, так у него еще и 90% опенсорс библиотек это просто огромная куча неюзабельного говнокода, где даже публичный API состоит из ебаного ужаса, не говоря про внутренности, в итоге очень часто приходится писать самую базовую хуйню самому.
А какой выбор-то? Половина из этого выбора такая же или ещё хуже, а другая половина требует трудозатрат и знаний ощутимо побольше, да и у этой второй половины задачи другие. Из первой половины параша типа питона, руби, пхп, вместо этого я бы с радостью выбрал ноду.
Я уже писал выше, что изначально даже сама мысль писать бэкенд на js кажется сумасшедшей. Не понимаю, что происходит в голове у тех, кто собирается это юзать не под дулом пистолета.
Наркоман? У любого более-менее мейнстримного языка будут в сто раз более удобные стандартные и сторонние библиотеки, чем у жаваскрипта. Особенно те, которые работают эксклюзивно на сервере и с браузерным миром не соприкасаются.
>>499206
Тот самый знаменитый однопоточный асинк, где любой пук надо оборачивать в промис?
Нода - это когда ставишь написанный два года назад проект и 90% пакетов уже deprecated.
Знаний о netty у меня нету ахаха))0
Чего в ней сумасшедшего? Может быть у тебя представления о js такие, каким язык был лет 10 назад? Ну и бекенд на ноде на ts нередко пишут.
>>499223
Что там удобнее в питоне, руби, пхп? С джавой, шарпом и прочими мощными языками я не сравниваю.
Да, однополосный асинк. Лучше, чем если бы его не было. Если тебе надо тру асинк, ты изначально не берешь ноду. Но тебе реально достаточно редко нужен тру асинк.
Если ты на полном серьезе спрашиваешь, чем питон с руби удобнее жопаскрипта, то скорее всего ты жопаскриптер, не писавший серьезно ни на руби, ни на питоне.
Да, на руби и питоне не писал. Но жопаскрипт это одна из моих специализаций, я много на чём писать могу так-то. Времена такие, что за жс на беке платят жирно.
Эликсир, го.
я про вас,а не про Яна
Сам елик и ерланг - для проф. Я как неопытный полез это осваивать без базы (в плане бекенда на более популярных)
В итоге соснул. Элик еще молодой, если будут вопросы - ответ так и не сможешь найти.
Я бы занялся им через 5 лет. Как раз станет более широким.
Значит спросил у знающих инженеров, почему Эрланг не используется в нейросетях.
Основная причина в том, что нейроны делают много вычислений, а Эрланг с числами работает медленно. Питон тоже медленный, но для него уже написали множество библиотек на С с обертками для Питона, поэтому используют его. Для Эрланга таких оберток не написали.
Ну и еще те люди, которые первыми разрабатывали нейронные сети, продвигали С и Питон, поэтому и дальнейшие ученые используют эти языки.
Алсо, примерно то же, что я и написал есть в ответах на реддите: https://www.reddit.com/r/elixir/comments/66lrz1/neural_networks_on_elixirerlang_its_worth_it/
Зато ерланг отлично годиться для моделирования реальных биологических нейронов https://www.amazon.com/Handbook-Neuroevolution-Through-Erlang-Gene/dp/1461444624
И вообще динамических систем с постоянно меняющимися данными и условиями.
будет там,где руби
Вообще не нишевый, обычный бекенд язык для написания API-сервисов.
Проиграл. Это уже слишком толсто.
Каким образом на продедурной '80s style параше без ничего (гоувно) удобно решать те же задачи, что на сверхвысокоуровневом ФП-языке с охуенным UX-ом?
Для тебе это новость, что на го пишут хайлоады?
Современная единица абстракции в искуственных нейросетях - слой. Ты, кончено, можешь по одному нейрону выходное значение и градиент вычислять, но тогда ты тридцать лет одну свёртку считать будешь. Алсо, нейрон в контексте нейронок - просто обычная функция. Все претензии про то, что они как-то имитируют мозг, остались в прошлом.
>Эликсир
>ux
Блядь я хуею с эликсирщиков и рубистов
Более отвратительного синтаксиса среди мейнстрим языков ещё поискать надо
Хотя сам по себе язык и неплох да
мимошел
И чем именно синтаксис эликсира отличается от любого мейнстримного языка, интересно узнать? Тем, что там do end вместо скобок?
Шизик твоя мамка, долбоеб.
Скобки это скобки. Не буквы. Едва взглянув на язык со скобками ты уже визуально различаешь начало и конец всех логических блоков кода. И это пиздец как удобно и экономит внимание.
А когда у тебя везде ебучие дуэнды, то нужно уже потратить некоторое число миллисекунд чтобы вникнуть где текст программы а где разграничитель
Действительно, ведь люди еще не придумали такие редакторы кода, чтобы они подсвечивали do end и визуально отделяли эти блоки от остального текста. И индентацию тоже не придумали для выделения блоков. И конечно все смотрят на скобки в первую очередь, а не на количество пробелов. таблетки пей
Хай лоад
делать-конец - это все равно визуальный мусор, а с точки зрения реализации в элике - это еще и костыли.
Солидарен. Язык хорош, но делать эти делатели-концы - безумие. Почему нельзя просто как у людей?
Ни в прологе, ни в ерланге, ни в хаскеле, ни в эмэлях, ни в лиспах не было говеных квадратных скобок, так что хз про каких ты там людей. Ну а подстраиваться под синдром утёнка залетных си/джава говноедов - последнее дело. Тут ещё виной, что студентоте в вузах срут в голову говняшной, вместо той же модулы, и потом у недалёких откладывается в голове, что то, чему на парах Духаст Вечамлавыч учил, - это привычно и правильно, а все остальное - непривычно и неправильно.
То есть фигурных, для блоков, ну ты понял.
Это и есть синдром утенка. Аргумент там был уровня "скобки можно различать, а do end нельзя", хотя во-первых блоки кода в первую очередь выделяются индентацией, а во-вторых, наоборот, мешанину уровня }}) различить сложнее. Да и в эликсире do-end блоки - это просто сахар, никто тебе не мешает быть долбоебом и писать как на пике.
>Выделяются индентацией
А в языках со скобками - И индентацией И символами, чуешь где удобство, маня? И дохуя у тебя индентации в однострочных лямбдах, например?
>мешанину
Ну да, end;end;end; ведь меньшая мешанина чем }}}
Жир протри, пиздоглаз
Не было ни одного аргумента, кроме яскозал что do end - мусор, а скобки - сразу все понятно. Фигрурные скобки - это мусор. Особый пиздец, это когда в языке есть фигурные скобки и для блоков и не для блоков, а для других конструкций. Но говноеду вроде тебя это норм, судя по всему.
Фас!
несколько end'ов на одной строчке не пишутся никогда, а вот со скобками так любят делать.
>И индентацией И символами, чуешь где удобство, маня?
do-end это не символы? Или твоя тупая голова перестает работать, если вместо скобки видит кейворд?
>И дохуя у тебя индентации в однострочных лямбдах
Которые так же существуют и в эликсире, интересно, как они смогли.
>Одного не понимаю, почему бальзам так непопулярен.
Потому что функциональщина с иммутабельностью никому не всралась. Для типичного студента-выпускника с бэком в виде ООП на Си/Джаве/Сисярпе вкатываться в эликсир будет не так-то просто, добавим сюда отсутствие вакансий и получится, что данный язык может заинтересовать только всяких шизиков либо тех, кто с течением лет устал от императивщины и захотел новых ощущений.
/thread
Но сам процесс вкатывания идет тяжело, надо признаться - дико бесит иммутабельность, и даже простой по логике код превращается в какие-то извращения и костыли.
Ну вообще-то вопрос редактора вполне актуальный, так как ничего нормального нет, дебаг у меня ни в vscode, ни в идее так и не заработал.
Например? С пайп оператором код с операциями над иммутабельными структурами не особенно отличается от процедурного, не знаю, что там может бесить.
Я пишу на erlang с 2011 года. Не так давно уехал на ПМЖ в Швецию.
Писать код на erlang/elixir можно, за это платят. Просто помимо умения писать код на каком-то конкретном языке нужно ещё и голову на плечах иметь, а это не лечится книжкой "<Language> in action".
>>494910
s/структурами/рекордами/, но в целом да, хорошие правила.
Я бы ещё добавил начал писать что бы я добавил, и получилось слишком много всего.
>>498262
Бред. В проде всем похую на чем у тебя софт написан, на erlang или elixir, байткод один на всех и все на одного. Эликсир был придуман для школоты чтобы им было проще и побольше сахарку.
>Ну и опять же, добавить типизацию = проебать интроспекцию и изменение кода в запущенной программе
так то в явке и шарпе есть динамическая загрузка-выгрузка классов, те конечно же нельзя там целиком все изменять, но часть кода и функциональности таки можно оформить в виде плагинов динамически загружаемых
вот в крестах с этим проблема, это да
в крестах по сути нет стандартизированного способа сделать динамическую загрузку-выгрузку кода, для этого приходится пользоваться сишными соглашениями, максимум что из этого можно выжать это сделать компонентную модель на интерфейсах (типа com или gtk)
потом еще модель обобщенного программирования на крестах основана на шаблонах, а генерики в явке и шарпе по другому сделаны
это так же мешает крестам в интроспекции, но интроспекция в шарпе и крестах все же есть..
получается, что конечно динамически типизированный язык может дать полную свободу в изменении и исследовании запущеного уже кода, но и статистически типизированные языки это все же могут, пусть и с некоторыми ограничениями
>Бред. В проде всем похую на чем у тебя софт написан, на erlang или elixir, байткод один на всех и все на одного.
Код пишется для других программистов в первую очередь, а не для байткода. На эрланге любой проект сложнее прокладки быстро превращается в ебаный неподдерживаемый пиздец.
Я же говорю, голова нужна.
Если писать как долбоеб, у тебя беспросветный пиздец получится на любом языке.
Ты, наверное, про application. Нет, хотя это тоже можно и нужно.
Достаточно в src/ запилить поддиректорию и положить модули туда. Пример: https://github.com/epgsql/epgsql/tree/devel/src
Наоборот многие вещи проще делать, например на Эрланге легко транзакции делать, чтобы 2 одновременные записи в бд с разных серверов выполнились последовательно. В других языках для этого понадобится лочить всю базу, а тут можно распределить запросы по хэшу среди 1000 сервисов и каждый сервис выполняет последовательно свой ключ.
>>509867
В Эрланге почти все приложения на микросервисах. А название говорит само за себя, что много директорий там не положено.
>В Эрланге почти все приложения на микросервисах.
Ну и как расходится с утверждением про прокладки? Микросервисы - это не вселенское благо, а конкретный инструмент под конкретные цели, некоторым(большинству) проектов они нахуй не всрались.
>В других языках для этого понадобится лочить всю базу, а тут можно распределить запросы по хэшу среди 1000 сервисов и каждый сервис выполняет последовательно свой ключ.
Ничего себе, шардирование микросервисов, нигде больше сделать нельзя!
Спотифай не пишет на Эрланге. Судя по датам, этот чел работаешь в Erlang Solutions - аутсорс-бодишоп, который пилит заказчикам системы на Erlang.
Я тут подумал а ведь содержать собственного эрланг разработчика крайне больно для большинства компаний. Срок закрытия вакансии увеличится в разы, bus factor будет равен единице и замену крайне трудно найти, его код не смогут редактировать другие погромисты. Просто кошмар с точки зрения менеджмента мелко и среднефирмы.
Язык на самом деле очень простой. Одна компания, которая пилила свои сервисы исключительно на Эрланге подтвердила, что программисты с других языков вкатывались примерно за несколько недель, максимум месяц и начинали коммитить в продакшен.
Была такая контора - Echo (aboutecho.com), где рулил Лев Валкин. Можешь поискать его презентации на ютубе и еще почитать блог Никиты Прокопова. Он в свое время работал в этой конторе и писал про Erlang.
Меня всегда напрягали конторы, где не указыввли конкретный язык или писали что-то вроде "опыт в Х или желание его изучить", это выглядит как существенный дроп зп и перевод в ждуны если ты его не знаешь. Тем более в такой нишевый язык.
Ну, по началу так оно и есть. Конторе тоже стремно нанимать чувака, который не рубит в основном языке на котором пишется софт в фирме.
Вот опять проблема, что бы найти человека нужно что бы он сам хотел изучить эрланг и был согласен на дроп зп и компании на него необходимо потратить время и ресурсы пока он начнет выдавать хороший код (если вообще начнет).
Те же рубисты переходят на эликсир, т.к. руби уже не тащит современный веб с тысячами запросов в секунду, лол. И ничего, никто не жалуется. Ты пойми, что на эрланге не пишут типичный энтепрайз или вебню. У языка есть очень узкая ниша. Если тебе веб-бекенд клепать, который будет по хттп отвечать, то лучше возьми эликсир, если ты так хочешь гонять свое поделие на BEAM.
>Те же рубисты переходят на эликсир, т.к. руби уже не тащит современный веб с тысячами запросов в секунду
С руби уходят потому что он умер нахуй т.к. хайп прошел, а не потому что все стали хайлоад писать. А в элике еще и синтаксис похож.
Проблема только у тех, кто не хочет платить. Вот Фейсбук делает наоборот: сначала предлагает большую зарплату, а люди сами готовы учить пых и эрланг после того как получат оффер. Более того, богатым компаниям все равно на чем раньше кто-то писал, стоимость рекрутинга и выбора 1 человека из 100 настолько высока, что не имеет значения что кто-то начнет писать код на 2 недели раньше.
Для СНГ почти не актуально скорее всего.
>Фейсбук
Чет вспомнил как они написали чатик на Эрланге для своего фейсбука, а потом в ужасе переписали на плюсы, т.к. эрланг знало пару человек и они не хотели обосраться с бус фактором.
Дискордовцы везде хвастаются своим эликсировским бэкэндом. Как-то же находят на него людей.
Твой эрланг с эликсиром нахуй никому не нужен. Лучше джаву выучить или питон и веслать на галере за штуку баксов, пока из-за возраста не погонят.
Нет, я другой анон.
После пары лет ерланга я года 4 назад перекатился в эликсир.
Работа всегда была и есть, 1-2 новых вакансии в неделю стабильно прилетает.
Так-то я тут уже писал об этом, тред почитай.
То что это хуевый выбор языка для новичка в плане дальнейшего трудоустройства - это и так очевидно. Хотя в 2 из множества контор, где я работал интернами на эликсир брали студентов вообще без опыта
Но когда у тебя уже есть опыт, язык выбирается исходя из личных предпочтений, а не из того, сколько там вакансий и прочей плебейской хуиты.
С разметкой обосрался.
Кому всралось пердолиться с динамикопарашей для которой ни IDE ни библиотек с тулзами не завезли, когда есть божественная Scala и Akka?
1. Потому что Scala это:
а) сотрудничество с вчерашними джавамартыханами из лохусофта
б) работа с уебищными джява-быдлиотеками, написанными этими мартыханами
в) работа на сцаной JVM, которая сделана для чего угодно, но не для скейлинга/отказоустойчивой работы/удобного дебага
г) многословный и перегруженный язык
д) на котором каждый дрочит как хочет
е) sbt- это говно
дополнительный пункт: Akka - это урезанная версия того, что в Erlang/Elixir есть by design (особой жопаболи статикодебилам добавляет то, что она динамически типизированная, а ее статически типизированная версия ещё более ограничения).
2. В Elixir существующие либы/фреймворки покрывают 90% того, что нужно для написания бекендов.
3. Elixir/Erlang имеет плагины в Atom/Code/Vim/Emacs/Idea.
4. Нет никаких проблем с динамической типизацией. Уровень кодовой базы поддерживается за счёт форматера/линтера/тайспеков/статического анализатора/стайлгайда/код ревью/бихейвер-тестов/эволюционного рефакторинга, а ебаная статическая типизация только замедляет разработку, делает язык многословнее, а так же
а) усложняет метапрограммирование
б) ограничивает message-passing модели
в) стимулирует программистов применять top-down подход, что зачастую приводит к overgeneralization, что является нерациональным, а agile-эпоху вообще бессмысленным дрочевом.
>статически типизированная версия ещё более ограничения
С разморозкой, дедуля. Akka Typed уже давно продакшен рейди и уже заменила безтиповые акторы.
Про остальное даже не читал. 90% у него библиотеки покрывают лол. То-то Валкин свой логгер писал к эрлангу.
Про свою инткроспекцию можешь даже не заикаться. Удаленный дебаг и профайлинг в джаве уже лет 20 как реализован. А твой ссаный удаленный репл до эрланг кластера нахуй никому не сдался с его горячей заменой кода, лол. Только совсем отбитые что-то там на горячую обновляют на продакшене.
Итог - эрланг/эликсир - это такая срань, которая нужно для перекладывания байтов из одного сокета в другой.
По итогу никому нахуй не сдалось нанимать в штат эрлангиста или эликсирщика, когда в Польше можно нанять целый штат этих макак через Эрланг Солушенс за мелкий прайс по аутсорс-модели.
>3. Elixir/Erlang имеет плагины в Atom/Code/Vim/Emacs/Idea.
И все это наколеночная полурабочая параша.
Которая пилится школотунами и прочими энтузиастами-заводчанинами. Это тебе не какой-нибудь Scala плагин для IDEA над которым фулл-тайм пашет целая команда из JB.
Акка тайпед до сих пор отмечен как early access mode, и он имеет больше ограничений, чем обычная Akka, которая, как уже было сказано, лишь урезанная версия того что есть в Erlang/Elixir by design. Статикодебилы готовы выкрутить удобство и гибкость в ноль ради типчиков, ничего нового.
Мы говорил про Elixir, в котором Logger с первых версий, и намного удобнее той параши, что явыиндусы называют логгером.
Больше у тебя в посте ничего, кроме ко-ко-ко НИНУЖНА нет.
Остальную часть моего поста ты проскипал, потому что ты диванный говноед, которому нечего сказать. Чтобы подводить какие-то итоги, нужно хотя бы немного разбираться в теме, про которую ты пишешь.
При этом даже в Стокгольме несколько компаний где есть свой штат эликсирщиков.
Насчёт мелкого прайса, ну мне на прошлой неделе упало предложение из Лондона 450£/день, это насколько мелкий прайс? Чтож они такие тупые, не могут в ES по дешевке заказать рабов, может ты свяжешься с ними, проведёшь разъяснительную беседу?
>Валкин
>писал
Лол, как будто в 2012 вернулся.
Хотя был же error_logger + SASL + log_mf_h давно. Просто нужно было это все собирать под себя. К счастью, вдохновишься Elixir Logger в ерланге все таки появился нормальный логгер, в 2018 году, кек.
Во-первых не Maybe, а Either, а во-вторых, нативных монад в ноде нет, а те Fantasy/Static Land либы, что реализуют поддержку монад и фп стиля, типа Sanctuary и FP-TS, такие вещи под капотом обрабатывают через тот же try/catch (encase, tryCatch2v).
Лол, да кому ты заливаешь, клоун. Твой Elixir используют в веб-параше, для переписывания говна с Ruby. А Erlang нужен, чтобы гонять байты из сокета в сокет. Никто в здравом уме не станет писать энтепрайз системы на таких языках.
>явыиндусы
Проиграл в голосяндру. Сразу видно веб-макакина, который рест сервисы клепает на нишевом языке, лол.
>предложение из Лондона 450£/день
Проиграл в голос с этого сельского болвана, который впервые в жизни увидел рейты контрактеров. Погугли рейты Java или Scala контрактеров ради интереса, лол. Ты в самом деле деревенский что ли?
Скорее всего это в Аэтернити блокчейн, там все звезды Эрланга рабоают: Вирдинг, Вигер и т.д. ЗП у них там до $1.5K в день. Наебуют наркомана директора и тупо проедают эту ЗП на построение супермасштабированного блокчейна (на самом деле нет).
Фейсбук мессенджер теперь возвращается обратно на эрланг https://www.nytimes.com/2019/01/25/technology/facebook-instagram-whatsapp-messenger.html
Просто мессенджер появился в 2011, тогда было сложно с языками. А после покупки ватсаппа поняли, что никаких проблем нет и переводят все на их платформу.
>Удаленный дебаг и профайлинг в джаве уже лет 20 как реализован. А твой ссаный удаленный репл до эрланг кластера нахуй никому не сдался с его горячей заменой кода, лол.
Ну дебажь удаленно, когда на твой сервис присылают сообщения 10 разработчиков других сервисов. Подойдешь к каждому из них, спросишь как работает их сервисы, и делай дебаг от каждого из них, так за месяц управишься.
В то время как можно просто сделать canary на свой сервер и проверить логи. Без лишних разбирательств, как работают чужие сервисы.
>По итогу никому нахуй не сдалось нанимать в штат эрлангиста или эликсирщика, когда в Польше можно нанять целый штат этих макак через Эрланг Солушенс за мелкий прайс по аутсорс-модели.
Личные данные американских пользователей тоже в Польшу отправишь, чтобы там почитали? Ну так первый судебный иск покажет тебе, что на локальных разработчиках экономить не следовало.
>там все звезды Эрланга рабоают: Вирдинг, Вигер
Чет проорал со светочей Эрланга. Такой-то успех устроиться в мутный криптостартап на старости лет и разводить богатенького директора на шекели, лул.
Дмитро, ты чего так бомбанул-то?
Ну да, так и есть. Собирают погроммистов со всей Восточной Европы и устраивают в свой свэтшоп писать эрланг код, лол.
Так поэтому и поддержали необразованого долбоеба Жозе Валима, чтобы тот им хоть что-то более продающееся запилил. Сами шведы (эриксоновцы) и Эрланг Солюшенс это именно что полудохлые старпёры, которые нихуя уже сделать не могут. За 30 лет нихуя же не сделали.
Ну все, пиши маляву в польский ESL, там тебя ждут!
Мы же уже перетерли что в ESL только дети работают, все взрослые дяденьки в другом месте.
Ты мне напоминаешь Валкина, который развалил стартап Эхо и бездарно разбазарил деньги инвестора, которого убедил, что Эрланг - это круто.
А теперь сидит в СФ и не может найти работу, лол.
Айкидо, PHP, Кларна
Он же в MachineZone потом перешел работать сохранив лицо перед наемными сотрудниками, а потом съебался в Apple.
Не можете высрать контент — закрывайте, не надо тужиться!
Тут можно долго перечислять, Bluetail которую Джо Армстронг продал за 150 лямов тут же пиздой накрылась. Basho создатель Riak пошла по пизде. ejabberd с выходом MQTT перестал тащить и доставлять. RabbitMQ глючное тяжелое говно, и этот список можно продолжать до бесконечности. Дохлая базовая либа эрланга на которой построен в том числе и Эликсир не ревайзилась 30 лет. Понятно дело, что каждому кто сюда приходит ничего не понятно. Плохую славу Эрлангу играют люди которые не поняли как рубить бабки на Эрланге. Нам это на руку! Теперь долбоебам продают Феникс, Экто и ЛайвВью, ну вперед, посмотрим где будут все эти Эрланг/Эликсир стартапы с JSON и DTL макаками через 10 лет.
Ты еще забыл упомянуть Сохацкого, который нагло врет, что занимается консалтингом на Эрланге для серьезных компаний.
Ой блядь, тебе до Сохацкого далеко, даже если он будет как Валкин просить милостыню в Калифорнии.
Ты какой-то поехавший. Сначала говоришь, что эрланг и эликсир не нужны, а потом шипишь там из под шконки про стелс стартап, лол.
Узнаю стиль Сохацкого и его стелс-стартап - читай сладкой жить на бабкину пенсию.
По Сохацкому у меня много инфы, его выгнали из NYNJA, список его работ в его блоге, тут без новостей пока.
>выгнали из NYNJA
Да кому это интересно. Ты лучше расскажи как его выгнали из Приватбанка, которому он пытался Эрланг продать, но что-то пошло не по плану, лол.
Ну там как бы он всё правильно говорит. Его опердень до сих пор работает в Привате, в отличие от Corezoid который после национализации Привата выпилили нахуй. Так что тут Сохацкий не пиздит по привату и NYNJA как минимум. С другой стороны к Cloudozer LING (виртуальная машина на которой проходит OTP test suite) он не имеет никакого отношения. Других больших проектов у него не было, по крайней мере в его ЖЖ.
Ну скачай себе книжку Армстронга по Эрлангу и еще можешь глянуть книгу Чезарини по OTP. Еще можешь посмотреть Erlang/OTP in Action. Понят фронт работ, так сказать. Ну и глянь вакансии в том же Linkedin, чтобы примерно понимать, с чем придется иметь дело.
Elixir - это 99% низкопробный веб.
Но как же великая виртуальная машина BEAM, которая позволят запускать миллионы зеленых потоков? Никакой JVM это не снилось!
да хуйня это все, на любом языке можно выебать Эрланг и написать дерево супервижина. Это вообще упражнение.
Тогда бери чистые вебсокеты (cowboy) и пиши клиент на ванила жс. Эта технология гарантировано продержиться еще 10 лет.
Тут еще дело в том, что BEAM не останавливает все потоки, чтобы пособирать мусор, как это делает JVM в большинстве алгоритмах GC.
ну вот решение выбросить ноду и перейти на эрланг оправдано может быть только в очень узких случаях.
>>511896
это тоже все лирика, да в BEAM у тебя локальный GC на зеленый поток и подсчет каждой инструкции, но этим можно похвастаться только в курилке перед пацанами. Для бизнеса или для процесса разработки это не важно.
Наш стелс стартап использует Эрланг не поэтому. Не это киллер фича Эрланга!
типа того, но это скорее удобство мейнтенанса и операторов консоли на хайлоаде, так то емкость у любой хуйни написаной на С++ или Rust будет выше чем у Эрланга и Эликсира, просто стоимость разработки дороже.
>aiohttp
Нет, если выбирать между питоном и эрлангом, то однозначно эрланг. Даже если завалите стартап то хоть с пользой для себя :-)
Чет проиграл с этого. Забил в Линкедин Эрланг - а там все 1к вакансий, да и там эрланг мельком упоминают типа как преимущество, хотя в проекте не используют.
Эрланг используют либо люди которые понимают, что делают, либо люди которые нихуя не понимают и пытаются сесть в хайп трейн.
вот Эликсир это такой хайп трейн, чтобы всю молодежь затащить в эрланг и показать другой мир, отличный от PHP/JS. Пока получается!
> эрланг
зачем мне эрланг или эликстр,если мне надо запилить свой стартап,пэт проэкт для быстрого старта и с кучей инфы?
причина одна: говнокодить на эрланге также быстро как на лиспах, но получается гораздо качественнее и масштабируется отлично.
Синтаксически и философски Эрланг — это негомоиконный лисп с тремя видами скобочек.
Как же я проиграл, когда узнал, что народ до сих пор пытается наладить деплой своего поделия на эликсире в облака. О таких вещах как интеграции с AWS я вообще молчу - ничего не работает, либо какие-то поделки школотунов заброшенные на гитхабе.
Да это дичь, тут как раз в Эликсире все отлично с AWS, либ на эликсире и эрланге валом, все ок. Деплоить нужно mix release.
>в Эликсире все отлично с AWS
Лол, нет. Там одни поделки школотунов, которые не поддерживаются. Некоторые сервисы AWS в принципе не поддерживают Erlang/Elixir, такие как Lambda, например.
Что там настраивать? OTP-релизы есть, дальше docker + terraform + если надо кубернетис, плюс любой клауд-сервис. У меня 85% приложений которые я разрабатывал на Elixir все в клауде, остальное на хероку.
Ты вообще не по адресу доебался, deploy это не про язык, а про devops и там инструментов достаточно чтоб задеплоить в кластере на клауд что угодно, хоть скрипты на брейнфаке.
Бтв, в ерланге инструментов достаточно, чтоб свой кастомный клауд организовать на голом гипервизоре если надо.
А по поводу AWS я не понял предъявы. Либы есть ex_aws, ex_aws_s3/sqs/sts и дальше по списку. Опять же, похуй кем они написаны, там писать нечего, батчинг есть, стримы есть, все по умолчанию готового, при этом удобное конфигурирование и настройка начиная от хттп клиента и парсера, и заканчивая кастомной авторизацией. Если ты про деплой, ничем не отличается от деплоя любого контейнеризированного приложения.
Что такое низкопробный веб? КРУДЫ? Тогда 99% всего веба низкоробны независимо от языка.
ex_aws | master | last commit 24 ago
Последний релиз меньше полу года назад.
Список поддерживаемых сервисов:
https://github.com/ex-aws?q=service
То что язык и инфраструктура community-driven для нормальных языков это только плюс. Конечно в случае джявы, где комьюнити состоит из тупой индусни, принято гордиться, что либа написана не независимыми разработчиками, а копрорацией такими же индусами, судя по количеству issues и багфиксов каждый день
просто обсер за обсером, но макакену норм
анальная контузия это не шутки хех
>приложений которые я разрабатывал на Elixir
Расскажи, что ты разрабатывал на Elixir и какая ниша у него и Erlang с его могучим OTP?
Спешите видеть, джавадебич из лохусофта, пишущий на коболе нашего времени, гордиться тем как он разгребает легаси-конюшни в очередной тырпрайз-параше.
зато платят
Обычные GQL/REST бекенды для мобильных приложений, healthcare API-сервисы, сервера для мультиплеер игр, микросервисы для gambling-компаний и обычные GQL/JSON-API сервисы для веб приложений. Ничего особенного.
Стоит ли изучать Erlang перед Elixir и нужна ли OTP библиотека? Сложно вкатиться на сладкую удаленку, если имеешь уже опыт в другом языке?
Ниша Elixir быть тем, чем были рубирельсы в нулевые. С тем исключением, что когда ror приложение получало существенную нагрузку, его приходилось переписывать или заниматься жуткой в наркоманией. Ну и риалтайм там сторонними фреймворками/либами реализовывался, а тут у феникса есть каналы, в absinthe - сабскрипшены, а если надо какой-то бекграунд, есть Task/Agent, OTP модули, всякие еба GenStage/Flow и прочие concurrent хуевины. Ну и все это с бесплатным мультикором и отказоустойчивостью.
Ниша ерланга как языка - поддержка легаси, написание плагинов к джабберу/рэбиту, редкие телеком-проекты, хуйня вроде этого. Лично я давно свалил, и другим советую, хотя причины оставаться могу себе представить.
Да тут во всех тредах все сваливают. Наверное из профессии.
>Ниша Elixir быть тем, чем были рубирельсы в нулевые. С тем исключением, что когда ror приложение получало существенную нагрузку, его приходилось переписывать или заниматься жуткой в наркоманией. Ну и риалтайм там сторонними фреймворками/либами реализовывался, а тут у феникса есть каналы, в absinthe - сабскрипшены, а если надо какой-то бекграунд, есть Task/Agent, OTP модули, всякие еба GenStage/Flow и прочие concurrent хуевины. Ну и все это с бесплатным мультикором и отказоустойчивостью.
И что с этим плохо? Почему с этого нужно сваливать куда-то, если все так радужно?
Желательно уметь хотя бы один ФП-язык, ну ещё часто рубистов берут, с желанием обучаться.
Можно учить сразу Elixir, без Erlang, а потом пройтись по отдельным темам касательно VM-ки, рантама, особенностям работы со списками, строками и всяким тонкостям.
>уметь хотя бы один ФП-язык
Лол, а что в Elixir/Erlang из ФП? Паттерн-матчинг? Хвостовая рекурсия? Неизменяемые структуры данных и "переменные"?
Да хотя бы это. Я с похапэ вот так вот сходу не смог вкатиться: пока читаешь доку - все ясно, начинаешь писать и мозг отключается, потому что писать как привык тут не получается, это работать не будет.
В итоге, пишешь в час по чайной ложке, а потом понимаешь, что надо было вообще все по-другому делать, а ты уже устал, откладываешь переделывание на потом и идешь макакить на пыхе дальше, а это "потом" откладывается все дальше и дальше.
>с похапэ вот так вот сходу не смог вкатиться
Не, ну у меня не все так плохо. В ВУЗе был курс по функциональному и логическому программированию. Я писал на Racket и Prolog. Какое-то время писал на Scala. Не думаю, что Erlang/Elixir сможет чем-то меня удивить в плане возможностей функционального программирования.
Тогда на изи вкатишься (только не ясно зачем, учитывая знания Scala). У меня в вузе были только кресты и джава, и я их неплохо в общем-то знал, но на собесы зассал идти, в итоге - 5 лет макакинга на PHP. На Elixir изначально смотрел как на спасение от выгорания, кажется, что все в нем красиво и правильно выстроено, все как надо, прям идеальный язык. Но вот вкатиться полноценно пока не смог.
Имелось в виду сваливать с ерланга (в эликсир).
>В ВУЗе был курс по функциональному и логическому программированию. Я писал на Racket и Prolog.
Братуха, дай пятюню, я на четвертом курсе и у нас сейчас курс по функциональному и логическому программированию. Тоже Racket юзаю.
>Если ещё с Akka и реактивными стримами опыт есть то ты вкатишься без проблем, я думаю
Только возникает вопрос - а стоит ли играть свеч?
Хороший вопрос. Особенно в свете того что Scala 3 на подходе.
У обоих языков есть свои pros/cons, тут тебе решать.
Я бы сказал что со Scala сложнее найти сладкую удалёнку, зато проще устроиться в локальной конторе.
А можешь сформулировать по пунткам, что помешало вкатиться? Хотелось бы дать советы по ним.
>В ВУЗе был курс по функциональному и логическому программированию. Я писал на Racket и Prolog.
Какой вуз? ололо травля деанон
вообще то это стандартный курс, который входит во все специализации на которых учат на кодеров
очень странный курс, тк полгода, но за эти полгода надо дать знания как о логическом программировании (обычно это пролог) так и о функциональном (обычно это лисп, причем выбор странный, тк лисп не совсем функциональный язык)
>вообще то это стандартный курс, который входит во все специализации на которых учат на кодеров
Да, но именно его у нас не было, потому что я учился на "системотехника", а не погроммиста.
>Лол, а что в Elixir/Erlang из ФП?
>Неизменяемые структуры данных и "переменные"?
Ахуеть какой дебильный вопрос, прямо уровня "лол, а что в джаве из ООП? Объекты?". Действительно, что там еще из ФП, кроме единственной строго определяющей ФП фичи?
Я мало что понимал во время поступления в вузик - куда я иду и зачем, кем буду работать. Ну то есть ясно, что буду работать программистом, но что такое программирование я знал только по трем урокам паскаля в школе.
А вы говорили работы нет, подбегают, деньги в карман засовывают, предлагают породнится
Это копия, сохраненная 6 ноября 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.