|
2.3, Леголас (ok), 12:15, 08/04/2021 [^] [^^] [^^^] [ответить]
| +11 +/– |
но-но, правдами и неправдами Братство Кольца своей цели добилось
| |
|
3.5, A.Stahl (ok), 12:30, 08/04/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ломать -- не строить. Одно дело фремворк написать, а другое дело оборудование в вулкан бросать.
| |
|
4.7, Леголас (ok), 12:38, 08/04/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> а другое дело оборудование в вулкан бросать
это значит в видео-драйвер добавить поддержку Vulkan API?)
| |
|
|
|
1.2, Аноним (2), 12:07, 08/04/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +5 +/– |
А лет через 20 будут искать программистов на эрланге, поскольку старые отомрут, а код как работал, так и будет работать
| |
|
2.38, Аноним (38), 11:54, 09/04/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
пишу последние 7 лет на ерланге, могу сказать, что этот миф обычно звучит от людей, которые только слышали про ерланг, но в реальности его не использовали. да, он стабильно работает, но такую же стабильность можно достич и на другом языке с теми же ресурсными затратами.
| |
2.52, Аноним (52), 18:21, 11/04/2021 [^] [^^] [^^^] [ответить]
| +/– |
Обычно когда разработчики на эрланге покидают компанию их код переписывают с использованием других более распространненых технологий
| |
|
1.4, InuYasha (??), 12:18, 08/04/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Взвесьте мне полкило фреймворка для написания новой планеты, пожалуйста. На Си++.
| |
1.11, YetAnotherOnanym (ok), 13:31, 08/04/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
> используются goroutine как основы для GenServer с обёрткой recover для возможности обработки исключительных ситуаций
Кажется, это называется "химера", или, по-народному, "смесь бульдога с носорогом".
Предположу, что Джо Армстронг смотрит на всё это, свесив ноги с облака, и посмеивается в усы.
| |
|
2.15, имятакое (?), 14:51, 08/04/2021 [^] [^^] [^^^] [ответить]
| +/– |
а чем вам эта абстракция не нравится? аргументированно получится сформулировать?
| |
|
3.21, YetAnotherOnanym (ok), 18:55, 08/04/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
> а чем вам эта абстракция не нравится? аргументированно получится сформулировать?
Попробую.
Уже есть код, в котором эти абстракции (gen_server, gen_supervisor) реализованы, причём они органично вписаны в язык с его концепцией "let it crash". Для того, чтобы реализовать эти абстракции на go, необходимо, фактически, надстроить над go целую систему примерно так же, как EVM построена на C. То есть, это - NIH и велосипединг. И опять-таки, для чего? Чтобы запускать прикладной код, нписанный на go, в виде чего-то, похожего на эрланговский gen_server? Для этого достаточно научиться писать NIF'ы на go.
| |
|
4.26, имятакое (?), 20:23, 08/04/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
вы как-то в сторону разговор увели. мне было инетресно, чем именно не нравится абстракция над горутиной?
поясню... в ерланге процесс - легковесная сущность с мейлбоксом. в ерго - горутина с буферизированным каналом в качестве мейлбокса. в ерланге процесс падает - никому дела нет. в голэнге горутина падает - через рекавер ловится и все также никому дела нет. в ерланге на базе этого сделали генсервер, чтобы создать супервизоринг. в ерго на базе обертки над горутиной также создан объект с теми же характеристиками как и генсервер. в ерлаге это дает хорошие возможности проектирования. что мешает использовать этот же опыт в голэнге?
так чем именно не подходит такая абстракция?
идея отправлять всех в ерланг, чтобы писать в ОТП стиле - так себе совет :). возможно вы недостаточно внимательно прочитали readme на странице проекта.
| |
|
5.33, Аноним (33), 10:05, 09/04/2021 [^] [^^] [^^^] [ответить]
| –3 +/– |
В Го как известно есть серьезные проблемы с GC, поэтому, например, от него отказались в Discord-е. Как у Эрланга с этим по сравнению с Го?
| |
|
6.35, имятакое (?), 10:51, 09/04/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
>В Го как известно есть серьезные проблемы с GC
вы как-то замалчиваете тот факт, что оперируете статьей 2х летней давности, в которой использовали Golang 4х летней давности. и это не считая того, что ребята там как-то странно сетовали на проблему из которой напрашивался один вывод - они не использовали пул ресурсов.
если вы на хайлоаде, то должны чуть глубже понимать подкапотное пространство. именно по этой причине ergo отпрофилирован и оптимизирован под хайлоад (используются техники stackless, resource pool, минимизировано использование shared channels).
| |
|
7.36, имятакое (?), 10:55, 09/04/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
забыл добавить, к той статье даже в комментариях очень много было вопросов про адекватность выводов и сути проблемы. так что весьма спорная статья, чтобы приводить ее в качестве аргументации.
| |
|
|
5.40, YetAnotherOnanym (ok), 16:03, 09/04/2021 [^] [^^] [^^^] [ответить]
| +/– |
А "не в сторону" - это ограничиться обсуждением исключительно технической стороны концепции gen_server над горутинами?
| |
|
6.41, имятакое (?), 17:43, 09/04/2021 [^] [^^] [^^^] [ответить]
| +/– |
вы всегда так уходите от ответа? либо в сторону, либо вопросом на вопрос? ))) не находите ли это отсутствием внятных аргументов в озвученных ранее мыслей?
| |
6.42, имятакое (?), 17:50, 09/04/2021 [^] [^^] [^^^] [ответить]
| +/– |
если вы потеряли ход мысли на какой вопрос я прошу ответить...
в первом сообщении вы процитировали текст про генсервер как абстракцию над горутиной и назвали это химерой. на что я попросил вас аргументированно сформулировать суть вашего комментария про "химеру". в чем именно вы находите "химерность" в реализации ergo дерева супервайзинга? если эта реализация "химера", то какая должна быть по вашему экспертному мнению правильная (эталонная, если хотите) реализация?
| |
6.43, имятакое (?), 18:00, 09/04/2021 [^] [^^] [^^^] [ответить]
| +/– |
чтобы было понятней, почему ваш комментарий не несет в себе смысла
>Уже есть код, в котором эти абстракции (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".
| |
|
7.46, YetAnotherOnanym (ok), 01:58, 10/04/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Да, попутал название, каюсь - давно читал (у Армстронга в "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
Я им вообще не владею. Я с ним когда-то из любопытства ознакомился.
| |
|
|
|
|
|
|
1.13, Аноним (13), 13:50, 08/04/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
>> Добавлена статическая маршрутизация, чтобы исключить обращение к EPMD для определения порта узла
Добавлен костыль чтобы закостылять дыру в костылях
| |
1.16, Анончик (?), 15:57, 08/04/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Смущает только то что в OTP завязан на Erlang специфичные вещи и вот как эти паттены проектирования переносятся в golang я честно говоря боюсь даже смотреть. Хотя наверное стоит поглядеть.
| |
|
2.18, Аноним (-), 16:33, 08/04/2021 [^] [^^] [^^^] [ответить]
| +/– |
Понятное дело, каждый уважающий себя программист должен написать свой езыг с обвертками.
| |
|
3.19, WE (?), 18:44, 08/04/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
У меня в детстве была книжка по C/C++, там выпускное упражнение как раз было создание компилятора для своего языка. Так что вы зря удивляетесь, некоторые просто сделали его с особым усердием.
| |
|
4.25, Псевдоним (??), 19:55, 08/04/2021 [^] [^^] [^^^] [ответить]
| +/– |
Насчёт усердия не знаю, но в предыдущие разы это были c# и nodejs. Я конечно понимал что это наркомания, но в какой то момент мне начали её предлагать из всех щелей, я просто их игнорировал, но количество вакансий и неувеличавшуюся собственную зарплату игнорировать было тяжелее, ещё тяжелее было пропускать проекты с хорошей идеей написанных наркоманами. С горя пришёл в кровавый интерпрайз и тут никто не спрашивает на чем ты хочешь писать, переписывать никто не даст, а предыдущий разработчик скорее всего уволился после того как переписал php на nodejs. Так что искоренять заразу надо в зародыше.
| |
|
|
|
1.28, Док (?), 22:13, 08/04/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Пишу на го. Фреймворк обернул стандартные возможности в новые методы со своими менеджерами и еррорами. Типа пакета http но для других протоколов наверное
PS а всякие сишники стоят в сторонке и завидуют попердывая)
| |
|
2.29, имятакое (?), 22:53, 08/04/2021 [^] [^^] [^^^] [ответить]
| +/– |
мягко говоря, вы ошибаетесь про "обернул стандартные возможности в новые методы". загляните ради интереса в какой-нибудь из паттернов, в тот же gen_stage.go. а потом в dist протокол, а после в etf. не уверен, что это попадает в категорию "обернул стандартные возможности" ).
| |
2.34, Аноним (33), 10:07, 09/04/2021 [^] [^^] [^^^] [ответить]
| +/– |
с чего вдруг?! Все что ты могёшь сделать на го, мы легко сделаем (и делали много раз до всякого го) на Сишечушеньке
| |
|
3.51, _ (??), 05:27, 11/04/2021 [^] [^^] [^^^] [ответить]
| +/– |
:) Show this on C :
package main
import "fmt"
func main() {
fmt.Println("Hello, 世界")
}
| |
|
4.53, anonymous (??), 21:09, 18/04/2021 [^] [^^] [^^^] [ответить]
| +/– |
Опять идиотов в тред завезли. Будет выглядеть так же. Ты, клоун, перед тем как херню из помоек ретранслировать гугли лучше, авось не опозоришься в следующий раз.
| |
|
|
|
1.45, Аноним (45), 22:11, 09/04/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
tls1.3 он напрогал, go обновил, хопа tls обновился, запишем changelog
| |
|