Этого треда уже нет.
Это копия, сохраненная 22 июня 2021 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Cамого МУЖЕСТВЕННОГО в мире языка Go тред №15 /go/ 1986204 В конец треда | Веб
Cамого МУЖЕСТВЕННОГО в мире языка Go тред №15 /go/

ТУПОЕБСКИЙ ХОМЯК ЭДИШН

Go или Golang — компилируемый язык программирования от создателей таких шедевров, как UTF–8, язык С, UNIX, Plan9 и других. Go поддерживает типобезопасность, богатую и универсальную стандартную библиотеку функций и инновационные семантики одновременности: все то, что мы в индустрии называем concurrency и parallelism. На сегодня язык Go является маяком стабильности, прагматичности, де факто представляет из себя стандарт в мире бэкенд–микросервисов и серверного оркестрирования.

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

Растобляди завидуют, сектантская запарта не переваривает.

С чего начать:
- В обязательном порядке проходим Go Tour: https://tour.golang.org/welcome/1 (есть на Русском)
- Читаем документацию прямо по порядку (пункт "Learning Go"): https://golang.org/doc/
- Ознакамливаемся с общим roadmap по изучению языка и сопутствующих инструментов: https://github.com/Alikhll/golang-developer-roadmap (постоянно обновляется сообществом)

Литература:
- Донован, Керниган "Язык программирования Go"
- Также хорошие книги для начала: https://www.golang-book.com/
- Книги из списка https://github.com/dariubs/GoBooks
- А также смотрим видео https://www.youtube.com/channel/UC_BzFbxG2za3bp5NRRRXJSw

Полезные дополнения:
- Сборник паттернов и инфы по микросервисам: https://microservices.io/

Обновляемый список с пакетами: https://github.com/avelino/awesome-go

Небольшой канал треда: t.me/golang2ch

Предыдущий тред умирает здесь: >>1905210 (OP)

Шаблон шапки: https://pastebin.com/61qHsr2T
2 1986207
Шарп лучше чем Go.
go-pravyy.jpg102 Кб, 1027x683
3 1986211
>>1986207
Расовое превосходство Go очевидно и не нуждается в доказательстве.

inb4 шарп спиздил модель зеленых тредов из го
4 1986216
>>1986211
Ты так говоришь, будто гринтреды изобрели в пщ, лол. Но даже если бы это было правдой, начнём с того, что все популярные языки спиздели лямбды из борщехлёбской хуйни без задач и спокойно живут себе, а борщехлёбская хуйня без задач так и осталась никому не нужной.
gosched.jpg39 Кб, 1024x660
5 1986222
>>1986216
Смотри конкретно модель реализации шедулера в Go и в шарпе, а потом попробуй разобраться кто у кого спиздил. Желательно чтобы ты больше не унижался. спасибо
6 1986226
>>1986222
В огороде бузина, а в Киеве дядька.
7 1986271
>>1986216

> все популярные языки спиздели лямбды из борщехлёбской хуйни без задач и спокойно живут себе, а борщехлёбская хуйня без задач так и осталась никому не нужной.


Так в этом и суть. Лямбды в мейнстримной параше появились только сейчас, а в том, что ты называешь борщехлебской хуйней, были ещё когда твоя бабка была молодая. Точно так же зависимые типы. В идрисе есть уже 15 лет, а в общепринятый мейнстрим завезут ещё через 15.
sage 8 1986275
>>1986204 (OP)
Пиздец. Ну и ограниченный язык.

Ну да, нахуй нужны эти ваши метапрограммирования, DSL, лямбды, ADT, logic programming, это же всё долбоебов придумывалась, а не для лаканичного и человекочитаемого кода сформированного в виде коротких формул.
9 1986277
Даже в самом первом языке программирования (Plankalkül) были эксепшены. А в го нет.
10 1986288
>>1986207
На счет шарпа не знаю, но от го отказываются крупные компании которые его же и пиарили 5 лет назад, включая сам гугол, стоит задуматься..
11 1986304
Go для макак. Proved.

> Так для чего же он был создан таким простым? Вот пара цитат Роба Пайка (прим.пер.: один из соавторов языка Go):



> Ключевой момент здесь, что наши программисты (прим.пер.: гуглеры) не исследователи. Они, как правило, весьма молоды, идут к нам после учебы, возможно изучали Java, или C/C++, или Python. Они не в состоянии понять выдающийся язык, но в то же время мы хотим, чтобы они создавали хорошее ПО. Именно поэтому их язык должен прост им для понимания и изучения.



> Он должен быть знакомым, грубо говоря похожим на Си. Программисты работающие в Google рано начинают свою карьеру и в большинстве своем знакомы с процедурными языками, в частности семейства Си. Требование в скорой продуктивности на новом языке программирования означает, что язык не должен быть слишком радикальным.

sage 12 1986306
>>1986304

> Что? Так Роб Пайк в сущности говорит, что разработчики в Google не столь хороши, потому они и создали язык для идиотов (прим.пер.: dumbed down), так чтобы они были в состоянии что-то сделать. Что за высокомерный взгляд на собственных коллег? Я всегда считал, что разработчики Google отобраны из самых ярких и лучших на Земле. Конечно они могут справиться с чем-то посложнее?

13 1986328
>>1986211
К слову, есть крутой спикер из Киева, Юрий Ярош
https://youtu.be/VyXUiPXJou4
14 1986331
>>1986277
В C их нет и ничего, тонны хорошего ну, постоянно проблемы с переполнением буфера, но это другой вопрос софта написали.
15 1986332

> я.ебать(твояМамка)


Чё за язык у вас, переменные можно использовать до их инициализации?
мимо безопасный свифт помидор
16 1986353
>>1986332
У нас на уровне языка нет понятия инициализации, есть только понятие объявления, var я Я
При этом в переменной "я" оказывается нулевое значение для типа "Я" (0 для чисел, false для булов, nil для поинтеров и т.д.)
Метод можно вызывать и у nil значения, что само по себе не запрещено. Правда всё упадет с паникой, если ты попытаешься этот nil задереференсить. Но у тебя метод может этого и не делать, например. Или сам проверить условный self на nil и обработать это как-то, например провести ленивую инициализацию, если необходимо.
Вообще, в go считается хорошим правило make zero value useful, в стандартной либе это реализовано в случае sync.Mutex и sync.WaitGroup, которые после объявления готовы к использованию. В остальных случаях обычно пишут функции-конструкторы.
17 1986377
>>1986353
На самом деле не совсем так, инициализация через make есть для 3-х типов: слайса, мапы и канала. Но там особая ситуация, т.к. там нужно указать length и/или capacity. В первых двух случаях это нужно для того, чтобы сразу аллоцировать достаточное кол-во памяти, чтобы потом при добавлении элементов не копировать несколько раз данные в новую область памяти.
18 1986391
>>1986331
Благодаря C компьютерные программы - самое ненадежное из всего созданного человеком.

Ну и сравнивать goвно с говняшной это конечно тоже нужно быть гением.
BqeGumIIV2ObCtEFNG1BbYnAgHNkZKWSPOmByDc.png80 Кб, 400x159
19 1986392
>>1986306

> Я всегда считал, что разработчики Google отобраны из самых ярких и лучших на Земле.


Туда официально белых не берут https://www.cnews.ru/news/top/2018-03-05_google_rasporyadilas_brat_na_rabotu_tolko_zhenshchin . А у остальных пикрелейтед. Алсо, пщ официально БЛМ параша, на сайте указано. Используешь пщ = сойбой, куколд.
DoHbgBkPRCk.jpg14 Кб, 640x320
20 1986406
Перенёс из предыдущего треда:

Гоферы, помогите разобраться
Пытаюсь осилить сей язык, параллельно решая маленькие задачки, наткнулся на просторах на упоминание задачки, где нужно инвертировать контент файла
И у меня вроде всё кое-как получилось, глазами вижу результат, но вот в самом конце содержимое выдать в stdout через ReadAll на 45 строчке не вышло, что я делаю не так? Вроде как Flush должен был решить проблему мою
https://play.golang.org/p/Nguk776CGI8
Файлик там простой, вида типа
1
2
3
21 1986408
>>1986406
Попытайся отделить логику (функцию, которая принимает io.Reader и io.Writer) от реального взаимодействия с файлами. Скорее всего у тебя проблема во втором. И да, bufio.Writer.Flush не флашит сам файл, он именно сбрасывает буфер из bufio.Writer'а
22 1986422
>>1986304
Ты такой умник, что запостил это в ML–треде >>1986303 → перед тем как попасть в правильный. Давай разберем все Робом пайком написанное, в этот раз без лишних иллюзий и маня–фантазий.

>наши программисты (прим.пер.: гуглеры) не исследователи.


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

>Они не в состоянии понять выдающийся язык, но в то же время мы хотим, чтобы они создавали хорошее ПО.


Это неправильный перевод. Brilliant скорее переводится как блестящий, а не выдающийся. Тут есть tongue–in–cheek со стороны Пайка, а именно стоит сперва обратить внимание на то, кто такой Роб пайк и какой у него бекграунд. Роб пайк — это чувак, который бОльшую часть своей жизни провел в чистой воды расовой исследовательской среде, где не гуглеры, а реальные исследователи, проедатели R&D корпобюджетов и всяких грантов от американских исследовательских институтов. Там же он своими руками создал UNIX, там же создал plan9 и ты удивишься, но в списке его заслуг можно найти Newsquak, Limbo и другие прорывные на тот момент технологии. Не говоря уже о самом большом его достижении, plan9, это вообще навеки оставило его в пантеоне величайших компьютерных исседователей. Теперь, лапочка, когда ты понял бекграунд этого чувака, ты должен понимать значение этой цитаты. Одно дело фантазировать на тему, а другое дело выполнять работу (продвигать техническое решение вперед) и поверь, Роб пайк не имеет никаких иллюзий на этот счет. Пайка и Томпсона пригласили работать в гулаг. Они поработали, чето там поделали (я даже не хочу вспоминать sawzall, пожалуйста, не надо) и у них появились определенные претензии к тому С++ и джаве, что на тот момент использовались в 95% кода гугла, в связи с чем они решили сделать свой язык. Это нормально. Как оказалось, помимо нормальности, этот язык еще оказался связан и с успехом. Потому что делали его профи, а не какие–то феминные томбои из университета, которым нужно что–то кому–то доказывать. Никому из создателей Go не надо ничего доказывать, их желания полностью сопряжены с рабочими задачами, с продвижением технического решения вперед. Это именно то, что Go позволяет делать. Не фантазировать, не умничать, не заниматься "искусством" я вообще ору со всех программистишек, которые думают что в этом ремесле больше искусства, чем например в литье а делать то, за что тебе платят деньги. Продвигать. техническое. решение. ВПЕРЕД

>Он должен быть знакомым, грубо говоря похожим на Си.


Совершенно верно. В любом ремесле, предпочтение всегда отдается более привычным инструментам.

>Что? Так Роб Пайк в сущности говорит, что разработчики в Google не столь хороши, потому они и создали язык для идиотов


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

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

>Что за высокомерный взгляд на собственных коллег?


Иметь реальный, адекватный взгляд на вещи — это не высокомерие. Пайк держит своих "коллег" за тех, кем они являются — кодерами на зарплате, единственная задача которых, я повторюсь, продвигать техническое решение вперед. Поэтому он подарил нам Go — язык, который, на его взгляд, максимально эффективно позволяет справляться с этой задачей.

>Конечно они могут справиться с чем-то посложнее?


Не могут. Ты когда–то был в литейном цехе? Клещи, изложница — ты не найдешь там сложных инструментов. Потому что они не нужны в этом рабочем процессе. Все кто считают иначе — нихуя не понимают в ремесле.
22 1986422
>>1986304
Ты такой умник, что запостил это в ML–треде >>1986303 → перед тем как попасть в правильный. Давай разберем все Робом пайком написанное, в этот раз без лишних иллюзий и маня–фантазий.

>наши программисты (прим.пер.: гуглеры) не исследователи.


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

>Они не в состоянии понять выдающийся язык, но в то же время мы хотим, чтобы они создавали хорошее ПО.


Это неправильный перевод. Brilliant скорее переводится как блестящий, а не выдающийся. Тут есть tongue–in–cheek со стороны Пайка, а именно стоит сперва обратить внимание на то, кто такой Роб пайк и какой у него бекграунд. Роб пайк — это чувак, который бОльшую часть своей жизни провел в чистой воды расовой исследовательской среде, где не гуглеры, а реальные исследователи, проедатели R&D корпобюджетов и всяких грантов от американских исследовательских институтов. Там же он своими руками создал UNIX, там же создал plan9 и ты удивишься, но в списке его заслуг можно найти Newsquak, Limbo и другие прорывные на тот момент технологии. Не говоря уже о самом большом его достижении, plan9, это вообще навеки оставило его в пантеоне величайших компьютерных исседователей. Теперь, лапочка, когда ты понял бекграунд этого чувака, ты должен понимать значение этой цитаты. Одно дело фантазировать на тему, а другое дело выполнять работу (продвигать техническое решение вперед) и поверь, Роб пайк не имеет никаких иллюзий на этот счет. Пайка и Томпсона пригласили работать в гулаг. Они поработали, чето там поделали (я даже не хочу вспоминать sawzall, пожалуйста, не надо) и у них появились определенные претензии к тому С++ и джаве, что на тот момент использовались в 95% кода гугла, в связи с чем они решили сделать свой язык. Это нормально. Как оказалось, помимо нормальности, этот язык еще оказался связан и с успехом. Потому что делали его профи, а не какие–то феминные томбои из университета, которым нужно что–то кому–то доказывать. Никому из создателей Go не надо ничего доказывать, их желания полностью сопряжены с рабочими задачами, с продвижением технического решения вперед. Это именно то, что Go позволяет делать. Не фантазировать, не умничать, не заниматься "искусством" я вообще ору со всех программистишек, которые думают что в этом ремесле больше искусства, чем например в литье а делать то, за что тебе платят деньги. Продвигать. техническое. решение. ВПЕРЕД

>Он должен быть знакомым, грубо говоря похожим на Си.


Совершенно верно. В любом ремесле, предпочтение всегда отдается более привычным инструментам.

>Что? Так Роб Пайк в сущности говорит, что разработчики в Google не столь хороши, потому они и создали язык для идиотов


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

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

>Что за высокомерный взгляд на собственных коллег?


Иметь реальный, адекватный взгляд на вещи — это не высокомерие. Пайк держит своих "коллег" за тех, кем они являются — кодерами на зарплате, единственная задача которых, я повторюсь, продвигать техническое решение вперед. Поэтому он подарил нам Go — язык, который, на его взгляд, максимально эффективно позволяет справляться с этой задачей.

>Конечно они могут справиться с чем-то посложнее?


Не могут. Ты когда–то был в литейном цехе? Клещи, изложница — ты не найдешь там сложных инструментов. Потому что они не нужны в этом рабочем процессе. Все кто считают иначе — нихуя не понимают в ремесле.
23 1986426
>>1986332
Переменная инициализировалась по умолчанию когда ты ее объвил на стеке при помощи var. Все нормально.
24 1986430
>>1986391
Бла Бла Бла, тупые аргументы–не–аргументы от маня–фантазера, который не знает:

(а) историю вычислений, портабельности софта
(б) обстоятельств рынка производства ПО
(в) ...судя по сказанному, ничего другого он тоже знать не может...
25 1986431

>Растобляди завидуют,


Нет конечно. В сегменте низкоуровневых языков раст самый выразительный - зачем его вообще сравнивать с языками со сборкой мусора.
26 1986436
>>1986422
И каким образом порезанность языка, отсутствие в нем элементарных фич, помогает "продвигать техническое решение"? Элементарно кода в разы больше писать приходится. Приходится концентрироваться не на логике, а на костылях.
27 1986441
>>1986436
У тебя методичка дырявая, протекает. Ничего "элементарного" в этом нет, приходи когда узнаешь что такое нюансы и компромиссы.
28 1986461
>>1986430
Как-то похуй чем там исторически обусловленна убогость и околонулевая выразительность говняшной, и по каким нелепым причинам она получила такое широкое распространение в свое время. Даже если тому были некие непреодолимые причины, это никак не меняет того, что это обьективно хуевый язык, совершенно не приспособленный для написания чего-либо сложнее автоматизации сливных бачков, и что все нужно было делать по-другому.
aNzY160460s.jpg24 Кб, 460x541
29 1986473
Вы не думойте, вы код пилите. Ишь развелось тут фелосафов!
30 1986475
>>1986408
Не совсем понял, как тогда реально взаимодействовать с файлами, если не через ридеры-врайтеры, но спасибо за ответ! Попробую покопаться ещё, нагуглить много не получилось
sage 31 1986476
>>1986422

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


