
Никита
03.09.2018
21:07:55

Roman
03.09.2018
21:08:37
С чего вдруг
с того что "2.0" звучит круто потому-что всем кажется, что много чего изменилось и язык не стоит на месте в то время как "1.17" звучит как "мы фиксим старый лисипед", хотя здравомыслящий человек поймёт, что "1.17" круче чем "2.0", потому-что не ломает совместимость

Dorian
03.09.2018
21:09:36
Так себе маркетинг

Roman
03.09.2018
21:09:58

Google

Roman
03.09.2018
21:10:23

Никита
03.09.2018
21:11:07

Fastumkruk ✅
03.09.2018
21:11:18
Читаю чат уже пару месяцев и каждый день одно и то же. Дженерики, дженерики, дженерики!!!!!!!

Никита
03.09.2018
21:11:40

Roman
03.09.2018
21:12:25
вот чего сейчас не хватает, так это scatter-gatter в языке =(

Dorian
03.09.2018
21:15:24

Roman
03.09.2018
21:15:31

Dorian
03.09.2018
21:15:35
Не про обработку ошибок же

Vladislav
03.09.2018
21:15:42

Никита
03.09.2018
21:15:42
Ни к каким серьезным. Это просто странно, перегружать смысл ключевого слова совсем разными задачами

Roman
03.09.2018
21:16:00

Google

Dorian
03.09.2018
21:16:25
Спокуха, щас скоро про Раст начнется

Fastumkruk ✅
03.09.2018
21:16:27

Dorian
03.09.2018
21:16:47

Daniel
03.09.2018
21:16:49

Roman
03.09.2018
21:17:01

wumin
03.09.2018
21:17:15
Кто трогал go mod? Как там локальный пакет импортировать?

Daniel
03.09.2018
21:17:31
а что такое локальный пакет?

Roman
03.09.2018
21:17:58

Daniel
03.09.2018
21:18:09
go mod касается ровно одной вещи - поиска сорцов на диске. типа, не нужен gopath и vendor

Roman
03.09.2018
21:18:43

Daniel
03.09.2018
21:19:04
при этом практически все тулзы к отсутствию вендора и gopath не готовы

Vladislav
03.09.2018
21:19:14

Daniel
03.09.2018
21:20:09
проблема простая - мы передаем в чужие либы небезопасные типы (например, слайсы) и не знаем, что там с ними будут делать. может быть - нулями заполнят

Никита
03.09.2018
21:20:17

wumin
03.09.2018
21:20:21
Например у вас в main.go package main. Рядом папка handlers с package handlers. В GOPATH я напишу для импорта github.com/me/blablabla/handlers. go mod такое не переварит.

Roman
03.09.2018
21:20:43

Daniel
03.09.2018
21:20:45

Roman
03.09.2018
21:21:01

Roman
03.09.2018
21:21:41

Google

Vladislav
03.09.2018
21:21:44

wumin
03.09.2018
21:21:58

Pavel
03.09.2018
21:21:59

Roman
03.09.2018
21:22:18

Daniel
03.09.2018
21:22:24
более того, могут и не специально данные попортить, а взяв сабслайс и использовав буфером

Roman
03.09.2018
21:23:09

Stanislav
03.09.2018
21:23:15

Roman
03.09.2018
21:23:40

Vladislav
03.09.2018
21:25:31

Roman
03.09.2018
21:26:29

Daniel
03.09.2018
21:26:58
копирование, кстати, и правда наименьшая из проблем
просто потому, что редко применяется именно для защиты от мутаций

Roman
03.09.2018
21:27:58
копирование, кстати, и правда наименьшая из проблем
я не спорю что это не самая главная, главная проблема в данном случае это безопасность и читабельность, а потом уже копирование.
но тем не менее когда можно не копировать, то зачем лишний раз копировать и лишние for циклы писать? не так ли?

Vladislav
03.09.2018
21:28:07

Stanislav
03.09.2018
21:28:26
это лишь утверждение, "мнение" так сказать, только не понятно на чём сиё мнение основано
для этого было добавлено "имхо" ?
окей, что такое контракты? по сути это замена тайпсвича и/или проверкой можно ли что-то сделать с этими данными (ну типа T.(type) == int). И, смотря в https://go.googlesource.com/proposal/+/master/design/go2draft-generics-overview.md, я все равно нихрена не понимаю, чем это лучше тайпсвича ? ну может на строчку-другую кода будет меньше, как и читаемости кода, кстати

Daniel
03.09.2018
21:28:54
при чем тут блекбокс? мы же не от злоумышленников защиты хотим, а от ошибок

Roman
03.09.2018
21:29:07

Stanislav
03.09.2018
21:29:21

Vladislav
03.09.2018
21:29:23

Daniel
03.09.2018
21:29:50
от случайных модификаций данных, которые модифицировать нельзя

Google

Daniel
03.09.2018
21:30:04
это не очень частая ошибка, но очень неприятная

Roman
03.09.2018
21:31:04

Vladislav
03.09.2018
21:31:06
Я бы даже сказал совсем нечастая.

Stanislav
03.09.2018
21:31:16
кстати, по примеру, просто вслушайтесь - "неизменяемый объект с динамически изменяемым размером"
брррр)

Roman
03.09.2018
21:31:50

Stanislav
03.09.2018
21:32:27

Daniel
03.09.2018
21:32:31

Roman
03.09.2018
21:32:35

Admin
ERROR: S client not available

Stanislav
03.09.2018
21:32:38

Daniel
03.09.2018
21:33:07

Roman
03.09.2018
21:33:09

Stanislav
03.09.2018
21:34:04

Roman
03.09.2018
21:35:07
затем, что это быстрый язык, который позволяет сделать мне то, что мне нужно
да, так говорят JavaScript'еры, у которых нет строгой типизации, а потом переходят на Go, потому-что без неё - хреново
Иммутабельность позволит вам наоборот повысить продуктивность. Вы просто не сможете допустить ошибок передавая reference через три-девять функций получив странные side-effect'ы от коварных багов.
Не поленитесь прочитать пропосал, я его для вас писал, старался ?

Vladislav
03.09.2018
21:35:17
На самом деле то как вы предлагаете это сделать не поможет. Большая часть либ не начнёт внезапно использовать новый модификатор. А его отсутсвие не говорит о том, что данные обязательно будут изменяться. В общем останется как есть.

Stanislav
03.09.2018
21:35:29
?

Pavel
03.09.2018
21:35:56

Google

Roman
03.09.2018
21:38:05


Stanislav
03.09.2018
21:38:33
чем мне нравится текущий подход в Go:
1. Хочешь, чтобы изменения увидели все? Передавай ссылку.
2. Хочешь, чтобы изменения НЕ видели все, а были доступны только вызывателю - передавай сам объект.
Пропосал добавляет пункт:
3. Хочешь, чтобы изменения увидели все и не думать об архитектуре? Используй const для слайсов, структур и прочего.
Вы понимаете токсичность этого подхода?

Nyan
03.09.2018
21:38:49
что-то он не изменился за 10 лет в лучшую сторону

Roman
03.09.2018
21:39:54
референс через тридевять функций - уже говнокод
чепуху несёте, мисьё.
передать reference в фукцию - не имея гарантии иммутабельности - уже склонено к ошибкам. Даже если вы работаете над кодом один, про команду или open source сообщество я уже вообще молчу.

Stanislav
03.09.2018
21:42:30

Vladislav
03.09.2018
21:42:31

Daniel
03.09.2018
21:43:25
коллеги
ну что вы как неродные
в с++ есть слово const для параметров, и оно широко используется
в первую очередь для уберегания себя же от проблем

Roman
03.09.2018
21:44:37

Daniel
03.09.2018
21:44:44
там, правда, возврат результата через модификацию входного параметра куда как более частое явление - традиция-с

Pawel
03.09.2018
21:45:01
блин, это же всего то на всего синтаксический сахар над вызоывами функций и методов. нету это - и на фиг оно не надо, язык меньше перегружен малозначительной ерундой, увеличивающей mental coast

Daniel
03.09.2018
21:45:21
то и у нас можно себе член отстрелить

Stanislav
03.09.2018
21:45:35

Daniel
03.09.2018
21:46:02
я бы, если бы контролировал язык, ввел бы ключевое слово mutable

Pawel
03.09.2018
21:46:05
хочешь неизменяемость - пиши геттеры и сеттеры, не ипи моск, вот и всё

Roman
03.09.2018
21:46:08

Daniel
03.09.2018
21:46:33
чтобы параметры, которые могут мутировать, были видны всегда
а остальные бы запретил менять

Pawel
03.09.2018
21:46:40

Daniel
03.09.2018
21:48:17