Комментарии 15
Отличная статья! И еще был бы интересен непосредственно обзор языка Erlang.
Erlang хорош, но работы на нем не найти.
Тема RabbitMQ не раскрыта.
Эрланг прекрасен, но, к сожалению, пока в индустрии не нашлось никого, кто бы хотел влить в него денег, как, например, в свое время влили в java, а без этого имеем достаточно бедный тулинг вокруг языка, и так до сих пор и не выросло ничего по масштабу сопоставимого, например, с тем же самым Spring'ом. Да, OTP отличная штука, но она все еще очень низкоуровнева, над ней так или иначе приходится делать множество велосипедов, и каждая команда проходит этот путь заново и в одиночку. Очень недооцененный индустрией язык, хочется верить, что это изменится.
я когда копался в erlang находил Chicago Boss, ничего сейчас про него не помню, но выглядело интересно.
Очень давно (лет 15 назад), когда я интересовался этим языком и пробовал на нем немного писать, тоже думал об этом же. К сожалению, изменилось с тех пор немного. Да, появился эликсир с фениксом. Но до экосистемы уровня жавы или пайтона ещё далеко. Абсолютно согласен, хотелось бы, чтобы это изменилось. Но сегодня я бы уже не надеялся на это и, например, рекомендовать кому-то для изучения этот язык не стал бы.
А чего конкретно вам в экосистеме Elixir не хватает?
Да, возможно, готовые биндинги к чему-то достаточно редкому отсутствуют. Но потребности 99% веб-проектов ведь полностью закрыты. А уж по качеству тулинга Elixir на голову выше и Java, и Python.
99% веб проектов - это круды, представляющие собой по сути UI над DB. Закрыть потребности этих проектов действительно несложно.
Но при этом на Elixir/Erlang намного меньше библиотек (в том числе биндингов). Что из этих библиотек действительно редкое, а что нет - вопрос довольно относительный, но если некий сервис или софт вообще имеет биндинги, то они почти наверняка будут для Python и крайне маловероятно для Elixir.
Нет крутых навороченных IDE уровня Idea (о том как кому-то там лично удобно кодить из vim/emacs/notepad.exe я уже слышал, можно не повторять).
Очень маленькое сообщество. Если вы сталкиваетесь с багом или просто странным/неочевидным поведением в некой библиотеке на Jаva/Python, то в 99% случаев этот баг уже обмусолен миллион раз в багтрекере (с кучей "duplicated") и 100500 вариантов воркэраунда уже предложены на стековерфлоу. В Elixir, пожалуйста, разбирайся сам и не забудь ещё зарепортить о баге в апстрим. Остальное всё по сути вытекает из проблемы маленького сообщества. Да и первые два абзаца отчасти тоже.
Как в любой правдоподобной лжи, тут есть 20% правды. Но всё остальное не соответствует реальности.
Но при этом на Elixir/Erlang намного меньше библиотек
Когда мы свернули не туда и стали мерить экосистему по кол-ву пакетов? То, что каждый чел, который учит Python на курсах, публикует с десяток никому не нужных пакетов, вовсе не идёт в плюс экосистеме Python.
Вот я программирую на Elixir, подкиньте мне конкретных идей, каких библиотек не хватает. Ну хотя бы 5 примеров можно? Я, может, на досуге напишу.
если некий сервис или софт вообще имеет биндинги, то они почти наверняка будут для Python и крайне маловероятно для Elixir
Во-первых, это не совсем так. Если софт хоть какой-то популярностью пользуется, то готовые биндинги будут и под Elixir. Исключение тут какие-то совсем уж редкие сервисы.
Во-вторых, я прекрасно помню времена, когда для Python не было биндингов почти ни к чему. И это не было особой проблемой, т.к. написание биндинга по существующей документации в целом довольно тривиальная задача для программиста. В этом нет никакого rocket-science.
И да, 7 лет назад я сам биндинги для Elixir писал. Сейчас же фиг найдёшь под какой сервис их нет готовых.
Если вы сталкиваетесь с багом или просто странным/неочевидным поведением в некой библиотеке на Jаva/Python, то в 99% случаев этот баг уже обмусолен миллион раз в багтрекере (с кучей "duplicated") и 100500 вариантов воркэраунда уже предложены на стековерфлоу.
Это не так. Что в Java, что в Python есть тысячи открытых багов, и постоянно добавляются новые. Вы всегда можете оказаться тут первооткрывателем бага даже в самом ЯП, а уж в какой-то либе и подавно.
Но опять таки, на мой взгляд, это большая радость для программиста хоть раз в год найти баг в какой-нибудь либе и, исправив его, внести свой вклад в OpenSource.
Нет крутых навороченных IDE уровня Idea
Ну, так то есть: https://plugins.jetbrains.com/plugin/7522-elixir
Но, разумеется, для статически типизированных языков доступно больше возможностей в плане IDE.
Как в любой правдоподобной лжи
Вы спросили моё мнение, а когда я вам его высказал, вы обвиняете меня во вранье. Вы с какой целью вопрос мне задавали? Ответ на вопрос "чего конкретно вам [...] не хватает?" не может быть ложью, потому что он априори субъективен. Если вам просто поспорить хотелось, то извините, не в этот раз.
Так вы ничего конкретного то не ответили. Только привели ряд заблуждений, которые если и были когда-то актуальны, то лет 6-7 назад.
Я искренне не понимаю, почему всегда когда этот вопрос поднимается, все сливаются в какие-то пространные мысли об абсолютном кол-ве пакетов и мифических багах (можно подумать мало сотен багов в JVM годами открытые висят). И всё это вместо конкретного списка типа: мне не хватало либы, которая делает A, и биндингов к популярным сервисам B и C.
Хочешь добиться какого-то конструктива, чтобы сделать экосистему Elixir ещё лучше. А оказывается, что никаких объективных оснований для первичных громких заявлений, что экосистемы Java и Python хоть в чём-то существенном её превосходят, по факту и не было. Ну или они держатся в строжайшем секрете по непонятным причинам.
Фиг знает... Наверно для некоторых продуктов и возникает необходимость в увесистом тулинге. Мы уже года 3 пилим проект на Erlang и обходимся стандартными средствами. Как-то не возникает острой необходимости в каких-то доп. средствах.
От Ericsson к WhatsApp: история Erlang