Ты не прав. Программирование - искусство. Вернее математика - это искусство, прекрасная и идеальная база нашей реальности, а программирование это просто способ оформить формулы как нечто реальное.
https://youtu.be/DxfEbulyFcY
https://youtu.be/lctXaT9pxA0
https://youtu.be/X-iSQQgOd1A
32 1986480
>>1986431
Никто кроме растеров не сравнивает эту парашу с нормальными языками. Это кокрастоке растобляди–маргиналы лезут в нормальные немаргинализированные отрасли со своими советами и рекоммендациями насчет того, как правильно на самом деле делать вещи.
sage 33 1986482
>>1986480
Ты перепутал растеров с хаскеллистами.
34 1986486
>>1986480
Но ведь остальные языки действительно неправильные. Ансейф, GC, WUT-моменты на каждом шагу.
35 1986511
>>1986482
Что растеры, что хаскелисты — это все сорта одного и того же запартного говна.
36 1986524
>>1986441
По существу хоть когда-нибудь что-нибудь напишешь?

Алсо, насчет нюансов:

>Василь Иваныч, а что такое «нюанс»?


>Ну, Петька, это так не объяснишь, это показывать надо… Становись-ка раком да скидавай портки.


>Петька встал, Василь Иваныч сзаду заехал и говорит:


>Вот видишь, Петька, у тебя хуй в жопе, и у меня хуй в жопе. Но есть один нюанс!

37 1986528
Ого сколько шизиков набежало.
38 1986538
>>1986524
Ты сам не по существу пишешь, вот тебе шаблон:

- Go - хуйня недоязык.
- А вот мой %язык-нейм% изящный и правильный.
39 1986539
>>1986524
Хороший анекдот. А что тебе по–существу сказать? Раст — это ворованная LLVM параша, если в 2012 году еще казалось что из этого исследовательского языка может получиться что–то годное, чтобы оно имело собственный путь, то сейчас от этих иллюзий ничего не осталось. Гошечка пошла по совсем другому, своему пути, где с самого начала центровые чуваки сказали что на уступки идеологам никто идти не собирается и в результате смогли сохранить свою идентичность. Ты говоришь "порезанность языка" будто это что–то плохое, а у меня есть эмперические данные что эта порезанность — это в данном случае не баг, а фича, что говорится. Ты говоришь приходится концентрироваться на "костылях", но я в своей практике работы с го редко когда встречаю костыли. Обычно это очень предметный код, где за 10 минут ревью ты сразу видишь места для оптимизаций, а все структурные ошибки набитым глазом выкупаются еще быстрее. Элементарно — это когда тебе не надо задротить, а решение продвигается будто само по себе. Растобляди воняют насчет полиморфизма, хотя на самом деле в расте этого полиморфизма и нет–то, ну ладно в последнем релизе добавили константные дженерики, только смыслу? Все равно это все уже в С++ есть много лет и дает больше возможностей. Что касается го, так тут с самого начала всем сказали что "будем мономорфизировать" и это работает. Компилируется все быстро, кодогенерация есть в стандартной библиотеке и опять–таки, дает много больше возможстей, чем ограниченные говномакросы в том же расте. Ты генерируешь один раз, а потом компилируешь — и компилируешь быстро. Да, мономорфизация, да, нет каких–то там гарантий, но это никому не мешает. Потому что у языка есть какой–то свой путь, который четко обусловлен обстоятельствами его использования, а не фантазиями насчет того, как должны выглядеть воображаемые пирамидки в коде. Какую конкретику я могу тебе предоставить? Для кого–то программирование это средство достижения поставленных задач, для нормальных пацанов, а для кого–то это какая–то бесконечная игра в фантазию, которая заканчивается не продуктом, а такими же фантазиями. Если получится довести до рынка — уже успех, в то время как в любой другой немаргинализированной среде это только база. Подразумевается что без этого не может быть никаких разговоров, у маргиналов это не подразумевается.
39 1986539
>>1986524
Хороший анекдот. А что тебе по–существу сказать? Раст — это ворованная LLVM параша, если в 2012 году еще казалось что из этого исследовательского языка может получиться что–то годное, чтобы оно имело собственный путь, то сейчас от этих иллюзий ничего не осталось. Гошечка пошла по совсем другому, своему пути, где с самого начала центровые чуваки сказали что на уступки идеологам никто идти не собирается и в результате смогли сохранить свою идентичность. Ты говоришь "порезанность языка" будто это что–то плохое, а у меня есть эмперические данные что эта порезанность — это в данном случае не баг, а фича, что говорится. Ты говоришь приходится концентрироваться на "костылях", но я в своей практике работы с го редко когда встречаю костыли. Обычно это очень предметный код, где за 10 минут ревью ты сразу видишь места для оптимизаций, а все структурные ошибки набитым глазом выкупаются еще быстрее. Элементарно — это когда тебе не надо задротить, а решение продвигается будто само по себе. Растобляди воняют насчет полиморфизма, хотя на самом деле в расте этого полиморфизма и нет–то, ну ладно в последнем релизе добавили константные дженерики, только смыслу? Все равно это все уже в С++ есть много лет и дает больше возможностей. Что касается го, так тут с самого начала всем сказали что "будем мономорфизировать" и это работает. Компилируется все быстро, кодогенерация есть в стандартной библиотеке и опять–таки, дает много больше возможстей, чем ограниченные говномакросы в том же расте. Ты генерируешь один раз, а потом компилируешь — и компилируешь быстро. Да, мономорфизация, да, нет каких–то там гарантий, но это никому не мешает. Потому что у языка есть какой–то свой путь, который четко обусловлен обстоятельствами его использования, а не фантазиями насчет того, как должны выглядеть воображаемые пирамидки в коде. Какую конкретику я могу тебе предоставить? Для кого–то программирование это средство достижения поставленных задач, для нормальных пацанов, а для кого–то это какая–то бесконечная игра в фантазию, которая заканчивается не продуктом, а такими же фантазиями. Если получится довести до рынка — уже успех, в то время как в любой другой немаргинализированной среде это только база. Подразумевается что без этого не может быть никаких разговоров, у маргиналов это не подразумевается.
40 1986549
>>1986538

> - Go - хуйня недоязык.


> - А вот мой %язык-нейм% изящный и правильный.


Все верно. Что не так?
41 1986552
>>1986539

> Ты говоришь "порезанность языка" будто это что–то плохое


Это сука и есть зло. Зло в чистом виде. Ненавижу всяки питухоны, и жс-ы из-за того, что они нихуя не расширяемые, и любой код, что выходит за пределы их юзкейсов и возможностей превращается в нечитаемое, уродливое нечто.
мимо лиспо-пролого-боярин
42 1986557
>>1986539

> кодогенерация есть


Макака, котарая не знает про DRY, ты? Хватит оправдывать своё говно на костылях
43 1986559
>>1986539

>пок пок свой путь кококок не баг а фича нормальные пацаны just use for loops



Что-то ничему новому за столько лет гопетухи так и не научились.
Ну давай ты хоть расскажешь про эти эти самые

>эмперические данные про то что порезанность - хорошо



Только плиз без смехотворных фантазий про

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



Потому как в процедурных гоу-полотнах вся предметность растворяется в низкоуровневых (а других в гоувне просто нет) тумба-юмба деталях реализации и никакая доменная логика так не проглядывается, пока не прочтешь все целиком снизу-вверх 3 раза.

>Элементарно — это когда тебе не надо задротить, а решение продвигается будто само по себе.


Это называется duct tape programming который работает хорошо только кода пишешь манясервисы на 300 строк, и если нужно что-то менять, то весь код просто выбрасывается и пишется по новой.
Гоу в принципе не подходит для монолитов и даже для SOA, онли микросервисы, просто потому что язык другого не позволяет. А перекладывать архитектурные задачи на инфраструктуру - ну такое, конечно модная тема была лет 5 назад, но многие уже обожглись и спрыгнули.
44 1986576
>>1986538
Ни разу ничего такого я не писал, считаю все существующие на данный момент неборщехлебные языки говнищем. Голанг где-то лучше, где-то хуже. Иначе я бы в этом треде не сидел.
45 1986596
>>1986539
А я наоборот четкую идеологию в ущерб удобству и здравому смыслу только в go вижу. На любой вопрос почему в этом языке нету X адепты голанга начинают улулюкать и рассказывать что X НИНУЖНО, как им хорошо живется без X, X это вообще неправильно и т.д.
46 1986613
>>1986559

> Потому как в процедурных гоу-полотнах вся предметность растворяется в низкоуровневых (а других в гоувне просто нет) тумба-юмба деталях реализации и никакая доменная логика так не проглядывается, пока не прочтешь все целиком снизу-вверх 3 раза.


Двачну. Современный Паскаль какой-то. Поскорее бы похоронили это говно, чтобы глаща не мозолило.
47 1986617
Всё сретесь? Скажите лучше, почему готовый бинарник так дохуя отладочных данных содержит?
48 1986620
>>1986617
Потому что го-вно. У него еще и работой с памятью сборщик мусора отвечает прям в рантайме занимается, знал?
49 1986649
>>1986559

>нормальные пацаны just use for loops


А нет разве? Или ты думаешь что если тебе комбинаторы завезли, то ты сразу супермозг? Внезапно, оказывается, на линейных комбинаторах много не напишешь! Ну, до тих пор пока тебе нужно делать какие–то тривиальные преобразования, по типу собрать сумму по списку, то наверное, напишешь, но как только оказывается что логика список негомогененная, и где–то возникают новые порядки, сразу комбинаторы садятся на жопу. Это, кстати, очень связанно с параллелизмом, см. такие языки как Futhark, где это большая проблема — запихнуть логику в комбинаторы второго порядка, чтобы сохранить при этом все плюшки многоядерности в GPU.

>Потому как в процедурных гоу-полотнах вся предметность растворяется в низкоуровневых


Это не так. На низком уровне у тебя низкоуровневые детали, на более высоком уровне — высокоуровневые. Что тебя смущает, обработка ошибок? Или все–таки отсутствие комбинаторов на уровне языка? Плиз, с ошибками все просто: ты либо их обрабатываешь, либо нет. Го делает очень больно, если ты их не обрабатываешь. А что касается комбинаторов и прочей Фпараши, так я могу только дать флаг в руки: большинство прикладных задач наивно не помещаются в комбинаторную логику, а ненаивный подход создает такие накладные расходы, что с таким успехом можно сразу и на фортране писать. Не смеши мои носки.

>никакая доменная логика так не проглядывается


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

>Это называется duct tape programming который работает хорошо только кода пишешь манясервисы на 300 строк


Я не хочу открывать для тебя секреты, но duct tape progamming это в принципе весь programming в целом. Если ты думаешь иначе, то у тебя банально мозги промыты какой–то методичкой, которая утверждает иначе. "Ну у нас–то мы действительно делаем правильно!" Это такая глупость, которая в 2021 году даже не требует внимания, настолько очевидно, что это глупость. Ты вообще хоть день программировал в нормально конторе? Представляешь себе немного, как выглядит любой технический процесс? Скажи мне, ололо мастер правильного программирования, что это такое, как не duct tape programming? Разница заключается лишь в том, как ты относишься к этому процессу, вставляешь ли ты палки в колеса, или решаешь эти проблемы?? На этом этапе и становится ясно, что ты либо клеишь изоленту, либо ее отдираешь. По сути, третьего не дано. Все, кто говорят иначе — просто дешевые пиздаболы, которые пытаются продать свою (очередную) секту. Вся суть ремесла в том, чтобы писать грамотный код в инварианте, а не пытаться подогнать его под какую–то конкретную логику, которая тебе кажется эстетичной. Надеюсь, ты когда–то это поймешь.

>А перекладывать архитектурные задачи на инфраструктуру


С подключением. Все "архитектурные", как ты говоришь, задачи — это задачи инфраструктуры. Код должен выполнять конкретные манипуляции между устройствами ввода и вывода за оптимальное время. По этой причине ORM это параша (покажи мне хотя бы одну ORM которая используется в гугле/фейсбуке/амазоне/да где угодно) и ровно по этой же причине любой дроч на "конструкции" такой же бесполезный, потому что в конце–концов это просто манипуляции поверх I/O, а мы уже очень, очень давно, умеем писать эту хуйню. Ты говоришь сишка с ее переполнениями, ок, но это даже 15 лет как не является стандартом. Все кто пишут на сишке сегодня — пишут на ней совсем иначе, как писали на ней 20 лет назад. Переполнения? Плиз. Тебе предлагается оставить свою методичку в другом месте, завалить ебало и писать корректные вещи, завместо нытья по поводу выдуманных вещей.
49 1986649
>>1986559

>нормальные пацаны just use for loops


А нет разве? Или ты думаешь что если тебе комбинаторы завезли, то ты сразу супермозг? Внезапно, оказывается, на линейных комбинаторах много не напишешь! Ну, до тих пор пока тебе нужно делать какие–то тривиальные преобразования, по типу собрать сумму по списку, то наверное, напишешь, но как только оказывается что логика список негомогененная, и где–то возникают новые порядки, сразу комбинаторы садятся на жопу. Это, кстати, очень связанно с параллелизмом, см. такие языки как Futhark, где это большая проблема — запихнуть логику в комбинаторы второго порядка, чтобы сохранить при этом все плюшки многоядерности в GPU.

>Потому как в процедурных гоу-полотнах вся предметность растворяется в низкоуровневых


Это не так. На низком уровне у тебя низкоуровневые детали, на более высоком уровне — высокоуровневые. Что тебя смущает, обработка ошибок? Или все–таки отсутствие комбинаторов на уровне языка? Плиз, с ошибками все просто: ты либо их обрабатываешь, либо нет. Го делает очень больно, если ты их не обрабатываешь. А что касается комбинаторов и прочей Фпараши, так я могу только дать флаг в руки: большинство прикладных задач наивно не помещаются в комбинаторную логику, а ненаивный подход создает такие накладные расходы, что с таким успехом можно сразу и на фортране писать. Не смеши мои носки.

>никакая доменная логика так не проглядывается


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

>Это называется duct tape programming который работает хорошо только кода пишешь манясервисы на 300 строк


Я не хочу открывать для тебя секреты, но duct tape progamming это в принципе весь programming в целом. Если ты думаешь иначе, то у тебя банально мозги промыты какой–то методичкой, которая утверждает иначе. "Ну у нас–то мы действительно делаем правильно!" Это такая глупость, которая в 2021 году даже не требует внимания, настолько очевидно, что это глупость. Ты вообще хоть день программировал в нормально конторе? Представляешь себе немного, как выглядит любой технический процесс? Скажи мне, ололо мастер правильного программирования, что это такое, как не duct tape programming? Разница заключается лишь в том, как ты относишься к этому процессу, вставляешь ли ты палки в колеса, или решаешь эти проблемы?? На этом этапе и становится ясно, что ты либо клеишь изоленту, либо ее отдираешь. По сути, третьего не дано. Все, кто говорят иначе — просто дешевые пиздаболы, которые пытаются продать свою (очередную) секту. Вся суть ремесла в том, чтобы писать грамотный код в инварианте, а не пытаться подогнать его под какую–то конкретную логику, которая тебе кажется эстетичной. Надеюсь, ты когда–то это поймешь.

>А перекладывать архитектурные задачи на инфраструктуру


С подключением. Все "архитектурные", как ты говоришь, задачи — это задачи инфраструктуры. Код должен выполнять конкретные манипуляции между устройствами ввода и вывода за оптимальное время. По этой причине ORM это параша (покажи мне хотя бы одну ORM которая используется в гугле/фейсбуке/амазоне/да где угодно) и ровно по этой же причине любой дроч на "конструкции" такой же бесполезный, потому что в конце–концов это просто манипуляции поверх I/O, а мы уже очень, очень давно, умеем писать эту хуйню. Ты говоришь сишка с ее переполнениями, ок, но это даже 15 лет как не является стандартом. Все кто пишут на сишке сегодня — пишут на ней совсем иначе, как писали на ней 20 лет назад. Переполнения? Плиз. Тебе предлагается оставить свою методичку в другом месте, завалить ебало и писать корректные вещи, завместо нытья по поводу выдуманных вещей.
50 1986664
>>1986596

>в ущерб удобству и здравому смыслу


А как ты себе вообще представляешь что такое здравый смысл? Рассел говорит: "Есть одна рука, есть другая рука, значит реальность существует и в ней есть хотя бы две руки." Ахуенный аргумент, только вот ни в каком формализме он смысла не имеет и если ты дольше двух дней в этой теме, то ты понимаешь что это тупо дроч на семантику. Что такое здравый смысл? Комбинаторы — это здравый смысл? Если ты математик–комбинаторик, то это вообще единственный смысл. Если ты алгебраист, то внезапно, это глупость, потому что львиную долю форм ты так не запишешь.

>На любой вопрос почему в этом языке нету X адепты голанга начинают улулюкать и рассказывать что X НИНУЖНО, как им хорошо живется без Х


