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