LINUX.ORG.RU

Только я собрался прочитать «Learn You Some Erlang...

 ,


0

2

...for Great Good!», как Erlang умер: https://medium.com/@dmitriid/erlang-is-dead-long-live-e-885ccbcbc01f

Главными причинами автор¹ называет то, что всё, что было уникального в Erlang (легковесные процессы, обмен сообщениями и т.д.), появилось в других, более распространённых языках. А в самом Erlang библиотек из других языков не появилось, всё придётся писать самому.

---------------------------
1) создатель http://erlanger.ru/



Последнее исправление: nezametny (всего исправлений: 1)

Обычная профусталость у человека :). Язык как был нишевый, так и остается. Говорить про его смерть, мягко говоря, неуместно. Напротив, язык развивается. Уповать на Elexir сильно не стоит, ибо это лишь синтаксис, не более - живет-то он ровно в той же beam-машине, со всеми вытекающими.

тут еще в каментах ссылку на видео кидали, на недавний митап, где говорится о минусах языка/vm

https://www.youtube.com/watch?v=kHxNgiKGuF8&index=3&list=PLY3spNmwoSY...

полезное выступление, тем кто не в курсе про особенсти, но на выступлении они преподносятся как минусы языка, хотя их оными, мягко говоря, назвать тяжеловато. да и перечисленное весьма невелико в своем количестве. насобирать таких особенностей можно у любого языка (напомнить про GIL у питона?)

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

Deleted
()

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

trycatch ★★★
()

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

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

Будешь переписывать на Java.

Erlang и тебя переживет, тем более категоричные люди обычно не живут долго)

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

Вытесняющие акторы которые автоматом раскиданы на все процессоры, давай, в студию

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

серверный - целиком состоит из этого

И много ли серверных решений на эрланге? Вангую что один nginx имеет больше инсталляций чем весь эрлангософт вместе взятый.

пытаешься наезжать на его сильные стороны

Потому что как раз его сильные стороны обеспечивают фейл эрланга в длительной перспективе - никто не станет переписывать весь имеющийся софт под акторы, причём такие как в эрланге. Это автоматически приводит к тому что библиотек или нет совсем или они тухлые.

no-such-file ★★★★★
()
Ответ на: комментарий от loz

А я знаю человека, который краем уха слышал очевидца презентации о слухах про что-то там. Инфа 100%.

Если бы заказчик хотел рабочие билды, то просто выделил бы под это дело тачку, на которой тот же Jenkins пересобирал обновившиеся исходники, без обновления либ. Но ему же этого мало, захотелось чистых билдов.

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

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

И в Java, если вдруг с интернетом перебои, и не достучаться до maven central. Или если нужной Jar-ки там нет, и надо скачать с какого-то мутного хостинга, который решил немного полежать.

Да и вообще везде, где есть линк на внешний ресурс.

В go после первого go get библиотека сохраняется в папку на диске, и больше не обновляется, если принудительно не скомандовать.

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

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

То-то я смотрю акторы настолько никому не нужны, что жависты аж целую акку себе запилили. Как там, в акке-то, память уже перестала течь?

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

То-то я смотрю акторы настолько никому не нужны, что жависты аж целую акку себе запилили.

Так суть в том, что когда джавистам нужны были GUI, они себе запилили Swing. Когда понадобились акторы, запилили Akka. Когда захотелось скрестить ужа с ежом, запилили Eclipse.

Тогда как Erlang остается инструментом для задач, где использование акторов на не очень шустрой VM уместно.

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

А потом запилили netbeans, swt, jsf, jsp, ant, maven, maven2, apache-*, ... устал. А вообще, что про жаву спорить? Все вы в прокрустовом ложе спринги, лол.

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

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

Когда понадобились акторы, запилили Akka.

Которая говно, да. Но главное что запилили же.

Тогда как Erlang остается инструментом для задач, где использование акторов на не очень шустрой VM уместно.

Ну то есть опять же, все серверные задачи.

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

В go после первого go get библиотека сохраняется в папку на диске, и больше не обновляется, если принудительно не скомандовать.

Билды обычно собираются с нуля, в чистом окружении.

loz ★★★★★
()
Ответ на: комментарий от no-such-file

Пример где ну никак нельзя обойтись без таких акторов давай в студию

И не стыдно тебе лого лиспа ставить на аватарку? Пример где нельзя обойтись без макросов в студию? Пример где нельзя обойтись машиной тьюринга в студию? Нет? Тогда зачем тебе переменные, процедуры, объекты, функции, макросы? Все программисты в мире придумали себе кучу проблем, потом пытаются их героически решать.

И много ли серверных решений на эрланге?

Работу сможешь на нем найти, в отличие от лиспа.

Вангую что один nginx имеет больше инсталляций чем весь эрлангософт вместе взятый.

Конечно, а юникс имеет больше инстялляций чем nginx, а сколько инсталляций у процессоров - жуть!

никто не станет переписывать весь имеющийся софт под акторы

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

Это автоматически приводит к тому что библиотек или нет совсем или они тухлые

К этому приводит совершенно другое, успокойся уже.

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

У Эрланга есть свое место

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

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

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

Но главное что запилили же.

Таки да, запилили. А на Erlang-е что-нибудь кроме ОТР запилили?

Ну то есть опять же, все серверные задачи.

Ой, да ладно. Вот HTTP-сервера — это типичная серверная задача. Каков процент инсталляций занимают написанные на Erlang-е HTTP-шые сервера по сравнению с теми же apache, nginx, IIS?

Или вот ниша MQ-шных систем. Есть ли что-то на Erlang-е, кроме RabbitMQ?

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

А, ну извини, инсталлятор Эрланга не попискивает про «billions of devices» в отличии от жавы, но нам норм. Деньги платятся, работа делается. А то, что с вашим jpa, например, 60% кода элементарно создается самописным кодогенератором (на c# делал, лол) - ну, жаваархитектура, наслаждайтесь. Мне как-то пофиг, я и на жаве могу, бгг. Это у тебя просто жаватравма - все задачи решать на одном языке.

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

Она не говно, а параша. Но. Контроль высокоскоростного движение (рперативное планирование, конкретно) - реализовано в связке scalla/akka/j2se. Такой вот тебе маленький инсайд.

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

Блинский блин, рука соскочила, читать как «оперативное планирование высокоскоростного движения в ОАО РЖД». Так что едешь на Сапсане или Аллерго - за тобой скалка следит, бгг.

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

А на Erlang-е что-нибудь кроме ОТР запилили?

запилили.

Ой, да ладно. Вот HTTP-сервера — это типичная серверная задача. Каков процент инсталляций занимают написанные на Erlang-е HTTP-шые сервера по сравнению с теми же apache, nginx, IIS?

Неадекватное сравнение.

Или вот ниша MQ-шных систем. Есть ли что-то на Erlang-е, кроме RabbitMQ?

Рэббит тебя не устраивает? сколько их должно быть? это что, олимпиада у кого больше реализаций тот и победил? тогда эрланг возьмет первое место в категории json либ.

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

Ну а кстати, почему Akka говно?

Она невытесняющая.

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

1)N2O же есть. 2)ORM же не нужен. 3)А че там такие плохие парсеры в erlang?

1. ты им пользовался сам лично? 2. давай я сам буду решать что мне нужно, а что нет, ок? 3. что такое плохие парсеры? возьми да попробуй написать.

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

Неадекватное сравнение.

Почему? HTTP-сервер — это серверная задача. Есть куча реализаций HTTP на разных языках. Если Erlang так хорош, то можно было бы ожидать, что уж на нем-то всех можно было бы зарулить. Да только не видать чегой-то.

Ну и какое сравнение было бы адекватным?

Рэббит тебя не устраивает?