Да потому что им действительно хорошо живется без этой хуйни. О какой хуйне идет речь? Дженерики? Пожалуйста, умники, мне приходилось писать сложные структуры данных, распределенные балансные деревья и прочью хуйню — каждый раз ты пишешь эту хуйню по–разному. Внезапно, это не учебник по computer science, есть реальные ограничения и ты вокруг этих ограничений танцуешь. Толковый чувак напишет эту дрянь на любом языке, быдло ничего не напишет и будет только лишь ныть про дженерики. У нас в С++ есть дженерики последние 30 лет и что? Ты сильно в восторге от С++? Я не думаю. Львиную долю жизнь я прописал на С++ и не могу сказать что потратил время как–то особенно хорошо. Ну да, есть полиморфизм, ну да, пишешь умно, но какой ценой? Нельзя делать вид, что на поддержку, в коде, этих потуг не уходит 50% времени. Уходит ведь. Потому что это потуги, потому что это дроч на очередные "пирамидки", на очередную семантику, которой СДВГшный программист пытается занять себе мозги, вместо продукта, который он разрабатывает.

Если речь идет об обработке ошибок, то см. выше что я писал. Ты либо обрабатываешь ошибки, либо ты этого не делаешь. Го делает больно, когда ты этого не делаешь. Все очень просто, "магически", по мановению палочки, ничего нигде не обрабатывается. Остальные пререкания это просто дроч на семантику того, как ты это делаешь. В го этого дроча нет.

Других "проблем" в го нет.
50 1986664
>>1986596

>в ущерб удобству и здравому смыслу


А как ты себе вообще представляешь что такое здравый смысл? Рассел говорит: "Есть одна рука, есть другая рука, значит реальность существует и в ней есть хотя бы две руки." Ахуенный аргумент, только вот ни в каком формализме он смысла не имеет и если ты дольше двух дней в этой теме, то ты понимаешь что это тупо дроч на семантику. Что такое здравый смысл? Комбинаторы — это здравый смысл? Если ты математик–комбинаторик, то это вообще единственный смысл. Если ты алгебраист, то внезапно, это глупость, потому что львиную долю форм ты так не запишешь.

>На любой вопрос почему в этом языке нету X адепты голанга начинают улулюкать и рассказывать что X НИНУЖНО, как им хорошо живется без Х


Да потому что им действительно хорошо живется без этой хуйни. О какой хуйне идет речь? Дженерики? Пожалуйста, умники, мне приходилось писать сложные структуры данных, распределенные балансные деревья и прочью хуйню — каждый раз ты пишешь эту хуйню по–разному. Внезапно, это не учебник по computer science, есть реальные ограничения и ты вокруг этих ограничений танцуешь. Толковый чувак напишет эту дрянь на любом языке, быдло ничего не напишет и будет только лишь ныть про дженерики. У нас в С++ есть дженерики последние 30 лет и что? Ты сильно в восторге от С++? Я не думаю. Львиную долю жизнь я прописал на С++ и не могу сказать что потратил время как–то особенно хорошо. Ну да, есть полиморфизм, ну да, пишешь умно, но какой ценой? Нельзя делать вид, что на поддержку, в коде, этих потуг не уходит 50% времени. Уходит ведь. Потому что это потуги, потому что это дроч на очередные "пирамидки", на очередную семантику, которой СДВГшный программист пытается занять себе мозги, вместо продукта, который он разрабатывает.

Если речь идет об обработке ошибок, то см. выше что я писал. Ты либо обрабатываешь ошибки, либо ты этого не делаешь. Го делает больно, когда ты этого не делаешь. Все очень просто, "магически", по мановению палочки, ничего нигде не обрабатывается. Остальные пререкания это просто дроч на семантику того, как ты это делаешь. В го этого дроча нет.

Других "проблем" в го нет.
51 1986672
>>1986617
Если ты обрабатываешь ошибки, то тебе не нужны "отладочные данные" в проде. В протвином случае ты принимаешь решение НЕ обрабатывать ошибки. ОК, это легетимное решение. Поэтому тебе дают отладочные данные. Не хочешь их иметь? Для этого есть сборочные флаги, которые их исключают.

По умолчанию, предполагается что ты ленивый (так и есть).
52 1986742
>>1986204 (OP)

>ГОвноЛанг


>компетентные профи


Чет проиграл с такой самоироничной толстоты в шапке, лол.

мимо
53 1986813
>>1986649

>Внезапно, оказывается, на линейных комбинаторах много не напишешь


Вот это кстати действительно горькая правда, куда легче написать и понять:
for {
c1 <- colorList
c2 <- colorList
if c2 != c1
c3 <- colorList
if c3 != c2 && c3 != c1
}

Чем начать городить какую-то хуйню с комбинаторами. Хотя в той же скале это всего лишь синтаксический сахар.
54 1987012
>>1986813
Удвою это, нахуй комбинаторы!
55 1987204
>>1986672
довен, даже при установке флагов - бинарник дохуя отладочных данных содержит. Все функции в таблице экспорта, вопрос - нахуя? Если я их не импортирую.
56 1987706
>>1987204
Затем что если готовый бинарник будет весить 10кб, а не 20мб, никто не будет покупать винты. Если бинарник будет жрать 650кб, а не полгига, никто не купит память. И так далее.
57 1987710
>>1987706
а еще коронавирус придумали чтобі нас всех убіть
58 1987903
>>1986204 (OP)
Когда попросил одноклассников не приносить в /pr/ goвняк
59 1987945
>>1986649

> Что тебя смущает, обработка ошибок? Или все–таки отсутствие комбинаторов на уровне языка?


Отсутствует возможность у языка строить абстракции.

> Внезапно, оказывается, на линейных комбинаторах много не напишешь!


И нахуй тебе линейные комбики, если есть структурная рекурсия?
60 1987981
>>1986204 (OP)
Вы там на будущее добавьте в шапку
https://www.practical-go-lessons.com
Весьма неплохая вещь.
61 1987986
>>1986288

>но от го отказываются крупные компании которые его же и пиарили 5 лет назад, включая сам гугол

redmonk-language-rankings-january-2020.png496 Кб, 2100x1675
62 1988025
>>1987986
После некоторого хайпа пошел на спад, потом немного устаканилось
63 1988054
>>1988025
там вскукарек был "гугел отказался от голанга".
Ты мне даешь какой-то непонятный рейтинг, где CSS оказывается язык, лол, а ассемблер мол вообще пропал между 2012 и 2013-м.
index.jpeg6 Кб, 237x212
64 1988304
65 1988315
>>1988304 >>1988025

ты либо долбоеб, либо пиздабол, читай на каких данных они эту картинку рисовали https://redmonk.com/sogrady/2021/03/01/language-rankings-1-21/

другой анон
66 1988424
>>1986664
Давай, расскажи как ты квиксорт отдельно оптимизировал под целые числа и с плавающей точкой.
67 1988441
>>1986277
Я никого не защищаю, но какие отрасли маргинализованные, а какие нет?
68 1988464
>>1988424
Причем тут быстрая сортировка?
69 1988708
>>1988054
Дискорд еще от него отказывался года 2 назад. Там был какой то фатальный недостаток в сборщике мусора го, из за которого у них спайки рисовались на cpu графиках. Перешли на раст кста.
70 1988730
>>1988708
Фатальный недостаток был скорее в самом сервисе дисковода, где обезьяны–неосиляторы пытались сделать из программы на Го буквально аналог редиса, причем вручную выглючали GC и закономерно получили по рукам. С тех пор сборщик был заточен и под эффективную работу даже в таких случаях, но поезд ушел: блогпост "мы уходем в раст" был написан, всем обезьянам завезли новую методичку, где го кал, а раст ахуенный.

Популярнось Го растет значительно быстрее, чем Раста. Особенно в бизнесе, особенно в тырпрайзе.
71 1988777
на гитхабе го уже третий по популярности после питона, жавы и жс
lang.rank.0121.wm.png59 Кб, 1050x825
72 1988789
73 1988817
>>1988789
Ну ты же понимаешь что эти рейтинги ни о чем не говорят? Что раст, что скала, powershell, CSS — показатели этих технологий очевидным образом искажены (не говоря уже о том, что многие из них языками программирования не являются). Количество проектов на расте? Не смешите меня, у каждого второго клоуна–аутиста есть hello world на гитхабе, который умеет примерно чуть меньше, чем нихуя. При этом в бизнесе раст не используется _вообще_ в то время, как го используется везде. По графику может показаться что это технологии одного калибра, когда в реальности, раст — это маргинальная хуйня пошиба хаскеля, а го — это топ-5 актуальная технология для прода.
74 1988818
>>1988730

>Фатальный недостаток был скорее в самом сервисе дисковода, где обезьяны–неосиляторы пытались сделать из программы на Го буквально аналог редиса, причем вручную выглючали GC и закономерно получили по рукам. С тех пор сборщик был заточен и под эффективную работу даже в таких случаях


Откуда такие технические подробности?
75 1988825
Объясните нубу как запстить Хэллоу ворлд - установил го на линукс, создал файл с кодом hello.go в домашней директории, ну хз как его интерпретировать, в гугле какой-то треш про модули и разные непонятные способы
76 1988873
>>1988818
Из их собственного блога, конечно же. https://blog.discord.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f Ну и еще чуваки из той команды отписывали на оранжевом сайте, я в двух словах понял в чем там заключалась история. Russ Cox из команды Go потом работал с ними в последствии для решения подобного класса проблем. То есть что сделали обезьяны? Они сделали грубо говоря один огромный мап с кучей ссылок (лол) понятное дело что когда эта хуйня на куче (она только там и может быть если ты хочешь использовать динамичесские аллокации, аки map) и ты будешь ее постоянно дергать, фрагментировать, что время от времени нужно будет ее балансировать. Что собственно говоря и делал на тот момент GC в гошечке. Потом в поздних ревизиях concurrent M&S сборщика этот недостаток устранили адаптивным путем (я не помню в каком коммите, но это точно делал russ cox) А что касается растоблядей в дискорде, для того чтобы понять насколько их блог–пост идеологический бред, достаточно просто читануть пару параграфов:

>Discord is a product focused company, so we’ll start with some product context.


...И далее следует примерно НОЛЬ продуктовой информации; любой продуктовик (и я в том числе) сразу понимает, что текст писал дилетант, который примерно нихуя не понимает в продуктах. Это моментальный красный флаг в самом начале статьи, который намекает на то, что дальше ничего толкового быть не может.

>With the Go implementation, the Read States service was not supporting its product requirements. It was fast most of the time, but every few minutes we saw large latency spikes that were bad for user experience.


Во–первых, программные решения это не то, что поддерживает, а то, что может удовлетворять, либо не удовлетворять ограничения. Во–вторых, тупая шлюха все еще ничего не сказала об этих ограничениях. Кроме того, что "large spikes" судя по всему для них неудовлетворительно, хотя хуй знает что это за спайки. Давай посмотрим дальше.

>After investigating, we determined the spikes were due to core Go features: its memory model and garbage collector (GC).


Да-да, конечно, виной всему ни в коем случае не ваш говнокод с кучей ссылок в масштабной хэш–таблице, а именно лейаутинг и сборщик мусора. 100%, отличное оправдание, все обезьяны здесь уже моментально, без всякого сомнения, верят на слово!

>In other words, instead of freeing immediately after the memory is out of use, memory hangs out for a bit until the garbage collector can determine if it’s truly out of use.


Опять обсреньк, это просто бред больной шлюхи. Уже в 2018 году сборщик делал concurrent mark, поэтому на самом деле никого ждать не надо, сразу понятно используется участок или нет. Другое дело что ни один рантайм, да что там, ни один уважаемый аллокатор (я не говорю про арены) не делает моментальные освобождения, ведь это тупо фрагментирует память. Опять–таки, если структура твоего лейаута сложнее, чем вектор.

>These latency spikes definitely smelled like garbage collection performance impact, but we had written the Go code very efficiently and had very few allocations. We were not creating a lot of garbage.


>[...}


>Thus, we figured a smaller LRU cache would be faster because the garbage collector would have less to scan. So we added another setting to the service to change the size of the LRU cache and changed the architecture to have many partitioned LRU caches per server.


Нет, ну этот китч я даже комментировать не хочу. Мусор они не генерировали, за исключением записей и инвалидаций (это кэш, карл!) в ХЭШ–ТАБЛИЦЕ! СУКА.

На самом деле, проблемы с большими кэшами, аренами, оффсетами по производительности и т.д. это все известная лапша. И много кто с ней сталкивается в любом языке с рантаймом, в том числе и в Go, где конкретно с этим классом проблем столкнулись практически одновременно БД чуваки из Cockroach и dgraph (две просто ахуительные СУБД написанные на Go):

Dgraph сделали свое решение Ristretto https://dgraph.io/blog/post/introducing-ristretto-high-perf-go-cache/
Cockroach сделали Pebble для более широкого класса K/V задач, решение на основе RocksDB https://www.cockroachlabs.com/blog/pebble-rocksdb-kv-store/
Кстати, у них есть также ахуенный анализ сложности cgo https://www.cockroachlabs.com/blog/the-cost-and-complexity-of-cgo/ и лекция, которая покрывает большинство проблем, с которыми тебе никогда не придется столкнуться https://www.cockroachlabs.com/community/tech-talks/challenges-writing-massive-complex-go-application/

В итоге имеем что? Обезьяны из дисковода оказались не в состоянии сделать кэш, не в состоянии сделать аллокатор, не в состоянии сделать арену. Да что уж говорить, как оказалось, они в своих потугах ничего не смогли сделать. В итоге, по задаче идеологов, переписали все с нуля на расте (с учетом прошлых ошибок, конечно) и вуаля, внезапно начало работать.
76 1988873
>>1988818
Из их собственного блога, конечно же. https://blog.discord.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f Ну и еще чуваки из той команды отписывали на оранжевом сайте, я в двух словах понял в чем там заключалась история. Russ Cox из команды Go потом работал с ними в последствии для решения подобного класса проблем. То есть что сделали обезьяны? Они сделали грубо говоря один огромный мап с кучей ссылок (лол) понятное дело что когда эта хуйня на куче (она только там и может быть если ты хочешь использовать динамичесские аллокации, аки map) и ты будешь ее постоянно дергать, фрагментировать, что время от времени нужно будет ее балансировать. Что собственно говоря и делал на тот момент GC в гошечке. Потом в поздних ревизиях concurrent M&S сборщика этот недостаток устранили адаптивным путем (я не помню в каком коммите, но это точно делал russ cox) А что касается растоблядей в дискорде, для того чтобы понять насколько их блог–пост идеологический бред, достаточно просто читануть пару параграфов:

>Discord is a product focused company, so we’ll start with some product context.


...И далее следует примерно НОЛЬ продуктовой информации; любой продуктовик (и я в том числе) сразу понимает, что текст писал дилетант, который примерно нихуя не понимает в продуктах. Это моментальный красный флаг в самом начале статьи, который намекает на то, что дальше ничего толкового быть не может.

>With the Go implementation, the Read States service was not supporting its product requirements. It was fast most of the time, but every few minutes we saw large latency spikes that were bad for user experience.


Во–первых, программные решения это не то, что поддерживает, а то, что может удовлетворять, либо не удовлетворять ограничения. Во–вторых, тупая шлюха все еще ничего не сказала об этих ограничениях. Кроме того, что "large spikes" судя по всему для них неудовлетворительно, хотя хуй знает что это за спайки. Давай посмотрим дальше.

>After investigating, we determined the spikes were due to core Go features: its memory model and garbage collector (GC).


Да-да, конечно, виной всему ни в коем случае не ваш говнокод с кучей ссылок в масштабной хэш–таблице, а именно лейаутинг и сборщик мусора. 100%, отличное оправдание, все обезьяны здесь уже моментально, без всякого сомнения, верят на слово!

>In other words, instead of freeing immediately after the memory is out of use, memory hangs out for a bit until the garbage collector can determine if it’s truly out of use.


Опять обсреньк, это просто бред больной шлюхи. Уже в 2018 году сборщик делал concurrent mark, поэтому на самом деле никого ждать не надо, сразу понятно используется участок или нет. Другое дело что ни один рантайм, да что там, ни один уважаемый аллокатор (я не говорю про арены) не делает моментальные освобождения, ведь это тупо фрагментирует память. Опять–таки, если структура твоего лейаута сложнее, чем вектор.

>These latency spikes definitely smelled like garbage collection performance impact, but we had written the Go code very efficiently and had very few allocations. We were not creating a lot of garbage.


>[...}


>Thus, we figured a smaller LRU cache would be faster because the garbage collector would have less to scan. So we added another setting to the service to change the size of the LRU cache and changed the architecture to have many partitioned LRU caches per server.


Нет, ну этот китч я даже комментировать не хочу. Мусор они не генерировали, за исключением записей и инвалидаций (это кэш, карл!) в ХЭШ–ТАБЛИЦЕ! СУКА.

На самом деле, проблемы с большими кэшами, аренами, оффсетами по производительности и т.д. это все известная лапша. И много кто с ней сталкивается в любом языке с рантаймом, в том числе и в Go, где конкретно с этим классом проблем столкнулись практически одновременно БД чуваки из Cockroach и dgraph (две просто ахуительные СУБД написанные на Go):

