Здравствуйте, SkyDance, Вы писали:
N>>Алиас процесса — чтобы не расширять межнодовый протокол? Так почему бы не расширить его?
SD>Чтобы не менять гарантии очередности доставки сообщений. Если один процесс отправляет другому сообщения А и Б в этом порядке, этот самый другой процесс должен получить сообщения именно в этом порядке. Алиас, однако, имеет другой идентификатор — то есть это другой процесс. Волки сыты, овцы целы.
Если те же самые гарантии присутствовали бы для комбинации {процесс, номер очереди}, при том, что вся старая инфраструктура пользовалась бы номером 0 — точно так же было бы "волки сыты, овцы целы", зато без костыля.
N>>_Для начала_ можно было сделать и такую реализацию, по которой все очереди вначале равномерно проходятся, насколько хватает их глубины, в поисках нужного паттерна, а каждый следующий поиск начинается с очереди следующей по кругу за той, на которой закончили. Это точно так же дало бы полноценный эквивалент с равномерным выбиранием из всех очередей. После этого уже играться с синтаксисом. SD>Так это на любой чих будет full scan всех очередей, и тогда selective receive optimization более не будет работать так, как он работал раньше.
Selective receive optimization можно было бы и сохранить, хотя бы для очереди 0. Она не мешает.
SD>Что-то натворить без обеспечения обратной совместимости — дело нетрудное. Куда сложнее действовать в рамках существующих ограничений.
Я именно такое и описываю.
N>>Ну абсолютные цифры меня не очень волнуют, а вот относительные — для общей группы ниш — резко упали. Но я подозреваю, что и в абсолютных не всё гладко. SD>Другого и не ожидалось. Чтобы экосистема росла, нужно вливать в нее олимпиарды денег. Можешь быть уверен, если Гугл сейчас скажет "окей, поиграли в Го, и хватит", и закроет Го к чертям, через 10 лет Го будет примерно там же, где Эрланг сейчас. Ты еще Хаскел или ОСамл какой в пример приведи.
Вот потому я и говорю, что когда Erlang был на естественном пике интереса — надо было не изображать из себя царей горы, а слушать, что пользователи просят.
N>>Мне казалось, я старше. Мне по-прежнему многое интересно, хотя половину времени, да, чертыхаюсь от "до чего же всё повторяется".
SD>Я рано начал. Поэтому у меня "таблетка №2" из анекдота ("- Да это ж опять говно! — Отлично, память к пациенту тоже вернулась") стала лейтмотивом где-то к 2018, когда любое нагромождение очередных "прорывных технологий" стало вызывать отторжение из серии "хорошо, ну пусть в гамаке, но лыжи-то зачем".
"Рано" это когда? У меня первые ещё фактически игры были в ≈13. Но мне всё равно нравится не только когда что-то работает, но и наблюдать, как именно не работает
Здравствуйте, netch80, Вы писали:
N>>>Ну абсолютные цифры меня не очень волнуют, а вот относительные — для общей группы ниш — резко упали. Но я подозреваю, что и в абсолютных не всё гладко. SD>>Другого и не ожидалось. Чтобы экосистема росла, нужно вливать в нее олимпиарды денег. Можешь быть уверен, если Гугл сейчас скажет "окей, поиграли в Го, и хватит", и закроет Го к чертям, через 10 лет Го будет примерно там же, где Эрланг сейчас. Ты еще Хаскел или ОСамл какой в пример приведи. N>Вот потому я и говорю, что когда Erlang был на естественном пике интереса — надо было не изображать из себя царей горы, а слушать, что пользователи просят.
Он вроде всегда был нишевым и создавался таким. Такой себе DSL для высоких нагрузок\ сетевых приложений.
Разве нет? Он и в своем домене потерял актуальность, типа Го или Rust его вытеснили?
Здравствуйте, Sharov, Вы писали:
N>>Вот потому я и говорю, что когда Erlang был на естественном пике интереса — надо было не изображать из себя царей горы, а слушать, что пользователи просят. S>Он вроде всегда был нишевым и создавался таким. Такой себе DSL для высоких нагрузок\ сетевых приложений.
Тогда его можно было доработать и сильно расширить область применения.
S>Разве нет? Он и в своем домене потерял актуальность, типа Го или Rust его вытеснили?
Да, заметно вытеснили. И то, о чём я спорил весь тред — что заметную роль в этом сыграла тупая ригидность команды развития.
эрланг был незаменим только в некоторых моментах
горячая замена кода(типа банки, пока что то работает, менять на лету другое)
и отказ от обслуживания(типа управления самолетами аля бортовые системы, когда не работоспособность какого то функционала не роняет всю систему)
сейчас эту нишу заняли(вытесняют) микросервисы
хайлоад в эрланге никогда не позиционировался
с этой ниши его легко можно было выбить чем угодно
Здравствуйте, Великий Мессия, Вы писали:
ВМ>эрланг был незаменим только в некоторых моментах ВМ>горячая замена кода(типа банки, пока что то работает, менять на лету другое) ВМ>и отказ от обслуживания(типа управления самолетами аля бортовые системы, когда не работоспособность какого то функционала не роняет всю систему) ВМ>сейчас эту нишу заняли(вытесняют) микросервисы ВМ>хайлоад в эрланге никогда не позиционировался ВМ>с этой ниши его легко можно было выбить чем угодно
Ясно, а что такого уникально в отказе в обслуживании, вроде обработка исключений есть во всех языках?
N>Если те же самые гарантии присутствовали бы для комбинации {процесс, номер очереди}
Задача как раз состояла в том, чтобы очередь осталась одна. Как только очередей становится много, это полностью меняет сложность языка и работы с ним. Таково мнение OTP board, и я с ним согласен.
N>Я именно такое и описываю.
Нет, не такое. Ты про множественные mailbox'ы. Я обсуждал это направление много-много раз, но, действительно, эта фича ведет к резкому росту сложности (как реализации receive, так и когнитивной нагрузке при написании кода таких процессов).
N>Вот потому я и говорю, что когда Erlang был на естественном пике интереса — надо было не изображать из себя царей горы, а слушать, что пользователи просят.
Эрланг никогда не был на "пике естественного интереса". Рекомендую послушать доклады с конференций, "откуда вообще взялся Эрланг". Это был исключительно внутренний проект компании Ericsson, для того, чтобы создавать надежные системы для (тогда) телефонии. То, что телефония и интернет оказались практически одним и тем же, — что ж, этого никто заранее знать не мог.
Если бы в 1998 году Эрланг не опен-сорснули, сейчас бы вообще ничего не было (и WhatsApp-сервер был бы написан на какой-нибудь Java). Никто и никогда не пытался продвигать Эрланг как язык и экосистему. Но сама технология оказалась чертовски хороша, так что случайный (но очень плодовитый) человек Jose Valim захотел сделать RubyOnRails правильно — и таки сделал, назвав это Elixir'ом.
Но стоит понимать, что команда ОТР — крошечная (7 человек на системные вещи, вроде ВМ и стдлиб, и еще 7 на "все остальное"). И их основные заказчики — внутренние (в Эрикссон). Ожидать, что они будут "в свободное от работы время" пилить что-то еще — как минимум неразумно. Я не знаю размер команды Го в Гугле, но знаю, что Свифт в Эппл толще на порядок.
N>"Рано" это когда? У меня первые ещё фактически игры были в ≈13. Но мне всё равно нравится не только когда что-то работает, но и наблюдать, как именно не работает
В 13 я уже написал целый графический редактор под винду. Почти Paint. И сделал я это на компьютерах в школе и в мореходке (Мурманск, эта мореходка потом была была переименована в МГАРФ, Мурманская Государственная Академия Рыбопромыслового Флота, и потом — в МГТУ, Мурманский Государственный Технический Университет). А лет с 8 или 9 я вовсю пилил программы на калькуляторе МК-61 (том самом, который от розетки работал, но мог и от батареек, только недолго). Польскую нотацию я с тех пор и помню. "Положить в стек 2, положить в стек 4, вызвать операцию суммирования". Круть
Микросервисы — ортогональны, идея устроить orgchart в коде не имеет отношения к парадигмам языка программирования.
ВМ>хайлоад в эрланге никогда не позиционировался
Это soft realtime, который как раз нужен во всех коммуникациях. Телеком-язык.
Здравствуйте, SkyDance, Вы писали:
N>>Если те же самые гарантии присутствовали бы для комбинации {процесс, номер очереди} SD>Задача как раз состояла в том, чтобы очередь осталась одна. Как только очередей становится много, это полностью меняет сложность языка и работы с ним.
Верно, происходит существенное упрощение в сложных ситуациях — за счёт незначительного усложнения в простых.
SD> Таково мнение OTP board, и я с ним согласен.
Жаль.
N>>Я именно такое и описываю.
SD>Нет, не такое. Ты про множественные mailbox'ы. Я обсуждал это направление много-много раз, но, действительно, эта фича ведет к резкому росту сложности (как реализации receive, так и когнитивной нагрузке при написании кода таких процессов).
Никакого резкого роста сложности нет.
Уже в простейшем варианте, когда из всех очередей по кругу выбираются сообщения, соответствующие шаблону, без приоритетов, но отправка сообщений происходит согласно ожидаемым очередям — например: 0 для обычных info, cast и прочих по умолчанию, 8 для ответов на gen_call, 9 для всяких 'EXIT' — усложнения нет, а избавление от нерегулируемых заторов — есть.
Дальше уже можно думать о приоритетах, выборе из одной очереди и т.п. — но даже такой старт уже решил бы обсуждаемую проблему. "Когнитивные проблемы" типа необходимости выбирать только из конкретной очереди или двух, пока синхронно ждёшь ответ на запрос — это для младшей группы ясель. Или OTP Board и представляет собой именно такую? Иногда создаётся таки впечатление...
N>>Вот потому я и говорю, что когда Erlang был на естественном пике интереса — надо было не изображать из себя царей горы, а слушать, что пользователи просят. SD>Эрланг никогда не был на "пике естественного интереса". Рекомендую послушать доклады с конференций, "откуда вообще взялся Эрланг". Это был исключительно внутренний проект компании Ericsson, для того, чтобы создавать надежные системы для (тогда) телефонии.
Это не имеет никакой связи с вопросом. В период приблизительно 2005-2012 к нему был интерес сильно выше этого, надо было им пользоваться.
SD>В 13 я уже написал целый графический редактор под винду. Почти Paint. И сделал я это на компьютерах в школе и в мореходке (Мурманск, эта мореходка потом была была переименована в МГАРФ, Мурманская Государственная Академия Рыбопромыслового Флота, и потом — в МГТУ, Мурманский Государственный Технический Университет). А лет с 8 или 9 я вовсю пилил программы на калькуляторе МК-61 (том самом, который от розетки работал, но мог и от батареек, только недолго). Польскую нотацию я с тех пор и помню. "Положить в стек 2, положить в стек 4, вызвать операцию суммирования". Круть
Ну у меня как-то похоже, но на пару лет позже по возрасту. Спасибо за рассказ
Здравствуйте, Великий Мессия, Вы писали:
ВМ>[здесь был большой ответ который пропал из за 404]
ВМ>кажется что нет, хотя акку изнутри я не знаю ВМ>но насколько вижу, акка это фрейм ворк
ВМ>а в эрланге это заложено на уровне языка(языковых конструкций)
SD>>В 13 я уже написал целый графический редактор под винду. Почти Paint. И сделал я это на компьютерах в школе и в мореходке (Мурманск, эта мореходка потом была была переименована в МГАРФ, Мурманская Государственная Академия Рыбопромыслового Флота, и потом — в МГТУ, Мурманский Государственный Технический Университет). А лет с 8 или 9 я вовсю пилил программы на калькуляторе МК-61 (том самом, который от розетки работал, но мог и от батареек, только недолго). Польскую нотацию я с тех пор и помню. "Положить в стек 2, положить в стек 4, вызвать операцию суммирования". Круть
N>Ну у меня как-то похоже, но на пару лет позже по возрасту. Спасибо за рассказ
фигли вы старички
я даже спаял программатор, который сейвил и загружал программы с/на MK61 c/на обычную кассету на магнитной ленте
схема была в журнале РАДИО, год только подзабыл, 87 наверное
В моем случае смысла в этом не было, т.к. магнитофон в семье был всего один. Поскольку мы жили 3 поколениями в одной квартире (бабушка, мама-папа, мамин брат, я и мой брат), разумеется, никто бы мне не дал использовать магнитофон для такого вот "развлечения".
UPD: однако, могу был неправ. Если верить гуглу, программаторов для МК-61 было несколько. Вполне возможно, что и в 87 тоже была публикация.
N>Верно, происходит существенное упрощение в сложных ситуациях — за счёт незначительного усложнения в простых. N>Никакого резкого роста сложности нет.
Сдается мне, это субъективное мнение. Поэтому, как мне кажется, сколько бы мы ни приводили аргументов, все равно останемся "при своих".
Еще тонкий момент, — возможно, что множественные очереди и в самом деле существенно лУчшее решение. И если б у команды ОТР было бы не 7, а хотя бы 20 человек, они пошли бы именно там путем. N>Дальше уже можно думать о приоритетах, выборе из одной очереди и т.п. — но даже такой старт уже решил бы обсуждаемую проблему.
Да обсуждали мы этот подход. Но как сделать, чтобы это не снизило производительность (отправки сообщений), я не знаю. Может, еще лет через 5 и такое тоже появится. Это ж всего лишь вопрос ресурсов. Которых у ОТР ну совсем немного. А другие юзеры не шибко горят желанием развивать ОТР. Да что уж там, это стоило мне очень много сил и нервов убедить местечковых властителей судеб (aka менеджеров) в том, что мы должны open-source'нуть всякие супер-ценные штуки (вроде `pg`, `peer`, `hprof` — который теперь `tprof`), а не пилить их в своем темном углу. Обрати, кстати, внимание — за последние 10 лет новых модулей в ОТР почти не добавляли. Но эти три реально используются практически всеми.
Скрытый текст
Сегодня сдавал полномочия board member, и Peer Stritzinger, тот что GRiSP, сделал мне кучу комплиментов, и пообещал "отомстить", засабмитив модуль `maxim`, когда он придумает, что этот модуль должен делать. Но это должен быть очень важный модуль. Потому что `peer`, который я делал, реально крут, и используется всеми.
Искренне надеюсь, что смогу вернуться в это сообщество. Либо когда окончательно соберусь ловить рыбу на пенсии, либо если за Erlang начнут платить деньги (где угодно кроме facebook'а).
N>Это не имеет никакой связи с вопросом. В период приблизительно 2005-2012 к нему был интерес сильно выше этого, надо было им пользоваться.
Так в это время еще не было Elixir'а (который я считаю диалектом Erlang'а). Как мне кажется, сейчас интерес примерно такой же, просто распределен (фрагментирован). N>Ну у меня как-то похоже, но на пару лет позже по возрасту. Спасибо за рассказ
Здравствуйте, SkyDance, Вы писали:
SD>Так в это время еще не было Elixir'а (который я считаю диалектом Erlang'а). Как мне кажется, сейчас интерес примерно такой же, просто распределен (фрагментирован).
В качестве небольшого отзыва.
На днях прочитал книгу Джо Армстронга по эрлангу, а сегодня закончил читать "Введение в Elixir". Очень все понравилось. Правда, к эрлангу пытался подступиться еще лет 15 назад, но тогда недоизучил, и кривая жизни свернула потом на хаскель, скалу и F#. А сейчас прямо я в восторге от обеих книг. Когда-то давным давно увлекался прологом, и прологовский синтаксис мне даже нравится — навевает воспоминания о юности. И когда-то в школе прочитал книжку по оккаму — тоже был тогда в полном восторге. Поэтому увидел много знакомых вещей в эрланге, тот же символ (!) для передачи сообщений.
Я так понимаю, меня должен ждать следующий этап? Попробовав эрланг или эликсир в деле, должен немного остыть потом? И, видимо, программируя на эрланге, всегда нужно иметь в виду закон Литтла, потому что здесь это особенно сильно проявляется?
И да, опыт с написанием серверов есть. Только там были C++ и еще скала.
В общем, хотел написать, что полезным делом занимаетесь и очень интересным, развивая эрланг