@gogolang

Страница 1379 из 1630
Daniel
08.09.2018
17:55:02
ну вот мы тут думаем, как завезти compile-time контроль иммутабельности в go. коллега Роман целый пропозал написал. а я свой не написал пока, но напишу обязательно

snip
08.09.2018
17:56:15
ну вот мы тут думаем, как завезти compile-time контроль иммутабельности в go. коллега Роман целый пропозал написал. а я свой не написал пока, но напишу обязательно
Ну мне это видится как попытался привнести идею из другого мира в мир го, идея иммутабельности хорошая и нужная, но const это сложно и уродливо

Я даже думаю что дженерики и обработку ошибок им пропихивают откуда то сверху

Потому что сделать это просто и при этом правильно как то не получается

Google
Daniel
08.09.2018
18:00:06
ну вот именно пропозал Романа оставляет ощущение чуждости, да

Roman
08.09.2018
18:00:31
Ну мне это видится как попытался привнести идею из другого мира в мир го, идея иммутабельности хорошая и нужная, но const это сложно и уродливо
const это может быть и уродливо (красота субъективное понятие), но это не сложно, а наоборот проще, чем сидеть гадать и писать копирующие функции и циклы, городить ненужные интерфейсы и т.д.

Daniel
08.09.2018
18:00:42
в первую очередь потому, что слишком многовариантные конструкции позволяет делать

по мне, так надо выделить два-три основных применения а все остальное пользователю конфигурять не давать

Roman
08.09.2018
18:02:06
в первую очередь потому, что слишком многовариантные конструкции позволяет делать
типа reference to const и const reference? это да. Но если так не делать то можно получить ограничения на которые потом будут плеваться

Alexander
08.09.2018
18:02:14
щас бы иммутабельность на уровне языка, как в кложурке.

Daniel
08.09.2018
18:02:40
кложурка - она ведь лисп. а лисп - это чистые функции

Roman
08.09.2018
18:05:29
@onokonem кстати как думаешь кому можно бы было на review отправить? кто будет заинтересован?

Daniel
08.09.2018
18:05:38
пока непонятно

у нас тут или хейтеры go, или хейтеры иммутабельности :)

Roman
08.09.2018
18:06:25
аналогично, в любом случае ещё на форум выставлю как только последнии штрихи дорисую

у нас тут или хейтеры go, или хейтеры иммутабельности :)
хейтеров иммутабельности существовать не может, могут существовать только люди которые работают одни над проектами не более 5к LOC и следственно не понимают зачем всё это ну и конечно безответственные люди которым "и так сойдёт, меня это не затронет"

Google
Roman
08.09.2018
18:09:49
software engineering is all about trade offs

[Anonymous]
08.09.2018
18:10:04
Кстати, я вот всегда замечал что последователи ФП яростно дрочатъ на иммутабильность, неизменность данных (из-за этого не юзают циклы, предпочитая рекурсию и пр.). Но почему в проде всякие Хаскели и Кложуры абсолютно не популярны?

Pavel
08.09.2018
18:16:57
ключевое слово "как-то"))
Собери статистику по багам — сколько багов в этих проектов было из тех, что твой пропозал фиксит.

ключевое слово "как-то"))
Ну в продакшене они стабильны.

snip
08.09.2018
18:18:56
Собери статистику по багам — сколько багов в этих проектов было из тех, что твой пропозал фиксит.
Вот хорошая и правильная идея исходить из реальных кейсов и именно их решать, а не брать концепцию из другой экосистему и пытаться натянуть её придумывая гипотетические кейсы

Pavel
08.09.2018
18:19:16
ключевое слово "как-то"))
Просто ты давишь за что-то абстрактное. Но у тебя есть большие открытые проекты и куча багов и PR. Покажи примеры.

Daniel
08.09.2018
18:19:38
вручную их анализировать, что ли?!

Pavel
08.09.2018
18:19:50
Алексей
08.09.2018
18:19:52
Парни, а как вы организовываете свой код? Придерживаетесь ли вы правил дядюшки боба (про 4 layer), или же вы все разделяете? К примеру go way, это иметь в домене entity и интефейсы сервсиов, репозиториев. А дробить пакеты под enity, интерфейсами для репозиториев, сервисов и хэндлеров считается вроде как не кошерно.

Pavel
08.09.2018
18:20:50
Эти данные в пропозале только поднимут ему ценность.

Roman
08.09.2018
18:22:45
Просто ты давишь за что-то абстрактное. Но у тебя есть большие открытые проекты и куча багов и PR. Покажи примеры.
Вы мне за это заплатите?)) Мне сейчас никто за этот пропосал не платит, я можно сказать дарю комьюнити своё время ради общего блага. Ты не поверишь сколько нервов и времени у меня уже ушло на данный документ а ещё предстоит сравнивать его с другими предложениями. Я вам просто скажу, что вид homo sapiens сделало доминирующим 2 способности: 1. способность абстрактного мышления 2. способность принимать гипотезы всерьёз если вы считаете, что описанные сценарии не могут быть опасными, тогда я вам ничем помочь не могу.

Pavel
08.09.2018
18:24:03
Я не понял тут отрицают что данные по большим открытым проектам сделают пропозал лучше?

Daniel
08.09.2018
18:24:35
жалуются на свою неспособность быстро такие данные собрать

Pavel
08.09.2018
18:24:47
В чем проблема, ты говоришь что в больших проектах — проблемы. Факт чек читателям делать что ли?

snip
08.09.2018
18:25:53
Если проблема есть значит и реальные кейсы должны быть иначе это надуманная проблема

Google
Daniel
08.09.2018
18:26:02
хотят - пусть делают

Pavel
08.09.2018
18:27:03
Топовый НЛП.

Roman
08.09.2018
18:27:15
@selslack Павел, вы не поняли сути моих слов. Суть проста: я человек. У меня 14 часов в день максимум. Я просто не успеваю. Детальный анализ проблем таких проектов обойдётся недёшево. Если же это был намёк мне помочь подкрепить документ аргументами из больших проектов на Go - с радостью! Очень буду рад!

Daniel
08.09.2018
18:27:35
Топовый НЛП.
коллега, я в шаге от того, чтобы выдать вам ro

Roman
08.09.2018
18:32:09
кстати, если не секрет, скажите, как вы пришли к этому proposal: изучали решение этой проблемы в разных языках, или исходя из изучения исходников проектов >5 LOC ? или оба варианта? или другой вариант?
многолетний опыт подсказывает, как бы субъективно это не звучало. Вся аргументация с приближенными к реальности примерами описаны в документе и были расжованы мною в чате уже неоднократно. Если вам нужны конкретные примеры из конкретных проектов как доказательство гипотезы - я вам не могу помочь, у меня недостаточно времени анализировать проекты и их баги (Если я найду желание и время это сделать, то я постараюсь конечно, но я лишь человек).

Roman
08.09.2018
18:34:04
большинство концепций достаточно объяснить приближенными примерами, потому-что у хорошего разработчика достаточно хорошее абстрактное мышление для выявления смысла и выгоды

snip
08.09.2018
18:36:21
Ну вот го это не про концепции это про реалии, если концепция верная но в реальности не встречается значит не нужно

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

eugene
08.09.2018
18:40:10
В го нет многих правильных концепций и подозреваю, что многие из них никогда не появятся
для меня было удивительно, что в go вот так можно написать: false := true

Roman
08.09.2018
18:40:50
Ну вот го это не про концепции это про реалии, если концепция верная но в реальности не встречается значит не нужно
Go это не про "банальную простоту синтаксиса". Go это про устранение легаси, иной подход к конкуррентности и устранение неправильных концепций таких как наследование имплементации и прочих, которые показали себя нехорошо в прошлом. mutable shared state встречается в реальности в абсолютно каждом вашем проекте! Будь то 1к LOC или 2kk LOC. Slice aliasing это mutable shared state, и вы с ним бессомненно часто встречаетесь, вы просто привыкли с ним жить и копировать слайсы (slow + boilerplate). Pointer aliasing это mutable shared state и встречается он не реже.

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

A
08.09.2018
18:43:45
Вот что они в Го 2 с легаси будут делать?!

Roman
08.09.2018
18:44:02
Вот что они в Го 2 с легаси будут делать?!
не будет Go 2, уже обсуждали.

Google
Roman
08.09.2018
18:46:18
если вы её не видите или видить не хотите, тогда конечно для вас её нет))

snip
08.09.2018
18:46:34
Ну вот пока никто не привёл примеров из реальной жизни, типа за последний месяц три бага словил которых не было бы если бы был const

Roman
08.09.2018
18:46:54
snip
08.09.2018
18:47:28
Roman
08.09.2018
18:48:58
Там теореьизирование и всасывание из пальца
ну что-ж, тогда я желаю вам удачи в мире IT, коллега. С такой моделью мышления вам успех гарантирован ? а я пожалуй пойду пить чай, устал таки

Admin
ERROR: S client not available

Roman
08.09.2018
18:50:23
Роман, я без троллинга предлагаю вам пойти в го_тим в Гугл.
увы, у меня другие жизненные приоритеты на данный момент, хотя всё возможно.

Pavel
08.09.2018
18:50:38
У вас будет больше оплачиваемого времени улучшать го.

Peter
08.09.2018
18:50:39
Иногда конечно хочется объявить константную ошибку или массив, но на практике оказывается, что это не особенно нужно

Pavel
08.09.2018
18:50:59
Платят там вроде нормасик.

Alexey
08.09.2018
18:53:17
увы, у меня другие жизненные приоритеты на данный момент, хотя всё возможно.
а что со стандартной библиотекой? это же половину всего переписывать чтобы было идиоматично иммутабельным структурам.

eugene
08.09.2018
18:54:14
Roman
08.09.2018
18:54:56
а что со стандартной библиотекой? это же половину всего переписывать чтобы было идиоматично иммутабельным структурам.
всё уже продумано и описано (по большей степени) All proposed changes are fully backwards-compatible and don't require any breaking changes to be introduced to the language. Code written in previous versions of the Go 1.x programming language will continue to compile and work as expected. https://github.com/romshark/Go-2-Proposal---Immutability#2-proposed-language-changes

а что со стандартной библиотекой? это же половину всего переписывать чтобы было идиоматично иммутабельным структурам.
если же вы конкретно про "idiomatic completeness" тогда можно некоторые моменты переписать, но не обязательно.

Alexey
08.09.2018
18:57:50
если же вы конкретно про "idiomatic completeness" тогда можно некоторые моменты переписать, но не обязательно.
да, я про то чтобы все было идиоматично. потому что пока у меня не будет в экосистеме иммутабельного http клиента и всего остального будет очень сложно

Roman
08.09.2018
18:59:08
да, я про то чтобы все было идиоматично. потому что пока у меня не будет в экосистеме иммутабельного http клиента и всего остального будет очень сложно
я не думаю что это супер сложно. Потому-что иммутабельность наоборот убирает многие ненужные строки кода и порой её можно вставить в стиле "plug'n'play". Это не генерики, где нужно серьёзно код перелопачивать

Alexey
08.09.2018
19:01:55
я не думаю что это супер сложно. Потому-что иммутабельность наоборот убирает многие ненужные строки кода и порой её можно вставить в стиле "plug'n'play". Это не генерики, где нужно серьёзно код перелопачивать
да, написать новое не сложно, но если вся экосистема будет возвращать мутабельные слайсы, то мотивации использовать иммутабельные в своей песочнице у меня будет мало

Google
Alexey
08.09.2018
19:02:56
ну, сейчас тебя заклюют )

тут не любят предложений добавить "лишних" фич

Roman
08.09.2018
19:04:25
тут не любят предложений добавить "лишних" фич
давайте без утвержденией "лишнее")) я так не смогу спокойно чай пить))))

я-ж евангелист))

Alexey
08.09.2018
19:04:57
давайте без утвержденией "лишнее")) я так не смогу спокойно чай пить))))
а я своего мнения не выражаю, я описываю свое ощущение от сообщеста

Daniel
08.09.2018
19:07:04
я уже говорил и повторю

Alexey
08.09.2018
19:07:26
так или иначе это шаг в правильное направление. Хуже иммутабельности только её отсутствие
Я бы доабвил какую-то секцию об этом в пропозал. Я могу сказать, что, например, использовать иммутабельные структуры в java очень сложно, несмотря на то, что язык позволяет их создать и энфорсить. Возможность есть, бибилиотеки есть, но по факту использовать нельзя. Мутабельность лезет ото всюду.

Это там еще строчки иммутабельные

Daniel
08.09.2018
19:08:04
единственный реалистичный сценарий - это сделать линтер и сделать его популярным. а уж потом и разрабы go подтянутся

Alexey
08.09.2018
19:08:35
не совсем понял о чём ты предлагаешь написать
какой план со стандартной либой. потому что если плана нет, то выглядит все тухло.

тухло не с точки зрения возможностей языка, а с точки зрения адопшена

Daniel
08.09.2018
19:09:04
а не похер ли нам на стандартную либу?

Roman
08.09.2018
19:09:22
единственный реалистичный сценарий - это сделать линтер и сделать его популярным. а уж потом и разрабы go подтянутся
я уже об этом мозгую с твоим предложием о постфиксах типов. Ещё не дошёл до этого момента. Так-же сложно оценить сколько времени уйдёт на подобный линтер

snip
08.09.2018
19:09:28
Roman
08.09.2018
19:10:18
какой план со стандартной либой. потому что если плана нет, то выглядит все тухло.
ну в принципе можно повыискивать парочку примеров из стд либы которые являются subject'ом для иммутабельности

snip
08.09.2018
19:10:30

Страница 1379 из 1630