Dgraph сделали свое решение Ristretto https://dgraph.io/blog/post/introducing-ristretto-high-perf-go-cache/
Cockroach сделали Pebble для более широкого класса K/V задач, решение на основе RocksDB https://www.cockroachlabs.com/blog/pebble-rocksdb-kv-store/
Кстати, у них есть также ахуенный анализ сложности cgo https://www.cockroachlabs.com/blog/the-cost-and-complexity-of-cgo/ и лекция, которая покрывает большинство проблем, с которыми тебе никогда не придется столкнуться https://www.cockroachlabs.com/community/tech-talks/challenges-writing-massive-complex-go-application/

В итоге имеем что? Обезьяны из дисковода оказались не в состоянии сделать кэш, не в состоянии сделать аллокатор, не в состоянии сделать арену. Да что уж говорить, как оказалось, они в своих потугах ничего не смогли сделать. В итоге, по задаче идеологов, переписали все с нуля на расте (с учетом прошлых ошибок, конечно) и вуаля, внезапно начало работать.
77 1988880
>>1988825
go run hello.go, это чтобы просто запустить файл, но если ты хочешь больше одного файла запускать, менеджить зависимости и т.д. тогда надо делать mkdir hello && cd hello && mod init hello. Внутри достаточно делать go build && ./hello
sage 78 1988905
>>1988777

>третий по популярности


>после питона, жавы и жс


Видно что программист, с нуля считаешь
79 1989023
>>1988464
Ты же писал, что дженерики вообще не нужны, потому что нормальные пацаны оптимизируют все под каждый тип данных.
80 1989080
>>1988880
Пишет что нет такой команды
81 1989237
>>1989080
>>1988825
export PATH=$PATH:/usr/local/go/bin
82 1989425
>>1989023
Я писал совсем другое, ты просто жопой читаешь. Я сказал что экзотические структуры данных, балансные структуры, распределенные структуры обычно пишутся под конкретный лейаут, под очень конкретные операции. Там тупо не нужны дженерики. Вернее, они может даже и нужны, но в перспективе использование конфликтирующих типов оказывается напряжнее, чем просто придерживаться конвенции.

Что касается квиксорта, так там вообще это не проблема. Есть интерфейс для сортировки, который позволяет тебе создать произвольный slice type, для которого ты можешь менять критерии сортировки посредством полиморфизма, инкапсуляции. В некоторых случаях это намного удобнее, чем городить кастомные сравнивающие лямбды. Плюс есть sort.Slice, который сортирует произвольный слайс с твоей сравнивающией функцией. Конкретно что касается сортировки в го, я тут никогда не упирался в дженерики. В дженерики обычно упираешься когда делаешь какие–то простые, но по сути универсальные структуры данных, деревья. Для этих вещей есть кодогенераторы (ничем не зуже макросов в том же расте, точно такая же мономорфизация) Хотя действительно порой забиваешь и делаешь interface{}, но обычно это все рефакторится на какие–то более конкретные интерфейсы с сохранением безопасности. Паттерн матчинга нет, но никто не запрещает тебе его сделать ручками.
83 1989488
Это другое.
84 1989492
>>1989425

>но по сути универсальные структуры данных, деревья.


НЕНУЖОН
Просто имплементируешь метод Less, и делаешь деревья какие хош.
https://pkg.go.dev/github.com/google/btree#Item
85 1989555
>>1989492
Ну да, так обычно и делают.
86 1989715
>>1989237
Не помогает
87 1990174
Тут уже реквестили как то раз чтива для самоподдува, о крутости гошного подхода к обработке ошибок. Удваиваю реквест, дайте почитать чего умного, а то гугл только негативные статьи подкидывает, а у меня уже жопа пылает от этих err != nil по всему коду блять.
88 1990225
Что лучше:

func (obj Object) Method() {}

или

func (obj *Object) Method() {}

?
shaq in the wild.mp49,9 Мб, mp4,
1280x720, 0:41
89 1990228
>>1989237
Хотя не, помогло
90 1990348
>>1990225
x => {}
91 1990351
92 1990352
93 1990416
>>1990352
Магия FP. Онли лямбды, онли минимализм. Нахуй этот ООП-цирк, когда есть лямбды.
94 1990460
>>1990416
Ну да, ООП то у нас нормального нет, остается дрочить на лямбды.
95 1990495
>>1990174
Это я реквестил. Вот вчера наткнулся на https://habr.com/ru/company/mailru/blog/490340/, правда самоподдув не удался.
Только еще больше жопа сгорела с того, какой же дегенерат это писал, и с того факта что существует уйма дэбилов которые во всё это верят.
96 1990519
>>1990225
что за указатель на тип?
я думал нужно типа
func (*obj Object) Method() {}
мимо не гофер
97 1990608
>>1990495
Ну это дефолтный шитпост с хабра. Там день через день подобная хуета публикуется с размазываением абстрактных фантазий по дереву от очередного графомана. А я правда хочу понять, почему сука нельзя сделать НОРМАЛЬНО ебучий обработчик. Да хер с ним даже, это сложно и не 'ПУТЬ GO', ну или исключения ебаные добавить. Невозможно же читать этот пиздец, даже в стандартных библиотеках.
98 1990707
>>1990174
Просто сделай макрос для этой хуйни и забей хуй. Почему у тебя пылает от безобидной строчки кода? Или ты попросту решил что ты лучше всех, типа ты "не такой", повторять одну и ту же строчку это "не для тебя"?
99 1990708
>>1990460
Только в го нормальный ООП и есть.
100 1990710
>>1990608
Ты не можешь читать этот "пиздец" потому что ты дурилка не хочешь ошибки обрабатывать. Приходи в тред когда подрастешь.
101 1990718
>>1990708
Тогда оно и в C есть.
102 1990849
>>1990707
Да ничего я не решил, просто это на мой, не самый опытный взгляд это выглядит очень топорно и я хотел бы понять почему именно так сделано. А нахожу только невнятный бред, как на хабре выше, либо отмазы, про то, что в гугле по историческим причинам запрещены исключения, как будто это единственный вариант.
>>1990710
То есть в других языках никто ошибки не обрабатывает, только гоша такой весь золотой, на две строчки логики строчка бессмысленной лапши. Понял - понял.
103 1990868
>>1990849
Ты все правильно понял.
104 1990882
>>1990519
указатель на тип - это по сути отдельный тип данных, который идет в комплекте с любым типом (кроме интерфейсов)
105 1990892
>>1990868
Хуета же подход, в самом деле. Чаще всего никакой обработки, кроме падения с log.Fatal() не требуется, и такой общий обработчик на несколько ошибок очень помог бы. Но нет, давайте копипастить, ибо таков путь.
106 1990895
>>1990892

> Чаще всего никакой обработки, кроме падения с log.Fatal() не требуется


Дерjи нас в курсе!
107 1990906
>>1990868
Во!! Я и хочу такой самоподдув, как у тебя, чтобы чувствовать, что это не язык ебануто спроектирован, а все остальные говно ебаное.
Ток надо политинформацию найти грамотную.
108 1990927
>>1990906
Я не занимаюсь самподдувом, просто смотрю на предметную область с высоты мноgoлетнего опыта. Когда–то у тебя тоjе так получится, все впереди.
image557 Кб, 850x1269
109 1990938
Ребзя мне тут сказали, что в бекенде петухон почти все и скоро на его замену придет гошечка. Это правда?

Просто сейчас на распутье, куда перекатиться из одной олокоИТ смежной области, но петухон кое-как знаю
110 1990941
>>1990938
Совершенно разные задачи.
111 1990958
>>1990941
А что тогда на го пишут-то?
112 1990962
>>1990958
Апишки для микросервисов.
113 1990969
>>1990962
То есть бекенды
114 1990972
>>1990969
Нет.
115 1990975
>>1990962
Ну так микросервис разве не архитектурная реализация того же бекенда?
116 1990984
>>1990975
Ну сложную бизнес логику обычно на go не пишут. Чаще всего используют для вынесения высокопроизводительных частей кода в микросервисы на go.
117 1990985
118 1990987
>>1990984

> Ну сложную бизнес логику обычно на go не пишут.


Да, для этого есть питон.
119 1990988
>>1990927
Чем этот своеобразный подход так хорош и почему его все хуесосят и ниодной статьи нормально объясняющей его превосходство нет?

>Ряяя, сначала добейся!! На опыте!! Нипаймешь!!



Выглядит как самоподдув.
120 1990989
>>1990984
>>1990987
Бизнес–логика не может быть "сложной", лол, хватит сочинять.

>>1990988
Как пожелаешь, я тебе доказывать ничеgo не буду. Сам поймешь
121 1990992
>>1990989

>Бизнес–логика не может быть "сложной", лол, хватит сочинять.


Ну как поработаешь с чем то сложнее магазина про продаже носков - тогда и поймешь.
122 1990995
>>1990992
Банковский софт, трейдинg, клиринg (APEX) для тебя достаточно сложно, умник?
123 1990996
>>1990989

> Бизнес–логика не может быть "сложной", лол, хватит сочинять.


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

мимо джавист
124 1990997
>>1990996

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


Изи, за свою карьеру неоднократно делал такие вещи как для управления инвентарем/персоналом, так и в финтехе (clearning, compliance). ничеgo сложноgo в этом нет
125 1990998
Как написать на Го скрипт/приожение, который раз в N часов будет сохраняться сториз из Инсрамма выбранных акаунтов?
А еще в идеале, чтобы на "репостных" сториз он шёл на акканут оригинаьной сториз и сохранялоригинал оттуда
126 1991000
>>1990997

>за свою карьеру


Пиздаболом на двачах?
127 1991001
>>1990997
Это и есть сложная логика. Сложной логикой называют не то что её сложно писать лол, а то что её много и в ней всё взаимосвязано.
128 1991002
>>1990998
Это надо делать на питоне.
129 1991007
>>1991002
А есть гайд?
130 1991009
>>1990995
Видимо недостаточно, раз работая с этим ты остался таким узколобым фанатиком.
131 1991049
>>1990938

>Ребзя мне тут сказали, что в бекенде петухон почти все


Это правда, новые сервисы на питоне это либо обертка над МЛ хотя на самом деле можно для этого использовать что угодно, даже го либо интернет-магазины на джанге. Если хочешь вкатиться в бекенд бери ноду, на нее вакансий в 4 раза больше, только соглашайся на работу только если они не юзают тайпскрипт, иначе будешь 95% времени фрустрировать.

>и скоро на его замену придет гошечка. Это правда?


Я думаю когда-нибуть го придет на замену джаве и шарпам, но это случиться не завтра и не послезавтра.
132 1991052
>>1991007
Да, держи.
1) Ставишь https://github.com/facebookarchive/python-instagram
2) Прикручиваешь логику
3) Пихаешь в крон
4) ???????
5) ПРОФИТ!
133 1991053
>>1991049

>только соглашайся на работу только если они не юзают тайпскрипт, иначе будешь 95% времени фрустрировать.


Это еще почему?
134 1991055
>>1991053

>TypeError: "foo" is not a function


>TypeError: Cannot read property of undefined


>TypeError: null is not an object


при том что, блядь, typeof null => "object"
135 1991063
>>1991055
По сравнению с ванильным жиесоговном выглядит, как манна небесная.
136 1991073
>>1991053
Ой, я хотел написать, что соглашайся только если используют
137 1991083
>>1991073
Ну я так и подумал, поэтому и удивился.
138 1991084
>>1991052
что такое "логика" в данном контексте и что такое крон? Я 0 в программировнии. Просто гуглил, и в Инете написано что Го лёгкий язык.
139 1991100
>>1991084

>что такое "логика" в данном контексте


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

>что такое крон


Линуксовый сервис, с помощью которого можно запускать скрипты с некоторой заданной периодичностью

>Я 0 в программировнии.


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

> Просто гуглил, и в Инете написано что Го лёгкий язык.


Так часто говорят, но это не совсем корректно. Это как с топором и пилой - с пилой тебе нужно меньше навыков, чтобы эффективно работать, но тебе всё еще нужны навыки. Когда так говорят, то подразумевают, что знающим любой другой язык будет проще начать писать на го. Но для начала нужно знать другой язык, а так же предметную область - в твоем случае это HTTP API и работа с файлами.
140 1991141
Стройте планы на случай неудачи, а не успеха

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

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

Очевидно, что Go пошёл по другому пути. Программисты на Go считают, что надёжные программы создаются из частей, которые обрабатывают сбои до обработки успешных путей прохождения. Учитывая, что язык создавался для серверной разработки, создания многопоточных программ, а также программ, обрабатывающих данные, входящие по сети, программисты должны во главу угла ставить работу с неожиданными и повреждёнными данными, таймаутами и сбоями подключения. Конечно, если они хотят делать надёжные продукты.
#хейтерыСосать
141 1991157
>>1991141

>Блог компании Mail.ru Group


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

>надёжные программы создаются из частей, которые обрабатывают сбои до обработки успешных путей прохождения


Как это связано с реализацией обработки через ебанутую копипасту через строку? Доебался конкретно до непроверяемых исключений, которые в полутра полуметртвых языках активно используют, охуеть аргументация. Остальные языкки видимо пздц опасные и ошибки не обрабатывают. Каким же надо быть куколдом чтобы такой пиздец всерьез принимать.
142 1991161
>>1991141

>непроверенные исключения представляют собой небезопасную модель программирования


Ахаха, неудачники. Так и будете крэшиться после каждого необработанного эксепшена? Ах да, у вас же даже экспепшонов нету

window.addEventListener('error', function () { return false }) // похуй, пляшем

мимо javascript-господин
143 1991176
>>1991141
Берешь и проверяешь данные, а не
Жопа*Собаку/14 = NAN
ой, жопа отпала чо делать.
144 1991179
>>1990995
Бизнес логика это еввенты и документооборот
145 1991271
>>1990707
Да написать это херня, а вот читабельность кода эти многочисленные проверки ухудшают просто в разы.
146 1991315
>>1991271
Когда научишься в скролл приходи
147 1991326
Надеюсь, что в go 2 не будет циклов. Уже есть goto, а такое усложнение как цикл это уже излишество
148 1991335
>>1991326
Двачну. И лучше избавиться от функций и перейти таки к процедурам. Так же надо избавиться от юникода. Система типов тоже нахуй не нужна, излишество.
149 1991368
>>1991326
Утрою тогда, ведь программисты должны во главу угла ставить работу с неожиданными и повреждёнными данными, таймаутами и сбоями подключения, а эти ваши циклы замусоривают мой код, и иногда приходится даже по нескольку строк писать без err != nill.
150 1991369
>>1991326
>>1991335
>>1991368
Взвизгнул
151 1991399
>>1991326
Внезапно вздвачну, goto логика выигрывает в каждом случае.
152 1992701
Случайно гулял по Сети и случайно наткнулся на https://t.me/s/istories_workshop блог-обучалку по Питону.

Мне кажется, или там как раз нужная >>1990998 тематика? https://t.me/s/istories_workshop

Типа парсинг и работа с рез-ми
153 1992703
Если я стану магистром Go, смогу напистаь на нём кастомный движок для AAA клона ГТА?
Хочу свою ГТА, но больше, глубже и качестенее. чем 4 и5. И чем 6-ая часть(в будущем)
или С++ онли?
154 1992754
>>1991141
Хоть кто-то ведется на этот маркетинговый буллщит? В нормальных языках функции декларируют как возвращаемый тип, так и возможные типы исключений. Можно их обрабатывать, а можно забить хуй и пусть там наверху разбираются. Это адекватный подход, в отличие от if err != nil
155 1992781
>>1992703
Ты школьник?
156 1992790
>>1992781
уже давно нет
157 1992795
>>1992790
То есть школьник, ясно.
158 1992797
>>1992790
>>1992703
Тогда ещё вопросы:
Сколько по-твоему людей участвует в создании ААА-тайтла?
Сколько из них – программисты?
Сколько примерно процентов из всего продукта составляет программирование?
159 1992808
160 1992818
>>1992797

>Сколько по-твоему людей участвует в создании ААА-тайтла?


от 100

>>1992797

>Сколько из них – программисты?


20% от команды

>>1992797

>Сколько примерно процентов из всего продукта составляет программирование?


Ну тут как считать. Все 100 Гггабайт игры - код.
ССколько времени? Человекочасов?
Я думаЮ, дохуя.

