nvkv
Есть очень простая абстракция Hight Order Functions
nvkv
она даже в Го есть
nvkv
на основе этой абстракции есть широко распространенные абстракции map, reduce и filter
nvkv
то есть чтобы отфильтровать массив ты пишешь просто
array.filter((x) => x > 2)
nvkv
(код условный)
nvkv
в го это цикл с стейт-переменной на 4 строки минимум
nvkv
зачем?
nvkv
nvkv
я говорю о примитивных вещах, вроде HOF или мапа
🏳️ Phil
работать надо, а не по нутру лазить
А потом рвать на жопе волосы, получив драматический первоманс или сайдэффект, потому что ты просто не так использовал либу. Я то ли дебил, то ли все дебилы. Я примерно с каждой первой либой вляпываюсь в скрытые ограничения. Это даже не про Го. И часто бывали моменты, когда очень жалел, что не заглянул внутрь. А часто раздраконивал либу, потому что абстракции были хероватыми
nvkv
гоферы, ну вы чо
🏳️ Phil
гоферы, ну вы чо
Да какой я гофер, я на Го две строчки пока написал. Это общая тема для всего.
nvkv
🏳️ Phil
nvkv
в той же кложе, например, хэшмапы не текут, внезапно
nvkv
правда придётся учить ужасные абстракции
🏳️ Phil
Мы вообще начали с того, что плохой или неплохой Го язык. Видишь, плохость "отсутствие абстракций" пока оспаривается. С копипастой я вообще проблемы не вижу
Roman
nvkv
nvkv
Roman
Или магия с указателями под капотом и мучения tlb?
nvkv
за перфоманс кложи не готов ничего сказать
nvkv
nvkv
но под капотом
nvkv
nvkv
тебе надо поменять поведение накопипащенного
Roman
но под капотом
Ну так мы приходим к тому, что абстракций хороших почти нет и если нужна скорость, то печаль-беда
nvkv
nvkv
но го, я извиняюсь, не самый быстрый язык на свете
Roman
Вот например, как в гошечке получить пачку udp пакетов за 1 сисколл?
Roman
nvkv
кстати, в расте абстракций сильно больше :)
nvkv
и он таки быстрее
nvkv
в расте и алгебраические типы есть, и HOF
nvkv
а ещё там есть жырная шняга Borrow Checker
nvkv
который сложный, сука
nvkv
и его надо учить
Roman
Я знаю, что раст быстрее.
Roman
Но мой поинт в том, что большинство абстракций текут и они вообще плохие
nvkv
Да я даже соглашусь с тобой, пожалуй
nvkv
однако с абстракциями код писать сильно проще и быстрее получается
nvkv
протечки лучше знать, конечно, но это не обязательно для kickstart
nvkv
обычно протечки уже на готовом коде проще профайлером, документацией и такой-то матерью достать
Roman
Я не про память по-прежнему
nvkv
в приличных местах в документации к типу просто сразу пишут thread safe он, например, или нет
nvkv
это я для примера
Roman
Roman
Потому что создание гороутины довольно дорого
nvkv
я себе сейчас пытаюсь представить, сколько горутин нужно заспавнить, чтобы рантайм вылез в топ
nvkv
оно не так уж дорого, в конце концов
nvkv
Anyway
nvkv
Мой поинт относительно языка го и всего это чудесного мероприятия такой
nvkv
1. Язык го, как язык, ужасно примитивный
2. Для тех целей, для которых он появился это отлично
nvkv
Я вот с недавних пор на го пишу и мои цели полностью совпадают с целями Гугла
nvkv
мне надо чтобы мой код могли читать и поддерживать много людей разного уровня подготовки
nvkv
и тут ничего лучше го я придумать не могу
Valery
Не знаю что тут за холивар
Valery
Но го — лучший язык
🏳️ Phil
Valery
Вы где-нибудь видели более милого талисмана?
nvkv
Valery
https://yandex.com/images/search?text=gopher%20golang
nvkv
в Plan 9
nvkv
Рене Френч охуенная
Ivan
nvkv
Roman
nvkv
о
nvkv
к слову о талисманах
🏳️ Phil
nvkv
вы видели талисман нового проекта гугла?
nvkv
Upspin