
Alexander
27.05.2018
14:18:12

Sergey
27.05.2018
14:24:07

Dmitry
27.05.2018
14:33:34

Vladimir
27.05.2018
14:50:46

Google

Диёр
27.05.2018
14:52:13
го задумывался как тупой с++

Vladimir
27.05.2018
14:53:25

Sergey
27.05.2018
14:53:43

Nikita
27.05.2018
14:55:10

Dmitry
27.05.2018
14:55:14
го задумывался как си на стероидах + ооп

some_random_anonymous
27.05.2018
14:55:46
Го задумывался с дженериками, но потом передумали

Dmitry
27.05.2018
14:56:14
однако не взлетело, приходится отнимать нишу у других языков

Sergey
27.05.2018
14:56:43
поучаствую в викторине
го задумывался как замена луа

Vladimir
27.05.2018
14:57:07
Го задумывался как замена rust!

Sergey
27.05.2018
14:57:10

some_random_anonymous
27.05.2018
14:57:18
Го не задумывался, он просто появился

Sergey
27.05.2018
14:57:33
го задумывался, но так и не принял решение

Vladimir
27.05.2018
14:57:48

Google

Sergey
27.05.2018
14:58:18

Sergey
27.05.2018
14:58:47
го задумывался без сборщика мусора

Vladimir
27.05.2018
15:00:00

Dmitry
27.05.2018
15:00:59
го задумывался как скриптовый язык движка для игры в ГО

Ross
27.05.2018
15:25:32

Димка
27.05.2018
16:00:00
Почему тут ещё не банят за слово «дженерики»?))

Alexander
27.05.2018
16:15:17
Потому что не банить же Фитцпатрика, если он вдруг зайдет

Phil
27.05.2018
16:24:35
О. Тут еще не было срачика 26 лет golang?

Sergey
27.05.2018
16:24:51
не было

Phil
27.05.2018
16:26:03
И то что дженерики были, но их выпилили, тоже?

some_random_anonymous
27.05.2018
16:26:35
Когда дженерики появятся в стандарте Си?
Сколько можно терпеть?

Phil
27.05.2018
16:27:11
Надо сделать один раз обзор в оба чата и попросить его в описание вставить

Dmitry
27.05.2018
16:27:58
чето у меня последнее время фигня какая то, сяду поиграть, а потом внезапно дня через три мод уже для игры клепаю. это наверно старость.


jack
27.05.2018
16:42:14
"Они" говорили что дженерики не нужны. Потом "они" говорили что дженерики нужны? Кто "они"? Тот же Керниган или Пайк говорили? Основная задача разработки Go. Си-подобный код, максимально простой и понятный для "среднего" программиста с целью решения бизнес задач. Этим и объясняется недоООП и отсутствие других модных штук. И если средняя обезьяна не понимает ООП и дженерики... их не должно быть. Цель проста. Чтобы в коде разобрались и смогли поддерживать условные 100 миддлов. А не полтора сеньора, которых все ищут. Умные программисты безусловно нужны... но не нужны только Умные программисты, которых на рынке почти нет. Для работы программистом Go плох. Т.к со временем кардинально снизит уровень входа и зарплаты "умным". Задачи смогут решать не только они.
Господа. В корень проблемы взглянуть желаете? Идите сюда, покажу - локтями не толкаться, будьте друг к другу терпимее, у нас у всех одна задача разобраться, в не выяснить кто чьи педали одел. Гоу нацелен прежде всего на то, чтобы снизить влияние человеческого фактора на код. Для этого постарались выбрать базис , состоящий из элементов неоспоримых а ИТ индустрии и всем более менее понятных. Вместе с тем на язык существует давление со стороны "опытных" (консервативных) разработчиков. Это и привело к так называемому переобуванию. Сложная концепция объектов не оправдывает себя по затратам на изучение/ сложности поддержки. Лучшее решение проблемы ЧФ пока не найдено, но гоу ближе всего к эталону.


Maxim
27.05.2018
16:50:47
Go это
public poll
Тупой опрос – 13
??????? 76%
@Am1rkin, @toby3d, @zuldare, @GreatInk, @avkomarov, @onokonem, @Civiloid, @NikBond, @ravenhost, @Clouded, @EvgeniyBaranov, @shaulyn47, @JohnnyDou
Тупой C – 3
?? 18%
@youaintgotnoloyality, Dmitry, @deathmoroz
Тупой Python – 1
? 6%
@twentydraft
Тупой JavaScript
▫️ 0%
? 17 people voted so far.
Go это
public poll
Тупой опрос – 13
??????? 76%
@Am1rkin, @toby3d, @zuldare, @GreatInk, @avkomarov, @onokonem, @Civiloid, @NikBond, @ravenhost, @Clouded, @EvgeniyBaranov, @shaulyn47, @JohnnyDou
Тупой C – 3
?? 18%
@youaintgotnoloyality, Dmitry, @deathmoroz
Тупой Python – 1
? 6%
@twentydraft
Тупой JavaScript
▫️ 0%
? 17 people voted so far.
Раз уж речь зашла, хех

jack
27.05.2018
16:53:40
Жжоте

Dmitry
27.05.2018
17:00:26
тоесть как бы чтото типа дженериков есть но лучше бы их не было в таком виде

Google

Мерлин
27.05.2018
17:03:18
контрвариантность и ковариантность типов
было бы неплохо

Dmitry
27.05.2018
17:05:17

Мерлин
27.05.2018
17:05:42