Я лишь сравшивал, го для ААА-геймдева подоздит или нихуя? Я хочу оупен-ворлд игру круче, чем будет ГТА 6. Графон, оптимизация, кастомизабельность кастомного движка, задел на апргрейды и будущее.
161 1992840
>>1992818
100 гигабайт это код? А текстуры, модели, музыка и т.д.? Или это тоже кодом генерируется, как в .kkrieger?
162 1992845
>>1992840
ну текстуры, модели - это все завязано на движке
музыка тоже. как она проигрывается, синхронихируется, компрессируется и т.д. и т.п
163 1992882
>>1992845
Ну смотри, ты же у нас в одного пилишь всю игру, допустим ты лично создал с нуля ИДЕАЛЬНЫЙ движок, знаешь его до каждой строчки кода, лол. Твои действия дальше?
164 1992884
Гейдевы опять вместо игр пилят движки?
165 1992940
>>1992882
Ищу сценариста,делюсь с ним идеей игры. Нанимаю прогеров, создаём ООО, даю им разобраться с движокм и приступаем к игре. Оупен ворлд , сюжет + мультиплеер, карта - город и пригород, в 2-3-4 раза больше ГТА 5. Питер. Дохуя локаций(ВО, крепость, пушкино, ленино, купчино, кронташтд, петергоф, мб кусок выборга? дохуя моделей нужно будет сделтаь, да), зданий, итереьров, баров на первых этажах, подвалов, мосты, порты, заправки, в общем, пиздец как работы 3д-модельерам и художникам. Машины и общее качесто моделей должн ыбы на уровне ГТА и лушче, а не как в Хеви Рейн или СЕйнтс Роу.
Радио, разговры НПС на уице по телефону, все пересвзяанное межд собой.

Красивая и иделаьно оптимизирваонная графика, на уровне того, ка ГТА 5 восприимется сейчас, чтобы воспринималсь в будущем(когда выдет +5..10...15?? лет%%вы заметили что игры 2000 в 2010 выглядели а кговно а игры 2010 в 2020 выглядят бодрячком? МЕ2, бетман, гта4/5, анчертед 2). Вода, мосты, пляжи, каналы, ночь и вечеР, улицы полные источников света, теефонов, фар, фонарей.
Комедийно-драмтиеский сюжет в стиле ГТА, с юмором, но не как Сейтнс Роу балаган.

уМультиплеер. Охренительый сетевой код, чтобы 80-100 плееров на сервере выдерживал. ЧТобы душевно было.
166 1992942
вообще, для Питера и охуенной графики нужно охуенная оптимизаиця. В центре города дохуя мостов, сложных точек обзора(где поле зрения сразу неск. десятков зданий), высокодетализировные здания 19 века, каналы, а нчью - ещё и свет.
16180774487030.jpg44 Кб, 382x460
167 1993112
>>1992942
Пиздец жирнота
168 1993125
>>1986461
А как тогда все основные десктопные и серверные ОС написаны на Си и нормально?
169 1993133
>>1993125
Потому что ОС - это байтоёбский софт, который невозможно написать не на байтоёбском языке, а в те времена, когда писалась их основная кодовая база, разрабов того же Раста даже в яйцах их батьков ещё не было.
170 1993160
>>1993133
Возможно, но надо пиздец как усраться.
https://github.com/mit-pdos/biscuit

мимо
171 1993180
>>1993133
Но ведь ты говоришь

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


а он, оказывается, приспособлен для задач даже более сложных, чем сверхбыстрое асинхронное перекладывание жсонов, которым занимаются все сидящие в треде

>>1992940
А корованы можно будет грабить?
172 1993184
>>1993180

> сверхбыстрое асинхронное перекладывание жсонов, которым занимаются все сидящие в треде


Лол, тут половина - не гоферы, а жирные тролли.
173 1993185
>>1993184
Тем не менее, занимаются они тем же самым, просто на других языках
174 1993192
>>1993180

>А корованы можно будет грабить?


Логика в идеях очень обширная и глубокая. Без роста деревьев в рил тайм(понмии кто общения Мульнье 10+ летней давности? эх время летит), но хочу общий уровень качества мира и геймплейя как рдр 2 и гта 6.

Пока думаю вот, как в GTA VC пасхалка с появляющимся в опредленной предполуночное время изображением пениса, составленном из горящих окон отеля, была реализованна. В оопреденное игровое время менялась текстура облицовки? или что?
175 1993211
>>1993112
Чел, представть.
Питер 90-ых или ранних нулевых. Купчино, Дыбено, Автово в роли гетто, НАШИ блять улицы, гаражи, тусклые поребрики(ты вообще обращал внимание как реалистично в ГТА 5 нарисованны текстуры асфальта? их там десятки разных! и бордюры тоже). Мажорный центр, Васька с лысыми парняи и рокерами по вечерам, порты с фсбшными мутками, город охуенно пёстрый. А я ещё загород хочу. И Кронштадт. Каналы, туристы, разговры на улицах. разовры и музыка из баров с кабанчикма на корпоративах. учи интеренсхы миссий, от закладок до уровня фсб.

Я даже думал о физике управления авто, мне в принципе нравится гта 5 больше чем гта 4(можно перемещатся быстрее), но было бы забавно(до N-того раза, после котрого захочется разбить клаву) сделать например на просёлочных частях колею и вохможность немного застрять. НЕ МАДРАННЕР, а что-нибудь казуальне по фану, типа больше непослушности и меньше сцепеления.

Радио, полицеское радиос заспинные в стиле гта 4-5 речами(предзаписааные названия улиц и типа преступлений).

Я только в обшмх чертах держу в голове, хз как реализовтаь свободный масс-шутинг в РФ. Не будет ли инородно выглядеть, не желая превратиь игру в Сейнтс Роу балаган и оставляеясь в рамках сатиры типа ГТА 4 и 5.

Но блин я хчоу игру уровня ААА+, как рдр2/гта6. ДАже просто сделать пустой город такого уровня - это 500+ моделей зданий, высококачественные и всё в одной стилистике. Без повторящихся черт, вывесок и т.д. . Качестенные модели 50+ разных машин, а не как в Хеви Рейн. ЧТобы шины простреливались. Чтоы диски высекали искры и пыль. Это ж сколько работы. А когда трубы глушителя в воде - пузыри из них выплывают. Чтобы про стрельбе в стёкла - они разбивлись как тдельные объекты.

Свет для кадогого здания, мокап, сценарий, сотни страниц реплик актеров. Графика, оптвимизация, саундизнай, дизайн сцен, вообще сборка открытого бесшовного мираю. Движок и инструменты для создания игры.
176 1993225
У вас есть инфа о сетевом коде ГТА 5?
мне интересно, когда например на сервере 24 человека - максиумум, и я на складе рядом с портом стреляю в стойку для интсрумнетов и они падают на пол - у других игроков в этот момет на карте - котоыре находятся рядом или вдругом конце карты - тоже пдают?
Или я взрываю бочки с топливом на холмах к востоку от ЛС - другие игроки увидят их взорванными, если подъедут ко мне?
177 1993227
>>1993225
Да ты заебал!
178 1993230
>>1993227
Одевайся, деньги на тумбочке.
179 1993233
>>1993230
Не вижу их там. Сейчас придут братки, заберут все что у тебя есть, жмот.
180 1993238
>>1993160
Можно высрать подобие, но не ОС. Нужен обязательно компилируемый язык на котором можно делать сырую арифметику указателей.
>>1993180

>Но ведь ты говоришь


Ты анонов путаешь, я не он.
image.png353 Кб, 500x281
181 1993247
>>1993233

>братки


Ясно.
182 1993256
>>1993247
Да, по кругу тебя пустят будешь танцевать до утра.
183 1993260
>>1993256
Как что-то плохое :3
image.jpg52 Кб, 720x720
184 1993263
185 1993336
>>1993211
Чел, получится гта са рашн эдишн. Кринге тот еще.
186 1993337
Вопрос: какого хуя нет нормального веб фреймворка, который будет за меня нормально десериализовать жсоны, не сосать по производительности, и избавит от ебаного бойлерплейта стандартной либы? Потрогал echo, и оказалось, что он даже не может распарсить map[string][]MyStruct, приходится корячиться с вычитыванием из ридера реквеста и встроенным анмаршалером.
Перешел с жявы, и меня поражает дикость местной экосистемы, словно в 2007 вернулся.
187 1993339
>>1993337

>GOвно


>какого хуя нет нормального


Сам и ответил.
188 1993342
Что-т посмотрел на ваш язык. Какая-то нерасширяемая параша. Как на таком программировать?
мимо лишпер
189 1993416
>>1993342

>Как на таком программировать?


if err != nil {
goto oshibka_v_json
}
190 1993437
>>1993336
Нет. Я же говорю не про мод, а про ААА+ игру
191 1993442
Какие требование нужны чтобы без опыта устроиться на работу миддлом? Или сразу миддлом не возьмут? Я Донован Керниган прочитал , с гитом разобрался немного, прошел курс на степике. Я готов или ещё что-то нужно? Работаю сейчас инженером, образование высшее
1637089280.jpg36 Кб, 583x481
192 1993446
>>1993416

> goto

193 1993464
>>1993211
Поиграй лучше в васянский аддон для гта «Барвиха». Примерно так твоя говноигра будет выглядеть
194 1993525
>>1993464
Чел, я говорю про ААА+ некстген/каррентген. Не мод, не просто поделие, а игру уровня сливок индустрии, уровня ГТА. не Мафии 2/3, не Сенйтс Роу и Слипинг Догс, а самой ГТА. Чтобы каждая деталь, свет, мусо на улице, освещение, цвета, анимацяи и физик(инерция) персонажей на уровне ГТА.

Ясен хуй, это игра на 3+ года разработки с несе. сотнями вовлечённых людей и бюджетом в 10+ млн долларов(скорее даже в неск. десятков миллионов).
195 1993529
>>1993525
Сюжета нормального там естественно как всегда не будет, только на графоний дрочить
196 1993533
>>1993442
толсто
197 1993582
>>1993529
Будет классный сюжет и мультиплеер с душой.
198 1993634
>>1993442
Вкатиться невозможно, весь этот хайп вокруг айти поднят продаванами курсов. Конкуренция такая, что все итт скоро пойдут писать код на goвне за еду. Не стоит вскрывать эту тему.
199 1993804
>>1993634
Да ладно не гони. Вроде слышал что если идёшь гофером то ещё и докер нужен.
200 1994066
Сап. На го есть какие-то стандарты по микросервисам? Что сейчас модно/используется? Что покурить по этой теме? Сам бэкендер на ноджс, в основном работаю с микросервисной архитектурой. Решил го попробовать, пока что чисто для себя.
201 1994112
>>1993804
Ладно бы, если докер. Без кубернетеса и знания экосистемы авс сейчас никуда...
202 1994142
>>1992754

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


Т.е. для тебя кроме жабы других языков нет, я правильно понял?
203 1994145
>>1994066
Стандарта нет, каждый дрочит как хочет. У меня на работе http сервер из стандартной либы, тебе я бы рекомендовал попробовать https://github.com/go-kit/kit , а если не понравиться - смотри что-то другое в https://awesome-go.com/
204 1994149
>>1994145
Выглядит интересно, спасибо, погляжу.
205 1994289
Как думаете, когда уже завезут девиртуализацию интерфейсов? Это же очень очевидная оптимизация, которая автоматически сделает кучу кода быстрее и уберет кучу аллокаций в хипе
photo2021-04-1314-23-49.jpg105 Кб, 1280x994
206 1994726
207 1994771
>>1994289
Никогда
208 1995058
>>1994289
Н И Н У Ж Н О
И
Н
У
Ж
Н
О
209 1995063
>>1994289
Её обязательно завезут в Go 2, как и дженерики.
210 1995237
>>1994289
Лучше убрать интерфейсы вообще, ненужное усложнение
211 1995244
>>1995237
Нельзя, слишком много легаси-кода юзает пустой интерфейс.
212 1995550
>>1995063

>Go 2


Уберут ли в языке Go Two оператор goto ?
213 1995572
>>1995237
если это не рофл, то почему ненужное?
214 1995577
>>1995572
Тот момент, когда уже не можешь отличить толстоту от GO-WAY. Иронично.
215 1995583
>>1995577
так наоборот - go-way как раз с интерфейсами. а вот толстоту я не выкупил, это правда
216 1996438
>>1995244
Оставить только пустой, и дело с концом.
217 1996439
>>1995063
Go 2 - это какая-то местная земля обетованная?
218 1996443
>>1996439
Священный грааль с более адекватной обработкой ошибок и шлюхами дженериками, да. По итогу окажется, что все сделали через жепу, потому что НИНУЖНО РРЯЯЯЯ!!1
219 1996447
>>1996443

>По итогу окажется, что все сделали через go-way, потому что программисты должны во главу угла ставить работу с неожиданными и повреждёнными данными, таймаутами и сбоями подключения


Поправил тебя.
220 1996451
>>1995583
Так это новая методичка пока не вышла просто, вот все и в смятении. Вот выйдет, напишут вдохновенных гайдлайнов, скажут интерфейсы ваши, дженерики - это от лукавого, не было ооп нормального, неча и начинать. Вот тогда заживем наконец.
221 1996454
>>1996447
Тут главное не ошибиться, где все еще GO-WAY, а где просто шиза свидетелей GO-WAY. Тонкая грань, и судя по отсутствию нормальных енумов и дженериков, создатели пщ ее не особо ощущают.
golang-color-icon2.png17 Кб, 185x180
222 1996471
GO-TWO
223 1996475
блее как перестать проигрывать с этого готу
224 1996484
>>1996451
Я из треда в тред повторяю и повторю ещё раз - дженерики от лукавого, не нужны. Если у тебя часто встречается случай, когда тебе надо иметь одинаковую функцию, но с разными типами данных, тебе надо генерировать код таких функций. Вот какой-то удобный инструмент для генерации (например встроенный подъязык и генератор в составе тулчейна) я бы хотел видеть. Явное лучше неявного, всегда. Но это не значит, что явное нельзя автоматизировать.
225 1996486
>>1996484
Дженерики - это явное, дебил.
226 1996488
>>1996484

>когда тебе надо иметь одинаковую функцию, но с разными типами данных, тебе надо генерировать код таких функций


>какой-то удобный инструмент для генерации


Называется дженериком, лол. Реализуется на уровне самого языка.
227 1996494
>>1996488
>>1996486
Дженерики неявные, потому что их него сразу получается двоичный код, который нельзя прочитать. В предложенной мной схеме программисту доступен исходник.
228 1996569
>>1996494
А из интерфейсов, которые суть утиной типизации дохуя сразу получается оптимизированный двоичный код
229 1996572
Вам дали лямбды, ADT, общий тип данных (список, как универсальный тип). Нет, блядь, придумыапют хуйню
230 1996581
>>1996484

> дженерики от лукавого, не нужны


Слишком толсто.
231 1996598
>>1996494
Не верю исходнику - сиравно смотрю дизасм.
232 1996603
Ви знаете, что меня смущает в гошечке? Что ее/го разработали во времена мультикультурализма, дабы средний индус или китаец или негр-трансгендер мог продуктивно пилить тасочки, не стреляя в ногу себе или соседям по кубику.
233 1996612
>>1996603
Для индусов надо делать язык, в котором будет запрещена копипаста, иначе они всё равно наговнякают индусокода
234 1996618
>>1996612
Го пошел другим путем, он это наоборот поощряет, один из главных принципов го вэй - RY ( Repeat yourself ).
И шизики на серьезе утверждают что так правильнее, и лучше повторить тот же код 20 раз, зато явно и наглядно, чтобы не возникало необходимости вчитываться в код.
235 1996772
>>1996618

> Го пошел другим путем, он это наоборот поощряет, один из главных принципов го вэй - RY ( Repeat yourself ).


Ебать принцип. Сейчас бы столпы DRY, KISS, SOLID нарушать.
236 1996912
>>1996772
Сейчас бы молиться на эти столпы и использовать их везде, даже если в этом нет острой необходимости.
237 1996939
>>1996912
Макак, спокойно. Клепай дальше свои лестницы из if-ов.
238 1997032
>>1996939
Не доводи до абсурда. Я лишь указал тебе на то, что эти "принципы" - на самом деле лишь рекомендации, и есть ситуации, когда их применение лишь усложняет код. Примеры приводить лень, да и похуй.
239 1997136
>>1997032
Сначала ты такой: ну это всего лишь рекомендации, не буду усложнять код
Ты через несколько месяцев: бляяяядь как в это говнище всунуть очередное требование, чтобы оно всё к хуям не развалилось
240 1997172
>>1997032
Для тебя, если есть хороший опыт - вполне может быть.
Но транслировать такие идеи - чистое зло, особенно для нубов. Ебанашки начинают повторять это как мантру и хуярить говнокод, потому что еще неспособны самостоятельно оценивать перспективы масштабирования. Каждый сам к этому придет со временем, но до этого лучше воспринимать все эти принципы как обязательные.
241 1997253
>>1996772
Солидошиз тут как тут
242 1997257
>>1997253
INDOOS, PLEEZ
243 1997259
>>1997257
Когда наконец-то будешь писать что-то сложнее мувисерчера и тудушки, сам же откажешься от этого кала. Хотя никогда не будешь лол.
244 1997302
>>1996939
Эх, шас бы дебажить импорт импорта класса с обобщенным апи и проверкой данных через 200 функций перевода времени с тихоокеанского в юникс тайм
245 1997312
Как понять когда использовать указатели и когда нет?
246 1997318
>>1997312
Никогда не используй указатели.
247 1997334
Как понять когда использовать Go и когда нет?
248 1997344
>>1997334
Использовать :

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


Не использовать:
Когда хочешь невырвиглазный код.

Все по методичке кстати!
249 1997403
>>1997312
указатели это для компилятора ил иструктур на Си, в остальных случаях ты будешь ограничен ООП-хуетой с разной иерархией одних и тех-же объектов типа поликлиника ЕБланНейм и он должен знать как его нужно лечить, но если ебланнейм пошел туда не лечится а лечить(ремонтировать) поликлинику то другое.
Вообщем хуета, и надо роли строить и данные тащить отдельно через указатели
250 1997418
>>1997403
Стопе, я изобрел процедуры вот ведь незадача, жаль ебланы на СИ++ строят дом с крыши и внутри площадь выделяют через хип.вдруг не вместится гипотетический холодильник на 50к литров
251 1997438
Здравствуй двач, на связи джавист (лвл ~мидл), хотел спросить так как решил попробовать для себя этот ваш GO, идеи для пет проекта. У себя на уме банальное e-commerce приложение по типу ( гейт на джаве и пара микросервисов на го, общение через РЕСТ). Заранее благодарю
252 1997691
>>1997438
Данила спок
unnamed.jpg35 Кб, 400x337
253 1997704
>>1997344
Я понял, но Go пишут пессимисты. А что, если не получится? А что, если не вернёт ответ? А что, если не существует? А что, если ... С такии настроем надо в тестировщики идти, ей-богу.
254 1997718
>>1997704
На это го это ещё не в крайней степени, так что жить можно.
255 1997808
>>1997344
А почему они приходят повреждённые, с таймаутами и сбоями? Потому что приходят от сервиса на го. Таким образом, если хотя бы один сервис сделать на го, все взаимодействующие с ним тоже придётся на него переписывать. Язык — раковая опухоль.
256 1997857
>>1997808
Не можешь победить - возглавь, пока не поздно.
257 1998405
А теперь вы такие берете и поясняете, почему я должен использовать не жяву, а именно го для своего супернагруженного 300к пользователей в наносекунду бэкенда.
258 1998504
>>1998405
Моча съела говно. Есть шарп, делающий быдложабу и goвно ненужными.
259 1998655
>>1998504
>>1998405
Разве у го перформанс не будет получше джавы и шарпа?
260 1998688
>>1998504

>А я люблю обмазываться не свежими сртификатами от майкрософт и дрочить. Каждый день я хожу по земле с черным мешком для мусора и собераю в него все сертификаты которые вижу. На два полных мешка целый день уходит...

261 1998781
>>1998504
Шарп сосет в плане экосистемы фреймворков и библиотек. А еще под линуксом жява все равно будет лучше, ибо работает под ним без костылей. Шиндовс, как все мы понимаем, - ос для лохов.
>>1998655
Чет не видел достойных сравнений производительности в разных случаях.
262 1998853
>>1998655
>>1998781

одна хуйня, базарю
263 1998866
Аноны, как вкатиться? Я лет 10 не программировал ибо быдлоадмин и говнодевопс, думаю язык как раз под меня.
Проблема в том, что не знаю что вообще написать. Я работаю с кубером и терраформом, которые написаны на go. Может какой-то плагин или оператор написать, но я хз что. Подкиньте идей проектов для новичков в этой области
264 1998867
>>1998866

Нужно просто подставить жопу настоящему гоферу, чтобы он посадил в тебе зерно, иначе никак духом го проникнуться не получится.
265 1999001
>>1998405
Джава - отвратительная, а Го - терпимый.
266 1999004
>>1999001
Субъективно. Ты давай поконкретнее, что именно не нравится и почему?
267 1999078
>>1999004
Больше кода, ниже удобочитаемость, хуже производительность, зоопарк фреймворков, больше костылей, выше вероятность получить непредсказуемое поведение, больше узких мест в архитектуре, требования к проектированию гораздо выше, список можно продолжать.

мимо охуевший архитектор
268 1999113
>>1999078
if err != nil тоби в сраку, архитектор блять. Накодогенерируют себе лычек и выебываются. Ты хоть на го писать пробовал? Без фреймворков бойлерплейта еще больше, чем в жяве, при этом нормальных фреймворков для построения веб крудов не завезли, все какая-то ограниченная хуйня.
269 1999254
>>1999113

>на го писать пробовал


Конечно. Единственное, что мне в нём не нравится и что нужно убирать - то, что именованному возвращаемому значению нужен ретёрн.

>бойлерплейта еще больше


Всё равно меньше

>нормальных фреймворков для построения веб крудов не завезли


GORM

>все какая-то ограниченная хуйня


Приведи пример реальных ограничений, которые не преодолеваются самостоятельно в несколько строк.
270 1999264
Простите мне картошечки
271 1999345
>>1999254

>Приведи пример


Нет аналога спринга, который и жсон распарсит, и в базу сходит, и шедулинг организует, и роутинг предоставит в несколько строк. Или ты сможешь привести пример настолько удобного фреймворка на го? Подозреваю, что либо снова придется все руками пилить, либо подтягивать и изучать 100500 библиотек с непохожими друг на друга апи.
272 1999394
>>1999345
Ну так напиши свой спринг, прославишься. Обленились совсем
273 1999416
274 1999418
>>1999345

>распарсит, сходит, предоставит


Взамен на ебейшие ограничения. Спасибо, но нет.
276 1999441
>>1999418
Какие ограничения? У спринга кастомизируемость во все поля, потому что это по сути просто DI контейнер, который в свою очередь обрастает модулями. Ничего на гвозди не прибито, хочешь - накостыль свой велосипед, никто не запрещает.
277 1999463
Просто го быстрый и легкий. В маштабном проде обычно именно это важно, а не чтобы кодомакакам легко писалось
278 1999471
>>1999463
В масштабном проде важно, чтобы код было легко поддерживать. И только потом его скорость, иначе бы все писали на сях/плюсах. А как ты понимаешь, бойлерплейт не очень хорошо сказывается на простоте поддержки кода.
279 1999505
>>1999471
Бойлерплейт означает отсутствие магии, и соответственно легкоподдерживаемость. соснули все
280 1999544
>>1999505
Ты либо толстишь, либо не понимаешь, что написать хттп сервер на стандартной либе сложнее, чем используя что-то типа echo:

e := echo.New()
e.POST("/suction", func(context echo.Context) error {
...celebrate and suck some dick...
}
e.Start(":8080")

Просто потому, что интерфейсов и бойлерплейта в стандартной либе больше. Соответственно, выше вероятность ошибки и приходится больше кода читать. Магия стреляет в ногу только в специфичных юзкейсах, что довольно редко случается.
281 1999563
Сейчас бы в языке Null/Nil иметь...
282 1999578
>>1999563
Потому что язык делали не хипсторки с их Either/Result/Optional, а деды из времён сишки.
283 1999678
>>1999394
Не взлетит, так как он уже никому нахуй не нужен. Ведь дауны на самоподдуве из-за отсутствия фреймов теперь гордятся тем, что сами выбирают или костылят каждый говнокомпонент, и называют это go-way.

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

ТОЛЬКО ВЫИГРАЛИ
284 1999740
>>1999678
Ну хуй знает, в конторах часто пишут свои либы, иногда даже свои имплементации для std.
285 1999794
>>1999740
Я ж так и написал:

>сами выбирают или костылят каждый говнокомпонент

286 1999812
>>1999113

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


https://github.com/gofiber/fiber

Мимо перекатыш из бекенда на node.js + express, fiber вдохновлялся экспрессом
287 2000013
>>1999812
Ну твою ж мать, еще один роутер, обещающий колоссальную производительность. И как мне выбрать самый быстрый, если бенчмарков почти нет? Свои писать? Ну збс теперь, как только спринг на го допишу, сразу займусь бенчмаркингом роутеров.
288 2000078
>>1999563
Потому-что пидрилы не знают что нил только в неинициализированных и динамически созданных полях, а так нулл спокойно заменяется вложеным булем в булю
Например я говорю вон там дает памела андерсон помацать за сиськи за углом.
Тебя спрашивавют правда? Ты или даешь ссылку на меня или кажешь нулл, так как не знаешь данные мои правдивы или нет.
289 2000285
Есть существенные изменения с 2017?
290 2000321
>>2000285
Разве что модули, не надо больше все исходники держать в GOPATH.
291 2000328
Как же я угараю с маскота голанга, такой то рашка квадратный ватник.Интеересо, кто нарисовал?
292 2000355
почему всю крипту на го пишут?
293 2000654
>>2000355
Обезьяны игого?
294 2000659
>>2000328
Не ебу. Но язык написан кретинами, подобно маскоту.
295 2000701
>>2000659
Что, синтаксис не осилил? ХАХАХА
296 2000748
>>2000013
Он реально очень быстрый, в репозитории есть ссылки на бенчмарки

https://github.com/smallnest/go-web-framework-benchmark

https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=composite
297 2000749
>>2000355
Потому что это золотая середина по перформансу, удобству разработки и скорости разработки. А узкие места всё равно делают на плюсах и расте.
298 2000828
>>2000749
А некоторые извращуги на cgo и unsafe
299 2000978
>>1999740
Это утверждение 100% верно и для плюсов, как ты думаешь - это хороший знак?
мимо студент плюсовик
300 2000980
>>2000978
>>1999740
Что плюсы, что го - императивное говно.
301 2001291
>>2000978
Так вообще везде, может в ентерпрайзах чуть меньше
302 2001872
Хочу сделать пет проект, где придется юзать основные особенности го т е горутины и каналы, но ничего не приходит в голову из хоть сколько то полезного и применимого. Есть какие-нибудь идеи?
303 2001901
>>2001872
Вариации на тему прокси-серверов. Ты запускаешь на локальной машине клиента, а сервере или серверах серверную часть одну или несколько. Между ними идёт трафик по вебсокетам в каком-то закомуфлированном виде.
304 2001917
>>2001872
Что-нибудь с веб или tcp сокетами, связанное с торрентом или блокчейном
305 2001991
>>2001872

>где придется юзать основные особенности го т е горутины и каналы


Любой проект сложнее хеллоуворлда
306 2002156
>>2001872
Cделай "шардинг" для sqlite базы по сети, с обработкой ошибок, таймаутами и так далее.
307 2002214
>>2001872
Создай детецентрализованную дб, на каком-нибудь p2p-протоколе.
308 2002349
>>1993634
Двачую, забейте на это говно и идите строителями, прогеры уже никому не нужны а вот строители дефицит
309 2002504
>>2002349

> а вот строители дефицит


> балки таскать может любой ашот

image.png224 Кб, 900x366
310 2002801
Стране нужны истинные чеды, а не сойбои кодеры. Хочешь вкатиться в программирование? Прости, но ты уже проиграл в этой гонке, даже не открыв IDE. Дальше тебя ждет только уныние и медленная агония в непрекращающемся потоке говнокода, такая, что ты возопишь от ужаса и все равно в итоге вернешься на верный путь, путь Инженера. Так не проще ли не испытывать свои нервы на прочность?
311 2002807
НИИ и заводы ждут, мужики не вывезут без тебя, анон.
312 2002829
>>2002801

> uses Typescript


Разве в браузере можно использовать что-то кроме JS/TS/Elm/Purescript/WA?
313 2002832
>>2002829
Тайпскрипт конпелируется в жс при сборке
314 2002850
>>2002832
Как и Elm с Purescript. И хули?
315 2002855
>>2002829
Наверное, имеется в виду, что он использует именно TS, а не чистый JS, как тот чед справа. Хз, на что это намёк, но хуёва та шутка, которую нужно объяснять.
316 2002858
>>2002850
Пишешь код на TS, а в браузере уже сконпелированный JS запускается, всё просто же.
317 2003170
>>2002801
Самое смешное, что картинка правдива, банальное мужское ретивое помогает разруливать очень сложные ситуации как в организационном плане так и в техническом.
318 2004124
Аноны, поясните за чистый код. Я привык писать код следующим образом: создаю структуру с зависимостями (например, какой-нибудь http-обработчик с репозиторием внутри) и рядом с ней описываю интерфейсы зависимостей, тем самым избавляясь от зависимости от конкретной реализации и от методов, которые моей структуре не нужны. Где-то в другом пакете лежит реализация (одна реализация может быть сразу под несколько интерфейсов). Вопрос: где нужно хранить кастомные ошибки, которые может вернуть метод интерфейса? В месте реализации? Тогда будет существовать зависимость на уровне пакета (т.к пакет с реализацией все равно будет импортирован). В месте объявления интерфейса? Тоже не ок: во-первых, возникнет проблема при необходимости объявить идентичный интерфейс в другом месте; во-вторых, пакет с реализацией начинает зависеть от места его использования.
Аналогично со структурами, возвращаемыми методами интерфейса: нормально ли, если они будут находиться в том же пакете, где лежит реализация этого интерфейса? Вообще, стоит ли пытаться избавиться от decoupling'а на уровне пакетов или достаточно сделать это на уровне структур?
319 2004216
>>2004124

>создаю структуру с зависимостями



объявляю*
320 2004697
>>2004124
Хз, вообще не эксперт в чистом-хуистом коде, и в go-way. Но зачем городить какую то хуету с объявлением интерфейса в месте использования и тд. У тебя есть интерфейс, с какой то одной бизнес функцией, он лежит в отдельном паекте, рядом с этим же интерфейсом лежат структуры с которые он использует, и кастомные ошибки тоже, это часть контракта этого интерфейса. Внутри этого пакета делаешь еще один пакет с реализацией этого функционала и все. Так ты отвязываешься от реализации, и от клиентов которые используют этот интерфейс. В твоих же случаях все просто пиздец как связано и сложно найти концы где какие там интерфейсы реализуются. Опять же, ты нарушаешь этой хуйней solid, а именно принцип единой отвественности, у тебя есть какой то god object который имеет несколько назначений (интерфейсов).

Например если это репоизторий какой-то для доступа к бд, то ты создаешь на каждую бизнес сущность (табличку) отдельный интерфейс репозитория, и отдельную реализацию этого репозитория. Все entity которые возвращает репозиторий лежат рядом с интерфейсом, потому что это часть этого интерфейса
321 2004750
>>2004697

>у тебя есть какой то god object который имеет несколько назначений (интерфейсов)



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

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



Это нарушает принцип разделения интерфейса. Допустим, я на бизнес-сущность создал один интерфейс репозитория из 7 методов. Он используется несколькими клиентами, и бОльшая часть из них использует всего 2 из 7 методов. А зависит по итогу от всех семи. Именно этого я стараюсь избежать за счет объявления интерфейса в месте использования методов.

П.С. Я в итоге решил свою проблему за счет того, что кладу кастомные ошибки рядом с сущностями, а интерфейсы все так же объявляю по мере и в месте использования. С клиентами (например, http-клиентами) поступил примерно так, как ты описал: создал отдельный пакет с интерфейсом клиента, описал структуры и ошибки и внутри него создал еще один пакет с реализацией.
322 2004754
>>2004750
Единственное, что мне все еще не нравится - это то, что по итогу у меня много конфликтующих имен пакетов, типа internal/handler/user и internal/service/user. Мб я неправильно структурировал проект, конечно. Благо, они совместно используются только в main.
323 2005667
>>2004754
Мне кажется у тебя слишком глубокая вложенность, я бы сделал либо
internal/handler/user.go и internal/service/user.go
либо
internal/user/handler.go и internal/user/service.go
(жирным - название пакета)
324 2005679
При том первый вариант лучше, т.к. у тебя локальная область видимости для всех хендлеров позволяет иметь internal/handler/utils.go c неэкспортируемыми общими методами, которые используются всеми хендлерами (например, прочитать реквест в структуру или записать респонс из структуры)
325 2005708
Нужно просто понимать, что такое неймспейс и что там должно быть, а чего - нет. Механизм чтения структуры из io.Reader'а, отдающего json может пригодиться и при чтении конфига, и при работе с очередями, и еще много где. Но вот чтение из http.Request'а content-type и на его основании читать из body в структуру разными способами - уже handler-специфик код и он не должен быть экспортируемым
326 2005892
Может кто-то поделиться гитхабами десктопных приложений на го?
328 2005936
Ну чё, гоферкон смотрим? Там обещают мастер-класс по приготовлению кофе от писечки из Гетта
господи стыд какой
329 2006372
>>2005679
В моем случае просто помимо user service существуют еще и другие, и у каждого из них есть свои dto и вспомогательные структуры. Не хочется, чтобы все эти вещи лежали в общей куче. Ну и не хочется префиксовать названия структур/констант/функций, если они повторяются для разных сущностей
330 2006483
>>1988873
Почему у них тогда раст не лагает?
331 2006566
>>2006483
Так традиционная практика:
-Пишем хуйню на языке X
-Хуйня получилась кривая, рассказываем какой язык X говно
-Переписываем хуйню правильно на язык Y, уже хорошо понимая где мы ранее допускали ошибки
-Рассказываем какой язык Y заебатый
332 2007240
Подскажите, как нужно использовать мьютексы в рекурсивных горутинах, которые запускаются внутри хендлеров. Можно ли просто создать переменную мьютекса в хендлере и передавать по ссылке в горутины?
sage 333 2007367
>>1986204 (OP)
Как же охуенно, что я уже 2 года ничего не писал на этом goвне. Спасибо, Господи, за нормальные языки программирования!
334 2007406
>>2007367
Два AbstractSingletonProxyFactoryBean этому господину.
335 2007546
>>2007240

Вот у этого забрать компьютер и вон из профессии

за анус себя рекурсивно дерни, пес
336 2007772
>>2007367
В какие языки перекатился?
337 2007933
>>2005936
Есть запись уже?
338 2007937
>>2007240
Ты хуйню какую-то делаешь, инфа 100%
Используй каналы везде где только можно, где нельзя - выдумывай хуйню на атомиках или мутексах
Screenshot20210418143119.png24 Кб, 331x385
339 2007938
340 2007947
>>1986204 (OP)

>пик 2


мимокрок, просматривал треды и проорал на весь район с соседями
341 2008346
>>2007938

миддла-стремящегося в тебе вижу я
342 2008425
>>2007937
а чем каналы лучше?
sage 343 2008463
>>2008346
Унтерменша позорного со шрифтом хипстерским вижу я в нем
344 2008512
>>2008425
Тем, что они упрощают многопоточный код (по крайней мере, так говорят): проще закинуть сообщение в канал и не думать, что происходит на другой стороне, чем держать в голове, что вот к этому ресурсу доступ будет из множества горутин, а значит надо вешать мьютекс.
С другой стороны, если контеншн за ресурс относительно маленький, мьютексы производительнее каналов.
345 2008607
>>2008463

все там были

>>2008512

> по крайней мере, так говорят



откуда вы только блять лезете.jpg

сходите вместе с >>2008425 почитайте про концепции shared memory и message passing, потом про паттерны многопоточных приложений, вспомните про кисс и солид, а потом подумайте о цене поддержки, масштабировании, gracefull shutdown'е, gracefull degradation'е и течке с локами вашей рекурсивной поеботы

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

нахуй я все это пишу, все равно же никто прислушиваться не станет
346 2008616
>>2008607
Баззворд на баззворде, а по делу нихуя. Иногда проще навесить лок, чем ебаться с каналами-карнавалами. В той же стандартной либе локи используются.
347 2008618
>>2008616
Так дело в том, что с каналами работать намного удобнее и проще, чем анальная ебля с мьютексами
348 2008641
>>2008618
Не во всех случаях, конечно же. И это именно то, что я пытался донести. Идиома mutex hat в качестве пруфа.
349 2008660
>>2008607
Как стать таким же охуенным как ты?
sage 350 2009207
>>2008607
У меня никогда такого шрифта не было, ведь я не глиносексуал.
351 2010329
Полгода изучал пхп, решил переобуться в гоу, стоит ли забить на пыху и забыть как страшный сон, или лучше доучить плюс фреймворки?
352 2010370
>>2010329
Обычно когда начинаешь учить другой язык, на предыдущий хуй забиваешь (из моего опыта), только если с первым ты не связан рабскими рабочими узами.
15953594397200.jpg42 Кб, 700x551
353 2010377
Вопрос к оптимизаторам. Есть серверное приложение, с каждым новым подключением клиента, спавнится 3 горутины, стоит ли сделать отдельный пулл горутин, чтобы не спавнить их заново при каждом подключении? Подключений может быть очень много в единицу времени
354 2010595
>>2010377
А тебе не похуй? Горутин можешь хоть миллион наспавнить, там динамический стек, я не думаю, что у тебя там сотни тысяч запросов в секунду обрабатываются. Главное проконтролируй, что они не текут (т.е. не ломаются и не остаются в памяти). Пул горутин - это уже скорее воркеры различные, которые в фоне просто висят.
355 2010598
>>2008512
Да, они его упрощают. Канал - это буквально под капотом очередь с мьютексом, вот и все.

>>2008607
Ты с шизами споришь
356 2010605
>>2010595
А если и сотни тысяч? Прям щас работаю над проектом, где общая нагрузка где-то 300к рпс. И вот как туда прикручивать горутины, чтоб не наебнулось?
357 2010630
>>2010377
Прикручивай в лоб, если выяснится, что сосёшь из-за шедулера, будешь переделывать. Преждевременная оптимизация это плохо
358 2011056
>>2006566
Но ведь у тех кто сразу начинает писать на нормальном языке нету жалоб на производительность
359 2011145
Подкиньте идею для пет проекта, хочу что нибудь с elasticsearch сделать, чтоб освоить технологию
360 2011164
>>2011145

поиск по пацанским цитатам запили со ссылками на соц.сети, кто их постил, статистикой постинга, лайками и на что еще фантазии хватит
361 2011375
Всем кулити. Мне 25, вкатываюсь в тестирование. Собираюсь поработать тестером годик-два и параллельно хочу для себя начать изучать программирование с нуля. Дело в том, что я учился в вузе на технаря, проходил и плюсы, и шарп, и джаву, и питон, но из-за того что мы использовали языки для программирования математических задач, на 5-6 паре программирования каждого ЯП я бросал это дело. Сейчас знаю базовый синтаксис многих языков, условия, циклы, работу с массивами и т.д., знаю как создать и использовать функции. С ООП не работал и по сути не знаю что это такое даже. Ну как, знаю, но не в правильном представлении использования ООП.
Короче, хочу развиваться в вэбе в бэке. Смотрю сейчас в стороны: пхп + ларавель, джс + нода, го.
Склоняюсь больше к го, т.к. интересен его синтаксис.
Есть пара вопросов к вам - гуру.
1. Как первый ЯП выбирать Го это совсем хуёво? Я имею в виду изучать само программирование с помощью этого языка.
2. Вкатываться после тестера в го разрабы в 26-27 лет поздно или нормально?
3. Какая реальная вилка по зп на джуна го с техническим бэком (ну помимо технической хуйни, кстати, я успел поработать на складе, заводе и в вузе, и в логистике, но в резюме не пишу об этом и стараюсь об этом не говорить)
362 2011524
>>2011375

ну, пока тебя мамка содержит, можешь хоть в хаскель, хоть в идрис первым вкатываться
363 2011648
>>1996612

>Для индусов надо делать язык, в котором будет запрещена копипаста, иначе они всё равно наговнякают индусокода


Любой язык с форматированием кода пробелами. Я не смог в nim lang копипастить. Всё сбивается, вложенные блоки оказываются вложены не туда, куда хотел. Nim lang - язык в котором приходится писать самому!
364 2011689
>>2011524
Я на фрилансе 20-25к имею в месяц. Все бабки уходят на еду домой и на интернеты, телефоны, интернеты и т.д.
365 2011924
Я в этом вашем го новенький. Каким образом по-православному работать с базой данных? Просто с помощью database/sql?
366 2011930
>>2011924
По канону - да, без всяких GORM, всё руками, всё явно, побольше бойлерплейта, как у дедов в прошлом веке.
367 2011932
>>2011924
есть горм
368 2012013
>>2011932
можно через database/sql, можно взять орм - например, ent
если не хочется орм, но и впадлу писать запросы руками - то можешь взять squirrel или dbr
369 2012271
>>2011375

> Склоняюсь больше к го, т.к. интересен его синтаксис.


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

> 1. Как первый ЯП выбирать Го это совсем хуёво? Я имею в виду изучать само программирование с помощью этого языка.


Норм, но наверное шарп лучше был бы, или джава, или даже тайпскрипт как вариант (я сам бек пишу на ноде/тс в том числе, помимо го)

> 2. Вкатываться после тестера в го разрабы в 26-27 лет поздно или нормально?


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

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


Москва 60-120к, остальные города 40-80к, остальной постссср кроме России хз
370 2012668
>>2012271

>Странная мотивация, на синтаксис должно быть пофиг, язык это же просто инструмент для решения задач



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

Мимо другой анон
371 2012815
>>2010605
Не может у тебя быть такого проекта. Если бы была такая нагрузка - были бы реплики, разделяющие нагрузку. Один процесс не справится с такой нагрузкой, если это не хеллоуворлд.
372 2012833
>>2012815
Я же сказал - общая нагрузка. Естественно, там сильно больше одного инстанса. Но написано это все на жяве, и интересно, есть ли смысл переписывать рпсную часть на го и выносить в отдельный компонент, будет ли прирост? inb4: все индивидуально и надо замерять, где узкие места, а не заниматься хуйней.
373 2013010
>>2012668
Мне вообще по синтаксису тайпскрипт приятнее всего, на го конструкции иногда слишком громоздкие получаются + бойлерплейт и всратая обработка ошибок
374 2013242
А почему лучшее в мире IDE Goland не показывает использования функции в других пакетах?
375 2013374
>>2013242
Потому что это очередное поделие от криворуких обезьян-олимпиадников из жид брейнс. Просто пара примеров, чтобы понимать примерный уровень:
1. Я использовал как интеллиж, так и голанд, и в обоих продуктах одна и та же проблема: периодически они перестают понимать импорты и видеть модули. Иногда решается очисткой кэша, иногда приходится сносить репозиторий и ставить заново. И это тянется уже несколько лет, несколько лет эти пидарасы не могут пофиксить такой явный баг, который, блять, еще и кочует из продукта в продукт.
2. Не знаю насчет голанда, но интеллиж течет, как сука: нельзя оставлять открытым более чем на неделю, иначе сожрет всю память. Я уж не знаю, как они умудрились получить утечки памяти в поделии на жяве, где верхний предел конфигурируется на уровне жвм, но они блять справились.
3. Охуительный юзер экспириенс. Ебучий баннер на старте, который всегда показывается поверх остальных окон. И мало того, все твои закрытые проекты на старте вместо тихого открытия в фоне, открываются в окнах, каждое из которых дергает фокус на себя, перекрывая прочие окна и просто не давая тебе заниматься другими делами, пока это говно грузится.
376 2013411
>>2013374
Это да, сам иногда с таких перлов охуеваю. Но всё равно лучше ничего не придумали.
377 2013459
>>2013242
Показывает даже в других проектах, по ктрл-клику
378 2013528
>>2013459
Ну, у меня не показывает((
Только функцию предлагает удалить
16190846747760.jpg42 Кб, 1177x662
379 2013576
>>2013411
vscode
380 2013618
381 2013619
382 2013668
Вот эту >>1990998 хуйню получится на го сделать с помощью goinsta: https://github.com/ahmdrz/goinsta ? Знаю основы го, хочу первое приложение с API написать
383 2013721
>>2013668

Я не против, делай.
384 2013866
Смотрите как я могу

https://play.golang.org/p/LIOOSR7jS7g
385 2014254
>>2013576
Ой да ну нахуй. Я вместе с vscode начинал знакомство с го, не представляешь сколько он мне нервов и времени сожрал.
Пока написал хелловорд, я успел столкнуться с:
-Бесконечным сохранением файла
-Через 10 секунд после запуска вскода, просто пропадало всё автодополнение
-Каким-то хуем вскод через раз ругался на импорт пакета "fmt", типо он не используется. При том что я юзал fmt.printLn и все компилилось
-Вообще не понимаю как, но этот сраный "редактор кода" несколько раз протекал и загружал всю систему, не мог в браузере сидеть. С мощными и громоздкими IDE от жидов такого ни разу не было, что характерно.

Хотя, для шарпа я всегда с удовольствием его использовал, никаких проблем ни разу не было. Так что всё же не он виновник перечисленных проблем, это всё кривой extension.
Полюбил go только после установки goland.
386 2014306
>>2014254

> IDE от жидов


Откуда информация?
387 2014311
>>2014306
Так ведь ЖидBrains.
Vimlogo.svg.png106 Кб, 1200x1202
388 2014321
1200px-EmacsIcon.svg.png262 Кб, 1200x1200
389 2014330
390 2014349
>>2014321
>>2014330
Не, спасибо, я лучше буду на листочке писать и в голове компилировать. А деплоить через AnusCI.
392 2014971
Это во всех языках со статической типизацией, или только в go при сравнении через "==" двух численных переменных разных типов ( например int и uint64 ), но с одинаковым значением, возвращается false?
393 2014987
>>2014971
Да, во всех. Ты сравниваешь через "==" не значения переменных, а ссылки на объекты.
394 2014992
>>2014971
Не пизди.
>>2014987
Не толсти.
395 2015027
>>2014971
в нормальных языках компилер ругнётся если ты попытаешься их сравнить
396 2015309
>>2014992

>Не пизди.


Сейчас попробовал в go playground это проделать, действительно при сравнении int и uint64 компилятор ругается.
Но я не один в один с такой проблемой столкнулся, у меня была переменная "a" типа uint64, со значением 0, которое задавалось извне.
Теперь самое интересное: a == 0 возвращало false, a == uint64(0) возвращало true. А если явно перед сравнением задать a = 0, то a == 0 тоже возвращал true. Очень странно...
1543.png12 Кб, 271x239
397 2015349
Почему в гоу нужна функция для вывода результата, почему нельзя просто Print ?
398 2015445
>>2015349
Потому что fmt может еще очень много похожих вещей делать, и выносить из него только print было бы странно.
399 2015854
>>2015349
Можно print[ln]
400 2015862
>>2015854
Но этой функции нет в спеке по этому код с ее использованием может в любой момент перестать компилироваться
401 2015895
>>2015854
Но этой функции нет в спеке по этому код с ее использованием может в любой момент перестать компилироваться
402 2016171
>>2015349
путь_к_функции.имя_функции() - это статический вызов в любом языке где есть пакеты
Только в некоторых путь к стандартной либе неявно добавляется, в некоторых можно статически импортировать функцию, а некоторые го
403 2016174
>>2015445
Не, почему не просто fmt.Printl("Hello world!") ? Зачем оборачивать в функцию?
404 2016179
>>2016174
Это из примера какого то? Видимо демонстрация как вывести результат функции. Можно и просто сразу строку вывести
405 2016182
>>2016174
Или ты про main? Это точка входа в программу, с нее начинается исполнение кода, в отличии от питона и жс, где код исполняется сразу сверху файла
406 2016309
>>1997704

>С такии настроем надо в тестировщики идти



Слыш, оптисист, блять. Когда у тебя крупная бэкэнд система то у тебя просто по закону больших чисел все потенциальные проблемы БУДУТ реализованы.

А теперь марш нахуй в жабоскрипте окошечки для веба пилить.
407 2016603
>>2016309
И тем забавнее твоя аргументация, ведь на го не получится построить достаточно высокоуровневые абстракции, без которых ни одна большая кодобаза не обходится. Хотя бы просто из-за отсутствия дженериков.
А теперь марш и дальше пилить микросервисы.
408 2016789
Какая у go парадигма программирования? Сказать что ООП - с говном сожрут. Но ведь и не процедурщина, и не функциональщина. Как это называется?
409 2016805
>>2016789
Процедурщина. Именно что процедурщина.
410 2016903
>>2016789
>>2016805
Все-таки ООП. Инкапсуляция представлена типами и их методами, полиморфизм - интерфейсами, а наследование, в отличие от других языков, - композицией. Ничего не мешает создать тип, наследующий свойства и методы другого типа, просто включив этот тип в объявление структуры. Тут особо умные возразят, что это нихуя не труЪ наследование, потому что отношение между сущностями не "является", а "содержит" (типа как автомобиль состоит из множества деталей, не являясь ни одной из них), но пошли они нахуй, ибо композиция позволяет получить то же поведение, что дает классическое наследование, но при этом более гибко, не связывая жестко сущности между собой. Так что я бы сказал, что в го у нас ООП на стероидах.
411 2016913
>>2016903
Ну тогда и сишка - ООП.
412 2016992
>>2016903
Согласен с каждым словом, вот только большинство гошников ужасно плюются когда такое заявляешь, при этом возразить ничего не могут. Наверное у них или детские травмы от абстрактных абстракций над абстракциями из прошлых языков, или они просто не знают что такое ООП, а думают что "ну это как в джаве епты"
413 2017046
>>2016903

>то же поведение



Это какое? Я не могу, например, передать экземпляр дочерней структуры в функцию, принимающую родительскую.
414 2017061
>>2017046
Во-первых, зачем? Используй интерфейсы, если тебе нужна функция, ожидающая какое-то общее для нескольких сущностей поведение. Во-вторых, если тебе все-таки это нужно, передай вложенную структуру.
415 2017170
>>2016903

> ООП на стероидах.


Это ооп на стероидах есть в любом языке и еще масса других паттернов
Снимок экрана в 2021-05-03 09-41-20.png45 Кб, 865x471
416 2017238
В чем ошибка?
417 2017244
>>1997704
Люди с тревожно-депрессивным расстройством на нем пишут. Или начинают писать нормальные, а выходят уже с приобретенным F41.2
Как и на крестах, кстати.
Мимо крестодебил с F41.2, даже от гомоармии откосил
418 2017247
>>2017238
А всё, кавычки лишние
419 2017250
>>2017238
в том что ты используешь 'фор и' луп в 21 веке
420 2017385
>>2017250
А что надо использовать?
sage 421 2017403
>>2017385
Я другой анон, но предположу, что твой собеседник недавно узнал про итераторы кстати, есть ли они в говне? и пихает их куда попало
422 2017411
>>2017403
Не, мы пишем циклы.
423 2017420
>>2017411
Но итераторы как раз для циклов используются везде. Учитывая что в голанге утиная типизация для интерфейсов итераторы как раз подходят под семантику языка.
424 2017487
Что такое, блядь, сектанская запарта?
425 2017510
>>2017487
Ты ебанулся?
426 2017514
>>2017510
Может это ты ебанулся?

>Растобляди завидуют, сектантская запарта не переваривает.


Это в ОП-посте написано. Ещё раз спрашиваю: что такое сектанская запарта?
427 2017526
>>2017514
Ты бы еще спросил, что такое говняк. Быстро в /b, учить матчасть.
428 2017544
>>2017526
Не сижу в /b на любых бордах уже 9 лет.
429 2018169
Какой же го охуенный, воистину лучший язык.
Раньше, когда только учил синтаксис, делал всякие задачки, смотрел на чужие проекты, он сам и go-way мне ну очень во многих моментах не нравился. Но чем-то сука привлекал.
Зато как только начал на нем писать более-менее настоящий проект, он начал мне сразу же люто доставлять. И нету ничего страшного в его специфичной обработке ошибок и прочих непривычных для других языков вещах.
Алсо, больше всего меня отталкивало отсутствие каких-то единых принятых инструментов, фреймворков с единственной расово верной структурой проекта, подходами и т.д., зато как только прочувствовал вкус свободы, сразу же все эти вещи стали мне отвратны.
Вот такие то дела. От ненависти до любви один шаг.
430 2018257
>>2018169

> он сам и go-way мне ну очень во многих моментах не нравился. Но чем-то сука привлекал


Когда-то наткнулся на понятие "притягивающее уродство", оно как нельзя лучше описывает такое. Это как ехать в метро, увидеть мужика с лицом странной формы и странным взглядом и пялиться на него исподтишка всю дорогу.
431 2018526
>>2018169
А что такое, этот go-way?
432 2018559
>>2018526
Это когда во главе угла лежит обработка ошибок не толстота, а цитата из блога майл ру, а все остальное НИНУЖНО.
433 2019151
>>2017403

>итераторы


Их нет, но ты можешь использовать горутину + канал + контекст, по ощущениям то же самое (можно использовать в for-range)
434 2019169
>>2019151
Как-то так, https://play.golang.org/p/QuWfMqU2gq-
Контекст нужен чтобы не допускать утечку горутин, за этим нужно следить. Но зато мы размазываем наши вычисления по нескольким тредам, что может быть полезно для тяжелых задач
sage 435 2019350
>>2019169
Нахуй так жить?
436 2019446
>>2019350
А мне норм
437 2019552
На Go можно написать имиджборду?
image.png1,5 Мб, 1375x749
439 2019645
>>2019574
КОЧАН
440 2019691
>>2019574
Спасибо, обязательно вкачусь в этот замечательный язык.
441 2020078
>>2019552
на чем угодно, работающим с вебом можно написать имиджборду.
442 2020504
>>2015349
А чё, fmt.Println - это не "просто Print"?
443 2020513
>>2020504
Нет.
444 2021241
Всем привет, хочу вкатится в go, ибо мне говорили, что go - один из лучших языков программирования для back-end и devops челиков.

Посоветуйте, с чего начать можно, тип, я видел в треде php небольшой интерактивный курс, решая который ты повышаешь свой скилл (как я понял, это авторский курс анона), а есть ли что-то подобное для go, чтобы было примерно так-же (интерактивный курс), а не только гайды и прочее
445 2021253
>>2021241
Читай шапку?
446 2021261
>>2021253
Это не совсем то, о чем я говорил. В разделе пыхи там прям дают задачки/идеи проектов, а здесь же просто синтаксису изучают, не?
447 2021306
>>2021261

Без опыта php тебе тяжело будет с го, поучись сначала решать интерактивные задачики с php-треда.
448 2021356
>>2021306
А если есть опыт с с# на базе университета - все равно стоит пыху погонять? Есть ли смысл тогда го дрочить, если есть пыха?
449 2021465
>>2021356
Есть. Похапе + goвно это нынче весьма популярный стек.
450 2021631
Для чего этот язык вообще нужен? Что на нем пишут вообще? Игры, десктоп приложения, бэк для сайта, скрипты ЧТО!?
451 2021729
>>2021631
Кубернетесы и прометеусы на нем пишут, сынок.
452 2021739
>>2021631
Бэк + различный серверный софт + некоторые наркоманы на нём пишут девопс.
image.png32 Кб, 554x768
453 2021785
Как же заебал это хомяк, будет голосование за нового маскота?
454 2021797
>>2021785
Пхп умер, можно слоника у него подрезать
image.png275 Кб, 1260x940
455 2021803
sage 456 2021873
>>2021797
Клитор у своей мамаши-шлюхи подрежь
457 2021884
Кто-нибудь пробовал (-buildmode=0) плагины совместить с CGO_ENABLED=0, т.е. чтобы рантайм был общим для приложения и плагинов, а-то как-то, блядь, плагины по 50 мегабайт - это уже слишком.
Пробовал когда-то не так уж давно, но нихуя не вышло, т.е. если плагинов нет, то всё збс, главное приложение маленького объема и работает, а с плагинами - хуй.
458 2021981
>>2021739
А на чем пишут devops не наркоманы и что такое devops вообще?
459 2022032
>>2021981
Девопс - это всякая админская скриптота, чтобы автоматизировать сборку дистрибутивов приложений и деплой на сервера. Пишут обычно на баше и питоне.
15992611045220.jpg556 Кб, 2000x910
460 2022038
>>2021981
yaml developer
461 2022044
>>2022038
Не только ямл, ещё они любят программировать на bat.
462 2022139
>>2022044
Why are you gay?
463 2023317
>>2020513
Почему? Потому что есть "fmt."?
464 2023693
>>1986204 (OP)
Здоров
Как кого-то из вас трахнуть в анал?
465 2023696
image.png3 Кб, 335x73
466 2023697
>>2015349
Можно.

>>2015862
>>2015895
Дегенерат, все встроенные функции описаны в пэкедже builtin https://tip.golang.org/pkg/builtin/

>>2016171
>>2020504
Позор
sage 467 2023698
>>2023697

> it is not guaranteed to stay in the language.


Значит, нельзя.
468 2023700
>>2023698
Можно, дебил.
sage 469 2023701
>>2023700
Нельзя, статикошиз.
470 2026330
Че там, завезли дженерики уже? А то я пропозал видел, а результата что-то нет.
471 2026550
>>2026330
Провели исследование, гоферы не осилят дженерики
472 2027125
>>2026330
Ждать в начале 2022-го, не раньше
473 2028180
>>1986204 (OP)
Аноны, поясните за работу GC в сишном коде. Когда я подгружаю DLL на Go в приложение на C и начинаю работать с памятью этого приложения из DLL, то насколько далеко лезет GC? Будет ли он сканить всю память процесса? Больше всего интересует задержка GC. Будет ли она околонулевая, если в DLL не будет аллокаций памяти? Или GC будет всю кучу сканить и ложиться на 10 мс?
474 2028189
>>2028180
Нет, GC не лезет в память, выделенную сишкой.
475 2029269
Объясните этот код пж по порядку что он делает

https://tour.golang.org/flowcontrol/5

Зачем например там минус перед иксом
476 2029398
>>2029269
Этот код о том, что не стоит вскрывать тему программирования, не твое это.
16142934670210.jpg25 Кб, 600x400
477 2029571
>>2029398

>Этот код о том, что не стоит вскрывать тему программирования, не твое это.

478 2029713
>>2029269
Только не говори, что ты из этих, которые учат Go первым языком.
479 2029996
Как гонять пиструн?
480 2030002
А нельзя вместо дженериков автоматом себе нагенерить сорцов функций, подставляя нужные типы куда надо?
Нечто вроде этого:

type T interface{}
type U interface{}
//go:generate <заклинание> T={TypeA, TypeB} U={TypeC, TypeD}
func DoSomething(val T) U {
...
}
481 2030036
>>2029269
1) Проверяем, является ли число отрицательным
2) Если да - рекурсивно вызываем сами себя и к результату добавляем "i", возвращаем
3) Если нет - берем квадратный корень и приводим его результат к строке
482 2030042
>>2030002
Кодогенерация - это антипаттерн.
483 2030043
>>2030002
Можно, https://github.com/cheekybits/genny так и работает. Вопрос только в том, что это требует дополнительной внешней тулзы, а так же нет нормального способа прикрутить к такой реализации constraint'ы. А значит есть возможность нагенерить некомпилируемого кода, что не есть хорошо.
484 2030045
Да и просто это не удобно. Такие вещи должны быть частью языка, а не костылем сбоку
485 2030143
>>2030002

сейчас так и делают, просто у петушков происходит взрыв анальной жопы - "РЯЯЯЯЯ, НЕ ЖИНЕРИКОВ, КО-КО-КО"

>>2030042

глупость это антипаттерн
486 2030200
>>2030143
Хуя горит
487 2030324
>>2030143
Кодогенерация это антипаттерн для глупых.
488 2030353
>>2030324
А для умных это не антипаттерн.
489 2030356
>>2030353
Сейчас бы использовать кодогенерацию и считать себя умным, лол!
490 2030467
>>2030002
Можно и нужно. Дженерикобляди не нужны.
491 2030500
>>2030467
Кодогенерацияплебс не нужен
492 2030665
>>2030500
Ну в плюсах уже сколько лет генерируют код через шаблоны, им норм.
493 2030684
>>2030665
В плюсах это часть синтаксиса, а не багованое васянское <заклинание>.
494 2030859
>>2030684
Тащемта плюсы начинались с транспилинга в сишку. Прямо таки рафинированная кодогенерация из палаты кода и генерации
495 2030867
>>2030859
Там была одна конкретная тулза Cfront с единственным правильным синтаксисом, а не 100500 всянских <заклинаний>.
496 2030880
>>2030859
А сишка с транспилинга в ассемблер! А ассемблер с транспилинга в машинный код!
497 2031202
>>2030867
Что ты повторяешь про васянов как попугай? Разумеется, должен быть единственно верный официальный инструмент для генерации кода, возможно основанный на одном из васяподелий. Вопрос не в васянстве, а в подходе
498 2031441
>>2031202
Вот когда никогда единственный верный инструмент появится, тогда дженерики и не будут нужны.
499 2031609
Пытаюсь написать прогу чтобы вывести квадрат числа, подскадите как правильно, вот так пробовал:

func rootsq (x int) int {
return (x * x)
fmt.Println(rootsq(2))
}
501 2031624
>>2031613
А что такого?
502 2031718
>>2031624
Рекомендую первым делом пройти го тур, а ещё лучше прочитать какую нибудь книгу типа: "С++ для начинающих".
503 2031720
>>2031718
>>2031609
А вообще Го - не самый лучший язык для начинающих, так как материала для ламеров почти нет. Начинай с С++, на ютубе есть годный плейлист от Гоши Дударя, потом если захочешь катись в Го. Уверен, что ты ещё не 30-летий лоб, так что времени тебе хватит, ещё успеешь.
504 2031804
>>2031720

>Начинай с С++


Ты бы еще посоветовал с перла начать.
505 2031882
>>2031804

>с перла начать


Шизик, это простой язык.
506 2031921
>>2031720

>С++


>от Гоши Дударя


Какие же зумеры дегенераты, просто пиздец. Предпочесть мутные видеокурсы от ютубного эксперта по всему нормальных книжкам.
507 2031971
>>2031882
По соотношению потраченные силы/профит такой же унылый и нахуй не нужный.
GaecXsgZG8Y.jpg38 Кб, 604x604
508 2032014
>>2031720

>Уверен, что ты ещё не 30-летий лоб



34-летний
509 2032045
>>2031921
Долбоёб, ты действительно считаешь, что тот анон - полностью обнадеженный, пытающийся впопыхах вкатиться в эту сферу, будет забивать себе мозги Страуструпом? Ты хочешь сказать, что ему ещё прийдется дополнительно превозмогать и читать тех. литературу? Пускай поверхностно пройдется по всему этому делу и поймет, надо ли оно ему.
510 2033730
>>2032045
Ну я читал его книгу и смотрел Тимофея на ютубе, и могу смело сказать что кресты это пиздос какой уродливый язык, учить по нему прогрество лишнее забивание головы старым нечитабельным говном
511 2034510
Вписал в конфиге postgre "datestyle = 'iso, dmy'". Когда пишу прямо в консоли запросы, все работает, могу поля с типом date заполнять в формате типа "22.07.2021".
Вот только когда пытаюсь аналогичное провернуть через го ( стандартная библиотека database/sql, драйвер lib/pq ), он мне рыгает ошибку и дальше ожидает даты формата mm.dd.yyyy. ЧЗХ? Куда мне вообще копать?
123.jpg20 Кб, 1004x140
512 2035046
Выкатываемся
513 2035109
>>2035046
С добрым утром, соня.
514 2047973
>>1986275
сложные конструкции требуют сложного мышления

ПЩ делался для
-- быстрого обучения недорогих разрабов
-- уменьшения количества человеко-ошибок
-- быстрого выполнения

Вот и всё
515 2048123
>>2047973
Похоже, по первому пункту полный проеб.
516 2048145
>>1990938
пиздаболов полон мир, и каждый хвалит своё гнездо

вон РНР уже лет 30 хоронят, всё никак
517 2048852
>>2048123
Ну обучение действительно быстрое. А то, что рабы дорогие вышли - так это рыночек порешал, язык не самый популярный
518 2049911
>>2048852
Двачую, я с бекенда на ноде, с джаваскрипта быстро переучился на го, работать легче и зарплата повысилась неплохо, хотя я и до этого нормально так зарабатывал.
519 2049989
>>2049911
Ты менял компанию, чтобы перейти на го? Если да, то какое к тебе было отношение? У тебя ж по сути нет продакшен опыта с го, так что с этой стороны ты джун, хотя опыт разработки в целом есть.
520 2050039
>>2049989
Не менял, перешёл в другую команду внутри своей компании, проработал чуть больше полугода, потом в итоге в резюме написал полтора года опыта на го, то есть включил туда весь срок работы в этой компании.
521 2050046
>>2050039
Понял, спасибо.
522 2050208
>>2049989
Я переходил с пхп на го без коммерческого опыта на го - довольно много работодателей готовы со мной были пообщаться, несмотря на это. Просто спрашивали, что я делал на прошлых местах, какие задачи решал, какими инструментами пользовался.
2 или 3 оффера я получил из 6-7 собесов.
Так что можно не сильно переживать на этот счет - как к джуну адекватные конторы к тебе точно не будут относиться.
523 2050353
>>2050208
А предлагали больше, чем ты тогда получал за пыху?
524 2050380
>>2050353
Не везде (в одной конторе предложили столько же, сколько получал; в другой - на ~30% меньше), но в итоге ушел на +30%
525 2051766
Стоит вкатываться(пока всякие гикбрейнсы не наплодили овер 999 курсов...)? Как с поиском работы?
527 2052447
Как запустить это в браузере? Через локалку пыхи (-S localhost) ошибку выдает что не найдено

https://play.golang.org/p/A-5ovbM1v6q
Снимок экрана в 2021-06-01 21-04-54.png56 Кб, 932x438
528 2052458
>>2052447
Вот
529 2052703
>>2052447
Что такое "локалка пыхи" и зачем она тебе при попытке запустить го сервер?
Локально это запускается через go run ./path/to/cmd/server/main.go
530 2053458
>>2052703
Пишет 404 page not found
531 2053514
>>2051975
Это по всей россии?
532 2054369
533 2055776
>>2054369
пизда
Там в москве только 1к вакансий
534 2056347
>>2052458
Выглядит словно ты пытаешься через https долбиться в http порт
535 2058107
>>2051975

> по всей России


Это что за откровенное наебалово?

Вторая пикча - отфильтрована по айти с вариантом "Go"
image.png50 Кб, 493x757
536 2058108
>>2058107
Фикс первой пикчи, случайно приложил результат без фильтра по ойти, вот корректная
537 2060206
>>2058108
Ну и? Ну даже +600 вакансий - это капля в море, пчел.
538 2061050
>>2060206
Их 2500, пчел. Go в выборку тоже надо включать, а не только Golang. Это вполне дохуя.
image.png35 Кб, 512x264
539 2061080
540 2061439
>>2061050
Это включая вакансии go-go танцовщиц
541 2062429
>>2061439
Дебил, на скрин глянь, там специально фильтр по айти и программированию для тупых сделан, ты, видимо, еще ниже тупых
542 2067180
>>2062429
Я пошутить пытался. Ну, братишка, ну не стукай
Тред утонул или удален.
Это копия, сохраненная 22 июня 2021 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски