Daniel
и?
Zver
Что используете как бэкенд для SPA сайтов? public poll net/http – 17 👍👍👍👍👍👍👍 37% chi – 11 👍👍👍👍👍 24% Другой – 8 👍👍👍 17% gin – 4 👍👍 9% echo – 4 👍👍 9% go-swagger – 2 👍 4% 👥 46 people voted so far.
Olzhas
За три варианта нельзя проголосовать?
Daniel
даже за два нельзя
Alexey
и?
И поэтому я не вижу смысла ее писать. Видимо нужно время, чтобы понять зачем они нужны или почему кодогенерация это плохо. Или может быть пример выдадут. Или лимбу покажут. Но важно чтобы это был кто-то из главных. Отсылка к авторитету очень сильна в го сообществе. А тратить время что бы услышать что это можно сделать с помощью кодогенерации. Зачем?
Zver
За три варианта нельзя проголосовать?
Видимо надо было другого бота брать.
Daniel
И поэтому я не вижу смысла ее писать. Видимо нужно время, чтобы понять зачем они нужны или почему кодогенерация это плохо. Или может быть пример выдадут. Или лимбу покажут. Но важно чтобы это был кто-то из главных. Отсылка к авторитету очень сильна в го сообществе. А тратить время что бы услышать что это можно сделать с помощью кодогенерации. Зачем?
коллега, я, вообще-то, пишу на плюсах и на яве. я знаю, как устроены темплейты и генерики, мне не надо ничего "объяснять" но пример ваш был, насколько я помню, и не про генерики вовсе, а про тип-сумму. которую мы делаем на интерфейсах и тайп-свитчах, и для которой, по хорошему, нужно наследование, а не генерики
Alexey
Окей. Продолжим как их зарелизят.
Daniel
ну и на вопрос "зачем" есть ответ: чтобы иметь возможность безнаказанно пукнуть "а в го нет генериков". если вы и так не собираетесь пукать в публичном месте - можно ничего не писать :)
Алексей
стоп, так вроде с тем, что в го нет дженериков (пока нет) никто и не спорит
Daniel
в го 1 их и не будет
Olzhas
Тут вопрос нужны ли они
Daniel
почему пассивная?
Oleh
Опять холивары на тему дженериков?
Daniel
утром был всплеск
Daniel
потому как нам их пообщали в go2
Алексей
Тут вопрос нужны ли они
ну если пустые интерфейсы и кучу тайпкатсов повсюду пихать, то нет, действительно не нужны
Oleh
Надо в правила чата написать запрещенные темы вроде дженериков)
Anatolii
ребята просто в других чатах волнуются что мемасик умрет
Oleh
А и нытье в сторону кодогенерации и рефлексии
Roman
А что у нас есть из обобщенного программирования есть?
Daniel
хотите порассуждать о необходимости генериков в го - сначала предоставьте статью
Алексей
хотите порассуждать о необходимости генериков в го - сначала предоставьте статью
так я же только что написал кому и почему дженерики не нужны
Евгений
Кто юзал nats streamign на большом проекте? Насколько он: - надежен - быстр - масштабируем?
Roman
в каком смысле?
В первую очередь хочется хешмапы с произвольными ключами/значениями.
Zver
э, а где грэйм?
А им уже пользуются? 😳
Kirill
А им уже пользуются? 😳
он prod ready уже год с хером
Daniel
В первую очередь хочется хешмапы с произвольными ключами/значениями.
они и так же :) на ключи есть ограничения, но их можно обойти
Daniel
основное легитимное применение генериков - это коллекции, да
Zver
он prod ready уже год с хером
Тогда - извиняйте.
Daniel
но я боюсь, что как только нам их дадут - энтузиасты запилят на них наследование (они все время пытаются), и о читабельности можно будет забыть
aadz
А можно правильную ссылку?)
Sorry https://play.golang.org/p/rR7IFG-MdeX
Anatolii
основное легитимное применение генериков - это коллекции, да
так ради этого и хотим же, надоело каждый раз писать параллельную обработку списка и сбор результатов
aadz
А можно правильную ссылку?)
rand.Seed достаточно вызвавть один раз. И константы лучше поближе определять, так как глобальные лежат далековато
Daniel
а?!
Anton
Sorry https://play.golang.org/p/rR7IFG-MdeX
Да, rand.Seed я уже пофиксил, Даниил подсказал мне) А насчёт констант учту, спасибо!
Daniel
вот насчет констатн надо разобраться
Daniel
что значит - лежат далековато?
aadz
что значит - лежат далековато?
Насколько я понииаю, глобальные константы будут в ELF лежать в секции символов .symtab. Хотя да, надо разобраться и повтыкать в ассемблер, каким образом Go в данном слуае работает с глобальной константой из первого варианта
саша
они и так же :) на ключи есть ограничения, но их можно обойти
Вообще-то - не коллекции, а контейнеры. Например с генериками наконец-то мьютекс можно будет не рядом в структуру класть, а оборачивать в неё всю структуру.
Anatolii
что занчит обернуть структуту в mutex?
Anatolii
это типа все методы synchronized ?
Anatolii
а толку с этого?
саша
Тут же например на ум приходят ленивые итераторы, они же потоки. Абстракции для всяких параллельных числодробилок.
саша
что занчит обернуть структуту в mutex?
Это значит, что у вас значение типа Mutex<MyStruct>. При этом достучаться до обёрнутого значения MyStruct ты не сможешь без вызова метода Lock, который тебе будет возвращать указатель на это самое значение.
саша
связь ленивых вычислений с генериками я пока не уловил
Связь в том, что ленивые операции над коллекциями как правило хорошо обобщаются. С паралельной обработкой коллекций то же самое. Посмотрите вон например на rayon-rs.
саша
а это точно нужно? а зачем?
Чтобы снизить когнитивную нагрузку, очевидно же.
саша
Type Driven Development
Daniel
давайте без лозунгов :)
Daniel
пока Mutex<MyStruct> для меня когнитивную нагрузку только увеличил
саша
Значение обёрнутое в Mutex даёт тебе знать о том, что данные тут читать/изменять без лока нельзя. Более того, система проконтролирует, чтобы никакой Вася не забыл об этом.
Anatolii
Type Driven Development
какой тут type driven?
Anatolii
система не проконтролирует что Вася забыл отпустить лок
Anatolii
в хаскеле есть STM - но он намного приятнее и там Вася не забудет лок отпустить
Anatolii
по поводу Type Driven Development есть даже книга
Anatolii
но там не про го
Anatolii
система не проконтролирует что Вася забыл отпустить лок
и что вася не пытается взять один и тот же лок 2 раза
саша
Anatolii
да тут линейных не надо
саша
да тут линейных не надо
Любому нормальному человеку очевидно, что линейные типы нужны везде o/