LINUX.ORG.RU

Erlang/OTP 29

 


0

4

Вышла 29 версия функционального языка программирования Erlang, применяемого для разработки распределённых приложений, обеспечивающих высокую надежность и параллельную обработку в режиме реального времени. Язык широко используется в таких областях, как телеком, банкинг, электронная коммерция, компьютерная телефония и мессенджеры (WhatsApp).

Вместе с языком до версии 29 обновилась платформа OTP (Open Telecom Platform) — сопутствующий набор библиотек и компонентов.

Некоторые новшества:

  • В JIT-компиляторе улучшена генерация машинного кода для сопоставления и создания бинарных данных с несколькими little-endian сегментами.
  • В библиотеке SSL в конфигурации по умолчанию выставлен наиболее приоритетным гибридный алгоритм обмена ключами «x25519mlkem768», стойкий к подбору на квантовом компьютере и представляющий собой комбинацию из X25519 ECDH и алгоритма ML-KEM (CRYSTALS-Kyber).
  • Добавлен атрибут -unsafe для пометки функций небезопасными (unsafe). В библиотеке Erlang/OTP подобные функции помечены и для них компилятор теперь выдаёт предупреждение. Добавлена возможность отслеживания через xref вызова unsafe-функций и функций без документации.

>>> Описание выпуска

>>> Подробности



Проверено: hobbit ()
Последнее исправление: CrX (всего исправлений: 3)
Ответ на: комментарий от Lusine

Один из немногих ЛОРовцев (если вообще не единственный), использующих Erlang для крупной серьёзной разработки.

hobbit ★★★★★
()

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

«Erlang was reported to have been used in production systems for over 20 years with an uptime percentage of 99.9999999%. Ericsson AXD301, a high-performance highly-reliable ATM switch». Верни обратно.

Lusine
() автор топика

Периодически ковыряю Elixir, довольно прикольно, надеюсь когда-нибудь стану его применять профессионально. Здоровья Эрлангу.

Gary ★★★★★
()

В новости была непонятно откуда взявшаяся цифиря в 99,999% надежности. Что за клоунада

dynamic_cast
()
Ответ на: комментарий от hobbit
Ответ на: комментарий от CrX

А какие конкретно претензии? Ладно, это не совсем компьютер, а свич, но речь шла про сервис в целом. И заявление сделал кастомер, а не разрабы.

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

Цимес в том, что софт написан на эрланге, если бы писали на расте, нихрена подобного они не достигли.

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

Карго-культ на моём ЛОРе.

«В обоих смыслах» (c) АБС

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

Так понятно, что на эрланге драйверы никто писать не станет, вот отсюда и С. В линуксе тоже 80% драйверы.

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

Ты серьёзно не понимаешь, почему этому не место в новости, или это такой способ троллинга?

  1. Заявлений разработчика нет.
  2. Пруфов никаких нет.
  3. Вроде как есть какое-то заявление 1 (одного) кастомера. Одно анекдотическое свидетельство. И то в основном не из-за сабжа. Подтверждается мутным скриншотом (с собственно заявлением, а не аптаймом).
  4. Кто-то что-то слышал и повторял.

Может в новостях про Gentoo будем писать «дистрибутив, используемый людьми с красными глазами»? Ну а чо, кто-то же такое слышал и повторял, и даже фотку гентушника с красными по той или иной причине глазами найти труда не составит. А при упоминаниях мака будем писать «используемый людьми нетрадиционной ориентации» — ну тоже ведь все слышали такое, и примеров таких людей можно даже намного больше одного найти. Ну и в таком духе.

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

Аптайм это характеристика решения целом и выбранного способа изменения, а не языка. Из цитаты не понятно. Они не перезагружали свой свитч 20 лет? Или имели ввиду, что ерланг работал почти все время пока работал свитч, а время на перезагруку и обслуживание свитча не считается? Опять же, uptime в цитате легко спутать с availability. То что-то оно было up, не значит что все это время было здорово и могло делать полезную работу.

Lucky ★★
()
Последнее исправление: Lucky (всего исправлений: 1)
Ответ на: комментарий от CrX

Чего ты такой душный? Был официальный пресс-релиз от British Telecom, что сервис у них имел надежность nine nines на коробке от Эриксон в которой 1.1 млн. строк на эрланге. Официальных опровержений нет, какие вопросы?

Lusine
() автор топика
Ответ на: комментарий от Lucky

Это означает, что сервис в течении 20 лет был недоступен в среднем не более 31 миллисекунду в году. Как оно там работало внутре не знаю, скорей всего при росте нагружки запускались дополнительные мощности, поскольку пропускная способность менялась в рамках 10-160 Гб/секунду, максимально до 2.5 Тб/с.

https://osp.ru/nets/2000/11/141487

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

Чего ты такой душный?

Напомню хронологию

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

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

Но душный при этом почему-то не ты, а я…

Был официальный пресс-релиз от British Telecom, что сервис у них имел надежность nine nines на коробке от Эриксон в которой 1.1 млн. строк на эрланге.

И пёс с ним. Был и был. Новость не о нём.

какие вопросы?

У меня вообще никаких. Я на твои отвечаю.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 2)
Ответ на: комментарий от CrX

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

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

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

C was reported to have been used in production systems for over 20 years with an uptime percentage of 99.9999999%

Т.е. фраза не несёт полезной информации.

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

А ещё можно характеристики той железки посмотреть и писать в каждой новости, относящейся к процессорам «процессоры архитектуры такой-то, обеспечивающие 99.9999999% надежность», ну и по всем остальным компонентам то же самое, короче. Ну а чо, было ведь? Было. «Официальных опровержений нет, какие вопросы?» :)

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

Здесь шутка про опердени и приседания со штангой.

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

Может, апликуха на кластере работала.

Lusine
() автор топика
Ответ на: комментарий от Lucky

C was reported to have been used in production systems for over 20 years with an uptime percentage of 99.9999999%

Хрен там ночевал, если процесс на С падает, то все, пипец, то все клиенты теряют state махом. А надо начинать соединяться снова, а это сразу ddos на бэкбоне.

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

У меня есть команда cat в терминале на локалхосте, которая перенаправляет данные из одного файла в другой. Она доступна 99.9999999% времени и за 20 лет пропустила через себя террабайты данных из сотен тысяч сессий. Ни каких кластеров и прочей ерунды, только чистый С.

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

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

терминале на локалхосте

за 20 лет пропустила через себя террабайты данных из сотен тысяч сессий

Из сотен тысяч локальхостных сессий?

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

У тебя на сервере 10к пользователей, и каждый одновременно с другими запустил cat с террабайным файлом. Вопрос, сколько в системе будет процессов и как она будет работать?

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

Так у него же всего один пользователь.

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

Что непонятно в слове «распределённое приложение»? В нем может быть десятки миллионов процессов, отдельные естественно могут падать, но отказа в обслуживании не будет никогда.

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

Доступность распределенного приложения это про архитектуру и эксплуатацию, а не способ реализации отдельного компонента. Мой поинт только в том, что ставить рядом аптайм и язык это чисто маркетинг. Парень на конференции красиво выссказался поставив слова рядом (и даже не соврал, если считать что тезис про аптайм относился к потребительским свойствам свитча).

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

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

Lusine
() автор топика

Жеская тема)) А вообще классная штука и чертовски полезная))

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

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

PS байки про девятки оставьте своим детям. В современном мире аптайм даже в месяц отдельного компонента - признак тупости. Хотрелоад был актуален когда железо было дорогим и системы были монолитными. Сейчас все по-другому. Тлдр - в нем много прекрасных идей, но ерланг уже не актуален. Сейчас системы дизайнят по-другому.

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

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

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

Может уже придумали что-то лучше beam? Только чтобы по-взрослому, с полной изоляцией процессов и детальной телеметрией по каждому агенту. Большой плюс, что эрланг(эликсир) прост для изучения и функциональный, писать на нем доставляет эстетическое наслаждение (как на руби), в отличие от того же раста или С++. Если нужна статическая типизация можно взять язык gleam.

Сейчас системы дизайнят по-другому

Phoenix пример современного дизайна или как?

Lusine
() автор топика
Ответ на: комментарий от CrX

Пришли два модератора, эти косяки

Какая интересная версия... ;))

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

Большой плюс, что эрланг(эликсир) прост для изучения и функциональный, писать на нем доставляет эстетическое наслаждение (как на руби), в отличие от того же раста или С++.

Субъективное мнение.

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

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

да. в ерго гораздо глубже observability сделано. например, лейтенси мейлбокса. и трейсинг distributed из коробки. и куча всего еще. ерланг хорош в идеях, но его текущее состояние - обнять и плакать.

PS тот же обсервер ерланга. отличная же идея. но он убогий. для примера как выглядит обсервер здорового человека https://devel.docs.ergo.services/advanced/observer (в реальности больше фич, просто доку еще не обновил)

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

ergo ★★★★
()
Последнее исправление: ergo (всего исправлений: 2)
Ответ на: комментарий от ergo

А вопрос изоляции стыдливо замалчиваем? Может ли актор случайно порушить весь процесс игогошечки целиком?

Lusine
() автор топика
Ответ на: комментарий от ergo

А дизайн это про микросервисы? Но все же знают, что их сейчас пишут на расте после того как там запилили корутины. Получается, что это игогошечка сейчас динозавр такой же как эрланг и джава, хотя та вроде заняла место фортрана.

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

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

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

Вера в нерушимость ерланга присуща только джунам, которые прод с ерлангом не нюхали и сегфолтов его не видели.

PS если хочется обсудить ерго, буду счастлив объяснить непонятные моменты. Но до этого прочитай документацию. Хотя бы поверхностно.

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

ergo ★★★★
()
Последнее исправление: ergo (всего исправлений: 2)
Ответ на: комментарий от ergo

Да вы оба хороши. Обсуждать какие-то отдельные фишки Erlang’а это аутизм. Это как про соль говорить, которая есть в составе хлебушка, конечно, но не понимать ценность мягких французских булок как таковых. Erlang прекрасен потому что генеальный Армстронг собрал идеальное сочетание киллерфитч. Лёгкая вытесняющая многозадачность, инженерная (без университетско-олимпиадной идиотии) функциональщина с иммутабельностью, акторная модель. Вы, конечно, можете ГОветь одной солью, но не мешайте людям жевать куличи.

А ещё, ща происходят интереснейшие события в мире Elixir, как, например, прикручивание строгой типизации к языку и, что интересно, разработчики BEAM не брезгуют причаститься светлых Хосешных тайн.

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

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

Да более чем актуально, ты издеваешься что ли?

В C# уже

"Что такое «горячая перезагрузка .NET»?

Горячая перезагрузка позволяет вносить изменения в исходный код приложения во время его выполнения без необходимости приостанавливать его вручную или создавать точку останова. Теперь прямо во время работы приложения можно внести в код изменение из числа тех, что поддерживаются для горячей перезагрузки, нажать кнопку «Применить изменения кода» в новом интерфейсе Visual Studio — и изменение будет сразу же применено.

Горячая перезагрузка работает со множеством старых и новых типов проектов, включая WPF, Windows Forms. В сущности, новая возможность работает с любыми проектами на базе среды выполнения .NET Framework или CoreCLR."

В java «Hot Class Reload (HCR) is a technique that enables Java applications to reload classes at runtime.»

Даже в горбатой 1С люди хотят:

«Горячая перезагрузка кода» в 1С"

Современные большие конфигурации очень долго выполняют системный старт - от запуска клиентского приложения до выполнения первой строки прикладного кода. Например для ERP в клиент-серверном варианте это 20+ секунд на быстром оборудовании, для «ERP: Управление холдингом» 40+ секунд.

К этой длительности еще добавляется выполнение прикладного кода при начале работы и получаем весьма уже внушительные 30/50 секунд в лучшем случае, а в реальных условиях зачастую и более 100 секунд на полный старт приложения.

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

тлдр - аргументы твои сравнивают теплое с мягким.

перегрузить функцию и перегрузить актора - диаметральные задачи. перегрузка актора -> адовая боль в трансфере стейта. никто в здравом уме этим заниматься не будет ибо это ружье стреляет даже когда на стене висит в 99 случаях из 100. спрашивать «а вы используете хотрелоад в проде» не буду. ну просто в реальной жизни таких нет идиотов. даже никто из знакомых, знакомые знакомых - НИКТО этим никогда не пользовался, кроме как локально по-быстрому перегрузить модуль.

К этой длительности еще добавляется выполнение прикладного кода при начале работы и получаем весьма уже внушительные 30/50 секунд в лучшем случае, а в реальных условиях зачастую и более 100 секунд на полный старт приложения.

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

ergo ★★★★
()
Последнее исправление: ergo (всего исправлений: 1)
Ответ на: комментарий от perl5_guy

Вы, конечно, можете ГОветь одной солью, но не мешайте людям жевать куличи

так то я не го с ерлангом сравниваю ), а реализацию акторной модели ерго с ерлангом. и всегда всплывает только один аргумент - изоляция процесса. но в реальной жизни эта палка о двух концах, второй конец которой всегд в ж… Возможность в го иметь shared object дополняет прекрасную акторную модель - самый частый случай - коннект к бд, кешу и тд. это сильно удобней, чем переводить абсолютно все на мессаджинг. в итоге в го я получаю все прелести акторной модели (включая настоящую сетевую прозрачность с перформансом в несколько миллионов сообщений в секунду) + гибкость использования отдельных объектов. в случае ерланга - та самая палка одним концом у тебя в ж и без адекватной сетевой прозрачности.

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

ergo ★★★★
()
Последнее исправление: ergo (всего исправлений: 1)
Ответ на: комментарий от ergo

А ты знаешь, может 1С на микросервисах уже надо сделать? Хотрелоад есть и работает, это ответ на твой вопрос об актуальности.

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

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

ergo ★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.