Daniel
27.05.2018
17:17:24
меня больше всего бесит обработка ошибок.
1. ошибке нужен стектрейс. сейчас я вынужден логировать ошибку на всех уровнях, на которых я ее обнаружил. даже если передаю ее выше без изменений. иначе поиски места, в котором ошибка действитель нопроизошла, становятся трудными
2. ошибке нужен тип. я хочу иметь возможность возвращать IO errors и input data errors так, чтобы их потом можно было отличить друг от друга.
3. ошибке нужен код. value который. я хочу иметь возможность сравнивать ошибки и выбирать обработку исходя из того, что именно вернулось.
4. Ошибке нужна возможность i18n сообщения

Sergey
27.05.2018
17:18:15

Daniel
27.05.2018
17:18:49

Мерлин
27.05.2018
17:19:45
* надо доклад сделать что ли

Daniel
27.05.2018
17:20:55
ты ж понимаешь, что меня это беспокоит больше в отношении ошибок, которые мне возвращают снаружи...

Alexander
27.05.2018
17:20:58

Мерлин
27.05.2018
17:21:20

Daniel
27.05.2018
17:21:21
да оно тривиальное же! и на гитхабе уже есть несколько

Alexander
27.05.2018
17:22:43
Ну так-то да. Да и на действительно, лучше это иметь на уровне языка

Daniel
27.05.2018
17:23:11
ну или хотя бы на уровне стандартной либы и гайдлайнов (как в яве)

Мерлин
27.05.2018
17:23:45
вообще всё это лечится внесением тегированного enum (или тип сумм, или variant, называйте как хотите)

Maxim
27.05.2018
17:24:30

Daniel
27.05.2018
17:25:27
именно ошибки - они уже интерфейсы, и на этом месте замену можно произвести не особенно напрягаясь

Мерлин
27.05.2018
17:25:52
const iota?
это кастрированная хрень, которая нравится только сишникам, которые ничерта кроме числовых ошибок не видели
ты не можешь туда пропихнуть что-то сложнее строки или числа

Maxim
27.05.2018
17:26:30

Google

Мерлин
27.05.2018
17:27:56
Численная ошибка — это максимально дерьмовое решение

Maxim
27.05.2018
17:28:52
var ErrMyCustomError = ...
И проверка на совпадение

Мерлин
27.05.2018
17:29:31
это раз

Maxim
27.05.2018
17:30:14
Возможно у меня просто не было ситуаций, когда требовалось что-то сложнее

Мерлин
27.05.2018
17:30:22
во вторых, если по честному, множественные возвращаеме значения — это херовое решение, так как даёт много неопределённостей и позволяет игнорировать ошибки

Admin
ERROR: S client not available

Мерлин
27.05.2018
17:30:28
если у тебя что-то сложнее CRUD, то тебе нужны более развесистые ошибки

Maxim
27.05.2018
17:31:41

Мерлин
27.05.2018
17:34:21
Например?
например ошибки валидации
если ты хочешь отдавать имена полей и конкретное описание ошибки, тебе нужно где то эту информацию хранить
или если у тебя на методе висит что-то сложное, какой-нибудь нетривиальный процесс типа развёртывания какой-нибудь системы, тебе нужно знать, что зафейлилось при работе, и не только видеть это при отладке, но и обрабатывать

Dmitry
27.05.2018
17:35:37
ммм. с точки зрения ооп это ведет к нарушению инкапсуляции
ты кишки наружу хочешь отдать

Мерлин
27.05.2018
17:35:59
в общем как только к ошибке нужно добавлять хоть какой-то контекст, то у тебя ошибки го работают не очень

Dmitry
27.05.2018
17:37:12

Мерлин
27.05.2018
17:37:51

Igor
27.05.2018
17:38:08
Извините за глупый вопрос: а почему нельзя отдавать стракт, который удовлетворяет интерфейсу Error?

Google

Dmitry
27.05.2018
17:38:16
зачем обрабатывать?

Мерлин
27.05.2018
17:38:20
зачем обрабатывать?
чтобы предпринять связанные с ошибкой действия
да, такое нужно, если у тебя приложение — это не тупой интерфейс к СУБД
если у тебя приложение — это обёртка над базой, то конечно. тупо логируешь ошибку и отдаёшь пользователю урезаную версию

Dmitry
27.05.2018
17:40:43
окей, а что ты хочешь отдать такого что тебя не хзватает строки, ну как пример

Мерлин
27.05.2018
17:42:25
в случае если у тебя ошибка уезжает на фронтенд, ещё хорошо бы отдавать кусок документации, которую наверное ещё нужно переводить на разные языки
ошибки — это сложно

Dmitry
27.05.2018
17:45:07
и вот как вот это ты собираешься в автоматическом режиме обрабатывать ?
поле зафейлило валидацию - повторить 1000 раз пока не пройдет ?

Мерлин
27.05.2018
17:46:26

Dmitry
27.05.2018
17:46:44
вернуло стектрейс, запустить автоматом дебагер, подключить ИИ для определения причины ошибки , исправить , запустить еще раз и все автоматом ?

Sergey
27.05.2018
17:47:01

Dmitry
27.05.2018
17:47:42
вернуло тайстемп - проверить что мы в 21 веке , если нет запустить другую функцию ?

Мерлин
27.05.2018
17:47:43
и тупо долбятся запросом

Sergey
27.05.2018
17:48:53

Dmitry
27.05.2018
17:48:57
по мне все что не может быть решено на уровне вызывающем ошибки не должно выдавать детали реализации наружу

Мерлин
27.05.2018
17:49:05

Sergey
27.05.2018
17:49:16