@gogolang

Страница 1348 из 1630
Roman
03.09.2018
21:52:08
чет тут не понятного? есть слайс - можно мутировать. Есть объект с доступом по индексу, внутри которог ослайс - нельзя мутировать. Нахер ещё что-то изобретать? чтобы запутать джунов и усложнить коде ревью?
знаете почему вы городите wrapper объекты, ради того чтоб слайс защищать? потому-что нет immutability ? вы можете добиться гарантии иммутабельности только враппером. Короче думайте сами, коллега, как вам удобнее, но я с вами не согласен, я скорее единомышленников ищу ?

Pawel
03.09.2018
21:54:02
Google
Daniel
03.09.2018
21:55:13
никак

Roman
03.09.2018
21:55:21
никак
да вот и я о чём

Alexander
03.09.2018
22:11:11
Я чего-то не понял, или все считают, что добавления модификатор const при объявлении переменных или параметров функций как-то поломает совместимость?

Alexander
03.09.2018
22:11:58
вот я и не понял. Чем плохо сказать лишний раз const, если надо?

Оно же для компилятора, по сути, чтобы он ругался, если что

Roman
03.09.2018
22:13:59
Оно же для компилятора, по сути, чтобы он ругался, если что
совершенно верно, компилятор должен думать за нас как можно больше, а мы должны описывать API'шки как можно более точно это устраняет ошибки, экономит дебагинг неявных ошибок и по очень мало стоит с точки зрения написания кода (это-ж вам не врапперы городить!) плюс ещё и небольшой прирост производительности

Alexander
03.09.2018
22:14:53
не, я, наверное, невнимательно что-то не понял тогда

Я бы модификатор const хотел!

Daniel
03.09.2018
22:15:28
а я, повторюсь, хотел бы мотификатор mutable :)

Google
Daniel
03.09.2018
22:15:57
потому, что это будет меня сразу настораживать

Roman
03.09.2018
22:16:07
а я, повторюсь, хотел бы мотификатор mutable :)
но тогда-же ломается совместимость ?

Alexander
03.09.2018
22:16:11
А оно и так разве, не все изменяемое по умолчанию?

Daniel
03.09.2018
22:16:29
я бы хотел других умолчаний

Alexander
03.09.2018
22:16:38
угу

Daniel
03.09.2018
22:16:42
Alexander
03.09.2018
22:17:20
я бы хотел других умолчаний
ну, все именяется, все течет, если не сказано обратного. Ты прямо картину мира хочешь изменить

Roman
03.09.2018
22:18:05
я бы хотел других умолчаний
ты меня неправильно понял, я бы тоже хотел иммутабельность по умолчанию и какой-нить mut или mutable оператор.. но я исхожу из того что нельзя рушить экосистему поломанной совместимостью и ломать сотни, тысячи библиотек... я лишь выбираю из всех зол - меньшее зло, ради общего блага

Alexander
03.09.2018
22:18:29
Нельзя вот так взять и сделать все окружающее immutable

Zaur
03.09.2018
22:19:19
а я, повторюсь, хотел бы мотификатор mutable :)
Эт чё, типо всё - конст, хочешь менять: пиши mutable? O_o

Roman
03.09.2018
22:19:51
ну, все именяется, все течет, если не сказано обратного. Ты прямо картину мира хочешь изменить
предполагаю что, если начинать с начала, тогда "Go 2.0" лучше переименовать в "Stay 1.0" ?

Daniel
03.09.2018
22:20:05
видишь, иммутабельность по умолчанию может быть полезна 1. оптимизатору 2. параллелизатору (пока нет такого, но можно бы и сделать) 3. сборщику мусора (эту мысль я до конца не додумал)

Roman
03.09.2018
22:20:27
Эт чё, типо всё - конст, хочешь менять: пиши mutable? O_o
да, это гораздо безопаснее с точки зрения оформления API

Daniel
03.09.2018
22:20:36
Roman
03.09.2018
22:22:02
Roman
03.09.2018
22:22:41
помню как я в начале аллергично реагировал на "Capital letter for public fields and functions"

Google
Alexander
03.09.2018
22:22:42
Ну, разделение - это вобще катастрофа! Уже столько хороших вещей (библиотек) на Go 1 написано... И что тогда делать?

Roman
03.09.2018
22:22:54
Daniel
03.09.2018
22:23:04
с питоном беда в том, что пришлось у пользователя держать обе версии, и две версии либ, и все вот это вот

у нас не так же

Daniel
03.09.2018
22:23:49
Daniel
03.09.2018
22:24:29
да почему же

Zaur
03.09.2018
22:25:00
Это уже новый язык получается

Daniel
03.09.2018
22:25:07
так да

Zaur
03.09.2018
22:25:07
Легче так и сделать

Alexander
03.09.2018
22:25:14
ну, и одним работать на Go1, а другим - на 2. И вместе им не сойтись (c)

Daniel
03.09.2018
22:25:31
смотрите

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

и уж точно можно сделать go2 так, чтобы go в него конвертился автоматически

Daniel
03.09.2018
22:26:58
:)

вообще - да

Alexander
03.09.2018
22:27:09
и уж точно можно сделать go2 так, чтобы go в него конвертился автоматически
но еще недостаточно, чтобы аккуратно конвертировать mutable в его противоположность

Daniel
03.09.2018
22:27:24
это да

Google
Daniel
03.09.2018
22:27:39
вызовам с go придется mutable прописывать

или конвертить, пробовать компилять, репортить проблему

Roman
03.09.2018
22:28:08
видишь, иммутабельность по умолчанию может быть полезна 1. оптимизатору 2. параллелизатору (пока нет такого, но можно бы и сделать) 3. сборщику мусора (эту мысль я до конца не додумал)
поможешь написать более технические аспекты относительно опцимизации засчёт имут. по умолч. ? Я думаю не сильно шарю в этом буду очень благодарен

Daniel
03.09.2018
22:28:23
завтра попробую

Roman
03.09.2018
22:28:31
Daniel
03.09.2018
22:28:34
если опять прокрастинация нападет :)

Alexander
03.09.2018
22:28:47
Лучше, наверное, все же модификатор const. Пусть разработчик определяет, что это менять не стоит, если действительно не надо

Roman
03.09.2018
22:29:09
если опять прокрастинация нападет :)
ничего, я буду пинговать))

Alexander
03.09.2018
22:29:51
ничего, я буду пинговать))
Не надо его пинговать. Возьми бота, который он же и писал, и им и пингуй :)

если опять прокрастинация нападет :)
Если я ничего не путаю, это ведь у тебя был доклад об насчет пинга коллег?

Admin
ERROR: S client not available

Roman
03.09.2018
22:32:19
Лучше, наверное, все же модификатор const. Пусть разработчик определяет, что это менять не стоит, если действительно не надо
@onokonem А вообще можно даже реализовать пока-что const для иммут в Go => 1.12, а потом уже в Go 2 сделать её по умолчанию я думаю так даже лучше будет! считай старый код не сломаем, но иммутабельность добавим. а в го 2 сделаем ещё лучше - да и конвертировать код Go => 1.12 в таком случае будет гораздо легче ибо и там и там иммут. имеется

Alexander
03.09.2018
22:33:43
А! То есть все, что было до 1.12 - до свидания?

Zaur
03.09.2018
22:33:43
Эээ ребят это походит на восстание и революцию

Почему нельзя просто const добавить и нормас? Я тоже с плюсов, там вроде конста хватало

Alexander
03.09.2018
22:35:17
И вся эта игра с большими и маленькими буквами... Нет.. что-то не так с глобальным immutable, чую я

Кажется, фильме Матрица один паацан так поступил. Эльфы в костюмах просто даже застыли на месте и не знают что делать...

Daniel
03.09.2018
22:39:16
Почему нельзя просто const добавить и нормас? Я тоже с плюсов, там вроде конста хватало
можно. но примерно 99% вызовов должны будут иметь этот const приписаным к каждому из параметров.

Google
Alexander
03.09.2018
22:39:40
Даниэль, а если просто посчитать, какое солов чаще придется писать const, или mutable?

Roman
03.09.2018
22:40:45
А чем вам вариант с модификатором блока кода mut/const не нравится?

Alexander
03.09.2018
22:41:04
да. 99%, и люди с этим живут уже хрен знает сколько

Daniel
03.09.2018
22:41:29
у нас нет манеры возвращать значения модификацией входных параметров. исключая анмаршалеры - так никто не делает на постоянной основе. а, еще ридеры. так что const придется писать существенно чаще

Roman
03.09.2018
22:41:34
Все что внутри блока имеет mut или const префикс

Alexander
03.09.2018
22:41:38
Roman
03.09.2018
22:42:00
Alexander
03.09.2018
22:42:01
а, понял

Daniel
03.09.2018
22:42:32
А чем вам вариант с модификатором блока кода mut/const не нравится?
мне бы хотелось иметь барьер именно на моменте передачи параметров. это кажется мне очевидным

Roman
03.09.2018
22:43:07
Идея в маркере, который тупо префиксует все внутри блока как mut или const

Alexander
03.09.2018
22:43:20
Только на момент передачи параметров - вряд ли получится

Roman
03.09.2018
22:43:43
Если не сказано явно иное перед переменной

Daniel
03.09.2018
22:43:46
только, может быть, и не надо

Roman
03.09.2018
22:44:36
Это компромисс между "хочу все immut" и текущим вариантом

Alexander
03.09.2018
22:44:58
В общем, изменения глобальная, чтобы все было immutable, надо только подумать, стоит ли это других глобльных проблем, и каких именно

Roman
03.09.2018
22:45:52
Чтобы программист мог выбирать стратегию в рамках пакета, файла или блока кода

Daniel
03.09.2018
22:46:19
другое дело, что const делается одним флажком в составе struct, slice, map а mutable надо будет тащить и проверять на каждом вызове

так что, наверное, все же const

и линтер, который предупреждает, что вы const не проставили :)

Roman
03.09.2018
22:47:13
мне бы хотелось иметь барьер именно на моменте передачи параметров. это кажется мне очевидным
так что насчёт внедрить immutability уже в Go 1.x с const а в Go 2.x внедрить mut по умолчанию на всё? плюс написать транспилятор который писать будет легче если в Go 1.x уже есть поддержка имутабельности?

Daniel
03.09.2018
22:47:38
вот так, наверное, это имеет хоть какие-то шансы

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