Смотря где и смотря по каким критериям. Попадалось недавно на глаза сравнение производительности для MQTT (ссылка: http://www.scalagent.com/IMG/pdf/Benchmark_MQTT_servers-v1-1.pdf, но прям сейчас этот сервак недоступен). Как-то не блещет RabbitMQ там. Или вот, есть на Erlang-е что-то вроде Kafka?

Она невытесняющая.

Понятно.

Очевидно, вы игнорируете то, что вам говорит no-such-file: это совсем не проблема на практике.

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

Не, должна быть служебка из QA или отдела сопровождения и внедрения, что за каким-то хреном либу на рабочем билде обновили автоматом. А дальше - пинком на улицу.

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

А, ну извини, инсталлятор Эрланга не попискивает про «billions of devices» в отличии от жавы, но нам норм. Деньги платятся, работа делается.

Мне, вообще-то, глубоко фиолетов и Erlang, и Java с Akka-ми. А про то, что «деньги платятся, работа делается» нужно объяснять одному из самых старых популяризаторов Erlang-а в Рунете — тому самому Дмитрию Диманду, статье которого и посвящена данная тема. Он-то почему-то света в конце туннеля не видит.

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

у Эрланга свое место и это место у параш слишком мелкое, с годами не увеличивается и это не есть хорошо в долгосрочной перспективе.

Увеличивается, не очень сильно, но увеличивается. Даже в рашке я наблюдаю все больше контор и вакансий с эрлангом. На наш век хватит работы и задач.

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

Должно было много чего быть, но прецедент такой есть.

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

Да кто он такой, чтоб за ним бегать?

Как минимум, он автор статьи, которую в данном топике обсуждают.

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

вдруг это Ктулху пытается Эрзента косплеить? :)

# erzentded, лови самозванца

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

За автором статьи стоит бегать только если это статья УК РФ. А так - я тоже могу статей понаписать, толку-то.

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

Почему? HTTP-сервер — это серверная задача. Есть куча реализаций HTTP на разных языках. Если Erlang так хорош, то можно было бы ожидать, что уж на нем-то всех можно было бы зарулить. Да только не видать чегой-то.

Во-первых, у nginx первый релиз в 2004 году, cowboy в 2011 только создана репа на гитхабе. Остальные еще старше. Во-вторых nginx изначально писался универсальным и для различных бэкендов, cowboy - для эрланговох приложений.

Если Erlang так хорош, то можно было бы ожидать, что уж на нем-то всех можно было бы зарулить

Можно, пример с nginx не адекватен, потому, что хорошо написанное и оптимизированное на сях не зарулить ничем, но, для более-менее сложных проэктов никто в здравом уме сегодня си не возьмет, а эрланг заруливает по связке скорость разработки + максимальное (для языка с vm) использование возможностей многопроцессорных и кластерных систем.

Или вот, есть на Erlang-е что-то вроде Kafka?

Наверное нет, если тебе нужна Kafka - можно просто использовать ее из эрланга.

Очевидно, вы игнорируете то, что вам говорит no-such-file: это совсем не проблема на практике.

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

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

А так - я тоже могу статей понаписать, толку-то.

На словах все могут. Особенно на LOR-е.

Со стороны же это выглядит так: есть dmitriid, который, хоть и несколько странный товарищ, но 10 лет уже программирует на Erlang-е, фиг знает сколько занимается ресурсом erlanger.ru, очень много пропагандирует Erlang в Рунете. Этот товарищ написал статью, в которой изложил довольно пессимистический взгляд на ситуацию с Erlang-ом и ее перспективы. Ссылку на эту статью притащили на LOR дабы пообсуждать, насколько этот взгляд отражает действительность.

И тут некто говорит, что Akka говно, потому что Java, а Java вообще говно-говно, а за Erlang ему платят и поэтому все зашибить. И мнение автора статьи, в обсуждении которой этот некто всплыл, ему пофиг, потому что статья не из УК РФ...

Соответственно, наличие таких адептов у Erlang-а говорит в пользу мрачных прогнозов товарища dmitriid.

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

Должен быть постоянный СI build

И он сломается одновременно со сборкой у заказчика, потому что какие-то умники обновили репы на гитхабе %)

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

И тут некто говорит, что Akka говно, потому что Java, а Java вообще говно-говно, а за Erlang ему платят и поэтому все зашибить. И мнение автора статьи, в обсуждении которой этот некто всплыл, ему пофиг, потому что статья не из УК РФ...

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

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

Во-первых, у nginx первый релиз в 2004 году, cowboy в 2011

Это не аргумент, т.к. Erlang вышел в OpenSource в том же 2004-ом году.

а эрланг заруливает по связке скорость разработки + максимальное (для языка с vm) использование возможностей многопроцессорных и кластерных систем.

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

Наверное нет, если тебе нужна Kafka - можно просто использовать ее из эрланга.

Речь не про то, можно ли дергать Kafka из Erlang-а или нет. А про ваше утверждение:

Ну то есть опять же, все серверные задачи.

Не видно практических подтверждений про «все». Где-то как-то используется. Но не везде.

max_lapshin может это сделать.

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

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

Соответственно, наличие таких адептов у Erlang-а говорит в пользу мрачных прогнозов товарища dmitriid.

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

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

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

Уютненько настолько, что сами Erlang-еры начинают о чем-то подозревать?

Ну и, полагаю, в тесных мирках COBOL-щиков, MUMPS-щиков и Lisp-еров тоже все «внутри вполне уютненько».

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

Это не аргумент, т.к. Erlang вышел в OpenSource в том же 2004-ом году.

А си в 72. Мы сравниваем вебсервера, языки, или что, я не пойму?

говорит о том, что как только захочется чуть большее, чем может дать «язык с vm», то Erlang идет лесом.

Почему это он идет лесом?

И это мы пока только про Java говорим и не вспоминаем тот же Go.

Лол, ну давай вспомним Go. Нет исключений, нет горячей замены кода, нет кластеризации, нет OTP, нет дженериков, репы из гитхаба в импортах, процессы не first-class entity. Что-то еще я забыл?

Не видно практических подтверждений про «все». Где-то как-то используется. Но не везде.

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

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

Тормоза фиксятся, софт работает, бабло приносит. Все хорошо же.

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

Уютненько настолько, что сами Erlang-еры начинают о чем-то подозревать?

Да о чем подозревать то, эрлангист знает где и для чего эрланг подойдет, а где нет. Ты ведь можешь понять, когда тебе нужно написать скрипт на sh, а когда новый проэкт на джаве? Вот и тут то же самое.

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

А си в 72. Мы сравниваем вебсервера, языки, или что, я не пойму?

Пытались сравнить вебсервера. Выяснилось, что Erlang-а там нет. Вы попытались это объяснить молодостью Cowboy. Но данный аргумент меня не устроил.

Почему это он идет лесом?

Потому, что Erlang один из самых медленных языков программирования. И пока он используется в качестве «клея» дабы инициировать операции, реализованные на более эффективных языках, на это можно закрыть глаза.

Лол, ну давай вспомним Go.

Вы очень лихо ушли в сторону. Тезис был в том, что если снабдить более шустрые языки достаточным количеством библиотек, то преимущества Erlang-а в распределенности исчезнут.

Ну да, не везде

Собственно, о том и речь. Что ниша у Erlang-а узкая. И есть эта ниша до тех пор, пока аналоги OTP для других языков не подтянутся. И, в отличии от других языков, Erlang из своей ниши не выберется.

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

Параша же лучше, чем говно, не? Ну да ладно, беспредметный разговор.

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

прогноз? какой прогноз? «выживет ли ерланг — не знаю» — не прогноз, а мастурбация: сказать нечего, но очень хочется.

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

не умеют под меня косить, стиль бы хотя бы брали, ужас.

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

«выживет ли ерланг — не знаю»

Ответ «не знаю» несколько хуже, чем ответ «точно выживет». Скажем, «выживет ли Java»? Точно выживет. Или «выживет ли C»? Точно выживет.

А вот на счет Erlang-а даже прожженные эрлангеры не знают :)

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

Пытались сравнить вебсервера. Выяснилось, что Erlang-а там нет.

cowboy - вебсервер. что значи эрланга там нет?

Вы попытались это объяснить молодостью Cowboy. Но данный аргумент меня не устроил.

тебя не устроил - это твои личные проблемы.

Потому, что Erlang один из самых медленных языков программирования.

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

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

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

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

может исчезнут, а может и нет. да и вобще эрланг и OTP известны уже больше 10 лет, аналогов до сих пор не появилось.

И есть эта ниша до тех пор, пока аналоги OTP для других языков не подтянутся

видимо не так просто их подтянуть то, без аналогичной vm.

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

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

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