The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Новый выпуск фреймворка для создания сетевых приложений Ergo 1.2"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Новый выпуск фреймворка для создания сетевых приложений Ergo 1.2"  +/
Сообщение от opennews (ok), 08-Апр-21, 12:01 
После года разработки состоялся релиз фреймворка Ergo 1.2, реализующего полный сетевой стек Erlang и его библиотеку OTP на языке Go. Фреймворк предоставляет разработчику гибкий инструментарий из мира Erlang для создания распределённых решений на языке Go с помощью готовых шаблонов проектирования Application, Supervisor и GenServer. Поскольку в языке Go отсутствует прямой аналог процесса Erlang, то во фреймворке используются goroutine как основы для GenServer с обёрткой recover для возможности обработки исключительных ситуаций. Код проекта распространяется под лицензией MIT...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=54925

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  –6 +/
Сообщение от FortyTwo (ok), 08-Апр-21, 12:01 
9 контрибуторов? Не взлетит.
Ответить | Правка | Наверх | Cообщить модератору

3. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +9 +/
Сообщение от Леголас (ok), 08-Апр-21, 12:15 
но-но, правдами и неправдами Братство Кольца своей цели добилось
Ответить | Правка | Наверх | Cообщить модератору

5. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  –1 +/
Сообщение от A.Stahl (ok), 08-Апр-21, 12:30 
Ломать -- не строить. Одно дело фремворк написать, а другое дело оборудование в вулкан бросать.
Ответить | Правка | Наверх | Cообщить модератору

7. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от Леголас (ok), 08-Апр-21, 12:38 
> а другое дело оборудование в вулкан бросать

это значит в видео-драйвер добавить поддержку Vulkan API?)

Ответить | Правка | Наверх | Cообщить модератору

2. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +6 +/
Сообщение от Аноним (2), 08-Апр-21, 12:07 
А лет через 20 будут искать программистов на эрланге, поскольку старые отомрут, а код как работал, так и будет работать
Ответить | Правка | Наверх | Cообщить модератору

38. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +2 +/
Сообщение от Аноним (38), 09-Апр-21, 11:54 
пишу последние 7 лет на ерланге, могу сказать, что этот миф обычно звучит от людей, которые только слышали про ерланг, но в реальности его не использовали. да, он стабильно работает, но такую же стабильность можно достич и на другом языке с теми же ресурсными затратами.
Ответить | Правка | Наверх | Cообщить модератору

52. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от Аноним (52), 11-Апр-21, 18:21 
Обычно когда разработчики на эрланге покидают компанию их код переписывают с использованием других более распространненых технологий
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

4. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +1 +/
Сообщение от InuYasha (??), 08-Апр-21, 12:18 
Взвесьте мне полкило фреймворка для написания новой планеты, пожалуйста. На Си++.
Ответить | Правка | Наверх | Cообщить модератору

8. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от Аноним (8), 08-Апр-21, 12:57 
Сетевого? ASIO?
Ответить | Правка | Наверх | Cообщить модератору

24. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от Псевдоним (??), 08-Апр-21, 19:46 
И мне того же что и этому господину
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

6. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  –1 +/
Сообщение от Аноним (6), 08-Апр-21, 12:35 
КТО НА КОМ СТОЯЛ !?!?

Что на чем реализовано ?

Ответить | Правка | Наверх | Cообщить модератору

10. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  –1 +/
Сообщение от YetAnotherOnanym (ok), 08-Апр-21, 13:22 
Я так понял, что чуваки решили переписать Erlang/OTP на go. Ну, успехов, чо...
Ответить | Правка | Наверх | Cообщить модератору

9. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от Аноним (9), 08-Апр-21, 13:19 
Так и напрашивается proxy-сервер на этой штуке.
Ответить | Правка | Наверх | Cообщить модератору

11. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  –2 +/
Сообщение от YetAnotherOnanym (ok), 08-Апр-21, 13:31 
> используются goroutine как основы для GenServer с обёрткой recover для возможности обработки исключительных ситуаций

Кажется, это называется "химера", или, по-народному, "смесь бульдога с носорогом".
Предположу, что Джо Армстронг смотрит на всё это, свесив ноги с облака, и посмеивается в усы.

Ответить | Правка | Наверх | Cообщить модератору

15. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от имятакое (?), 08-Апр-21, 14:51 
а чем вам эта абстракция не нравится? аргументированно получится сформулировать?
Ответить | Правка | Наверх | Cообщить модератору

21. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  –2 +/
Сообщение от YetAnotherOnanym (ok), 08-Апр-21, 18:55 
> а чем вам эта абстракция не нравится? аргументированно получится сформулировать?

Попробую.
Уже есть код, в котором эти абстракции (gen_server, gen_supervisor) реализованы, причём они органично вписаны в язык с его концепцией "let it crash". Для того, чтобы реализовать эти абстракции на go, необходимо, фактически, надстроить над go целую систему примерно так же, как EVM построена на C. То есть, это - NIH и велосипединг. И опять-таки, для чего? Чтобы запускать прикладной код, нписанный на go, в виде чего-то, похожего на эрланговский gen_server? Для этого достаточно научиться писать NIF'ы на go.

Ответить | Правка | Наверх | Cообщить модератору

26. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +1 +/
Сообщение от имятакое (?), 08-Апр-21, 20:23 
вы как-то в сторону разговор увели. мне было инетресно, чем именно не нравится абстракция над горутиной?

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

так чем именно не подходит такая абстракция?

идея отправлять всех в ерланг, чтобы писать в ОТП стиле - так себе совет :). возможно вы недостаточно внимательно прочитали readme на странице проекта.

Ответить | Правка | Наверх | Cообщить модератору

33. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  –3 +/
Сообщение от Аноним (33), 09-Апр-21, 10:05 
В Го как известно есть серьезные проблемы с GC, поэтому, например, от него отказались в Discord-е. Как у Эрланга с этим по сравнению с Го?
Ответить | Правка | Наверх | Cообщить модератору

35. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +2 +/
Сообщение от имятакое (?), 09-Апр-21, 10:51 
>В Го как известно есть серьезные проблемы с GC

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

если вы на хайлоаде, то должны чуть глубже понимать подкапотное пространство. именно по этой причине ergo отпрофилирован и оптимизирован под хайлоад (используются техники stackless, resource pool, минимизировано использование shared channels).

Ответить | Правка | Наверх | Cообщить модератору

36. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +2 +/
Сообщение от имятакое (?), 09-Апр-21, 10:55 
забыл добавить, к той статье даже в комментариях очень много было вопросов про адекватность выводов и сути проблемы. так что весьма спорная статья, чтобы приводить ее в качестве аргументации.
Ответить | Правка | Наверх | Cообщить модератору

37. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от Мимокрокодил (?), 09-Апр-21, 11:01 
Когда абсолютно не в теме, но очень хочется что-то "умное" сказать ))).
Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

40. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от YetAnotherOnanym (ok), 09-Апр-21, 16:03 
А "не в сторону" - это ограничиться обсуждением исключительно технической стороны концепции gen_server над горутинами?
Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

41. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от имятакое (?), 09-Апр-21, 17:43 
вы всегда так уходите от ответа? либо в сторону, либо вопросом на вопрос? ))) не находите ли это отсутствием внятных аргументов в озвученных ранее мыслей?
Ответить | Правка | Наверх | Cообщить модератору

42. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от имятакое (?), 09-Апр-21, 17:50 
если вы потеряли ход мысли на какой вопрос я прошу ответить...

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

Ответить | Правка | К родителю #40 | Наверх | Cообщить модератору

43. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от имятакое (?), 09-Апр-21, 18:00 
чтобы было понятней, почему ваш комментарий не несет в себе смысла

>Уже есть код, в котором эти абстракции (gen_server, gen_supervisor) реализованы, причём они >органично вписаны в язык с его концепцией "let it crash". Для того, чтобы реализовать эти >абстракции на go, необходимо, фактически, надстроить над go целую систему примерно так же, как EVM >построена на C.

для начала... нет такого паттерна gen_supervisor. есть gen_server, supervisor, application. ну, там еще несколько других есть, но дерево супервизора обеспечивают эти три. концепция "let it crash" строится на стратегиях рестарта для паттернов supervisor и application (при этом под капотом каждого из них gen_server). в ergo эти паттерны реализованы ровно с такими же стратегиями - ровно та же концепция let it crash.

я лишь могу сделать выводы, что вы недостаточно внимательны были в прочтении README файла на странице проекта, либо недостаточно владеете предметом OTP, поскольку иначе бы не стали писать абсурдные выводы вроде "необходимо, фактически, надстроить над go целую систему примерно так же, как EVM построена на C".

Ответить | Правка | К родителю #40 | Наверх | Cообщить модератору

44. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от Мимокрокодил (?), 09-Апр-21, 18:23 
И то и другое. Расслабься, не сможет он аргументировать. Нечем.
Ответить | Правка | Наверх | Cообщить модератору

46. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  –2 +/
Сообщение от YetAnotherOnanym (ok), 10-Апр-21, 01:58 
Да, попутал название, каюсь - давно читал (у Армстронга в "Programming Erlang" в серии Pragmatic присутствуют оба названия поведениия - и "supervisor", и "gen_supervisor" - м.б. оттуда в голове засело). Только это не "паттерны", а "поведения", паттерны в Эрланге - это то что сопоставляется (ну, во введении в Design principles пару раз это слово употребляется применительно к процессам). Но это так, жонглирование словами.
А вот это: концепция "let it crash" строится на стратегиях рестарта для паттернов supervisor и application - это просто глупость. Концепция "let it crash" - это подход к обработке непредвиденных ситуаций, которые считаются неизбежными. И она вовсе не обязательно связана с перезапуском упавшего процесса. Нвпример, после краха процесса, обрабатывающего запрос, клиенту может быть отправлен код с ошибкой (типа HTTP 500 Internal Server Error), после чего соединение закрывается. Или просто процесс, связанный с рухнувшим, что-то запишет в лог и тоже завершится. И концепция "let it crash" не основана на стратегиях рестарта, это концепция Supervision tree основана на концепции "let it crash", и других фундаментальных концепциях, в частности - на концепции связанных процессов.
> недостаточно владеете предметом OTP

Я им вообще не владею. Я с ним когда-то из любопытства ознакомился.

Ответить | Правка | К родителю #43 | Наверх | Cообщить модератору

47. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +1 +/
Сообщение от Мимокрокодил (?), 10-Апр-21, 02:25 
Т.е. темой не владеем, а указывать как правильно лезем 😄. Про let it crash херню конечно наморозили, но это простительно для человека не в теме
Ответить | Правка | Наверх | Cообщить модератору

49. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от YetAnotherOnanym (ok), 10-Апр-21, 11:44 
Так кто ж вас заставляет лезть, если вы темой не владеете?
Ответить | Правка | Наверх | Cообщить модератору

48. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от имятакое (?), 10-Апр-21, 03:05 
тут уже выше написали, что вы, мягко говоря, неточны в своих выводах. поясню почему

>А вот это: концепция "let it crash" строится на стратегиях рестарта для паттернов supervisor и application - это просто глупость.

за это, родителей в школу

>И она вовсе не обязательно связана с перезапуском упавшего процесса.

за это, выгнать из школы

>Нвпример, после краха процесса, обрабатывающего запрос, клиенту может быть отправлен код с ошибкой (типа HTTP 500 Internal Server Error), после чего соединение закрывается.

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

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

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

PS: вся суть let it crash в том, что любой упавший процесс будет перезапущен ровно с теми же параметрами, с которыми он был запущен. внезапно, это те самые паттерны (behaviour, если быть педантичным в терминологии OTP), которые реализуют стратегии перезапуска (temporary, transient, permanent). не сочтите за труд, почитайте подробнее http://erlang.org/doc/design_principles/des_princ.html и перестаньте уже демонстрировать свое невежество.

Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

50. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от YetAnotherOnanym (ok), 10-Апр-21, 17:32 
Вы прислали мне ссылку на введении в Design principles - документ, который я сам упоминал как то единственное место в документации на OTP, в котором разные виды процессов названы "паттернами". Вы, вообще, внимательно читаете, что Вам пишут?
Если Вы и "кухню изучали" так же внимательно, то неудивительно, что Ваше понимание концепции "let it crash" ограничивается только супервизором в OTP, причём только как средства перезапустить упавший процесс.
> нет никакого соединения в этом процессе. и никто не разрывает его (от этого прям реально не смешно, а даже грустно стало).

Простите, Вы всерьез считаете, что я не понимаю разницы между понятиями "connection" (которое между хостами) и link (который между процессами, один из которых может быть socket owner того самого connection, а остальные - обработчиками, которые могут крашиться, и в этом случае socket owner отправляет клиенту сообщение об ошибке)?

Ответить | Правка | Наверх | Cообщить модератору

12. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от Аноним (12), 08-Апр-21, 13:46 
Последние бастионы добра рушатся.
Ответить | Правка | Наверх | Cообщить модератору

13. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  –2 +/
Сообщение от Аноним (13), 08-Апр-21, 13:50 
>>  Добавлена статическая маршрутизация, чтобы исключить обращение к EPMD для определения порта узла

Добавлен костыль чтобы закостылять дыру в костылях

Ответить | Правка | Наверх | Cообщить модератору

16. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +1 +/
Сообщение от Анончик (?), 08-Апр-21, 15:57 
Смущает только то что в OTP завязан на Erlang специфичные вещи и вот как эти паттены проектирования переносятся в golang я честно говоря боюсь даже смотреть. Хотя наверное стоит поглядеть.
Ответить | Правка | Наверх | Cообщить модератору

17. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  –3 +/
Сообщение от ябатька (?), 08-Апр-21, 15:58 
трата времени
Ответить | Правка | Наверх | Cообщить модератору

18. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от Аноним (-), 08-Апр-21, 16:33 
Понятное дело, каждый уважающий себя программист должен написать свой езыг с обвертками.
Ответить | Правка | Наверх | Cообщить модератору

19. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от WE (?), 08-Апр-21, 18:44 
У меня в детстве была книжка по C/C++, там выпускное упражнение как раз было создание компилятора для своего языка. Так что вы зря удивляетесь, некоторые просто сделали его с особым усердием.
Ответить | Правка | Наверх | Cообщить модератору

25. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от Псевдоним (??), 08-Апр-21, 19:55 
Насчёт усердия не знаю, но в предыдущие разы это были c# и nodejs. Я конечно понимал что это наркомания, но в какой то момент мне начали её предлагать из всех щелей, я просто их игнорировал, но количество вакансий и неувеличавшуюся собственную зарплату игнорировать было тяжелее, ещё тяжелее было пропускать проекты с хорошей идеей написанных наркоманами. С горя пришёл в кровавый интерпрайз и тут никто не спрашивает на чем ты хочешь писать, переписывать никто не даст, а предыдущий разработчик скорее всего уволился после того как переписал php на nodejs. Так что искоренять заразу надо в зародыше.
Ответить | Правка | Наверх | Cообщить модератору

27. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от Мимокрокодил (?), 08-Апр-21, 22:03 
Я извиняюсь, что прерываю вашу беседу... А вы точно читали о чем речь в новости?
Ответить | Правка | Наверх | Cообщить модератору

20. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  –4 +/
Сообщение от Урри (ok), 08-Апр-21, 18:48 
Про ежа и ужа уже шутили?
Ответить | Правка | Наверх | Cообщить модератору

23. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  –3 +/
Сообщение от Dzen Python (ok), 08-Апр-21, 19:25 
А зачем шутить, если лангерам теперь жрать эти три метра колючей проволоки?
Ответить | Правка | Наверх | Cообщить модератору

28. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от Док (?), 08-Апр-21, 22:13 
Пишу на го. Фреймворк обернул стандартные возможности в новые методы со своими менеджерами и еррорами. Типа пакета http но для других протоколов наверное

PS а всякие сишники стоят в сторонке и завидуют попердывая)

Ответить | Правка | Наверх | Cообщить модератору

29. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от имятакое (?), 08-Апр-21, 22:53 
мягко говоря, вы ошибаетесь про "обернул стандартные возможности в новые методы". загляните ради интереса в какой-нибудь из паттернов, в тот же gen_stage.go. а потом в dist протокол, а после в etf. не уверен, что это попадает в категорию "обернул стандартные возможности" ).
Ответить | Правка | Наверх | Cообщить модератору

34. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от Аноним (33), 09-Апр-21, 10:07 
с чего вдруг?! Все что ты могёшь сделать на го, мы легко сделаем (и делали много раз до всякого го) на Сишечушеньке
Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

51. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от _ (??), 11-Апр-21, 05:27 
:) Show this on C :
package main

import "fmt"

func main() {
    fmt.Println("Hello, 世界")
}

Ответить | Правка | Наверх | Cообщить модератору

32. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от Анатолий (??), 09-Апр-21, 05:48 
Прекрасная новость. Спасибо за работу!
Ответить | Правка | Наверх | Cообщить модератору

39. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  +/
Сообщение от Аноним (39), 09-Апр-21, 13:22 
пеши исчо
Ответить | Правка | Наверх | Cообщить модератору

45. "Новый выпуск фреймворка для создания сетевых приложений Ergo..."  –1 +/
Сообщение от Аноним (45), 09-Апр-21, 22:11 
tls1.3 он напрогал, go обновил, хопа tls обновился, запишем changelog
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
A-Real
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру