
Pawel
03.09.2018
21:50:08

Roman
03.09.2018
21:52:08

Pawel
03.09.2018
21:54:02

Google

Daniel
03.09.2018
21:54:18

Roman
03.09.2018
21:55:05

Daniel
03.09.2018
21:55:13
никак

Roman
03.09.2018
21:55:21

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

Roman
03.09.2018
22:11:38

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

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

Roman
03.09.2018
22:16:28

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

Roman
03.09.2018
22:19:51

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

Roman
03.09.2018
22:20:27

Daniel
03.09.2018
22:20:36

Roman
03.09.2018
22:21:15

Alexander
03.09.2018
22:21:41

Roman
03.09.2018
22:22:02

Zaur
03.09.2018
22:22:27

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
с питоном беда в том, что пришлось у пользователя держать обе версии, и две версии либ, и все вот это вот
у нас не так же

Roman
03.09.2018
22:23:08

Daniel
03.09.2018
22:23:49

Zaur
03.09.2018
22:24:20

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 в него конвертился автоматически

Roman
03.09.2018
22:26:30

Daniel
03.09.2018
22:26:58
:)
вообще - да

Alexander
03.09.2018
22:27:09

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

Google

Daniel
03.09.2018
22:27:39
вызовам с go придется mutable прописывать
или конвертить, пробовать компилять, репортить проблему

Roman
03.09.2018
22:28:08

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

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, чую я
Кажется, фильме Матрица один паацан так поступил. Эльфы в костюмах просто даже застыли на месте и не знают что делать...

Roman
03.09.2018
22:38:07

Daniel
03.09.2018
22:39:16

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

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

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

Alexander
03.09.2018
22:47:40

Roman
03.09.2018
22:47:41