
Alexander
03.07.2018
10:06:09

Ross
03.07.2018
10:06:15

Alexander
03.07.2018
10:07:27
Дженерики, ADT и тайпклассы позволяют писать код в котором большинство контрактов выражены в сигнатурах, вместо того, чтобы искать их в доке или реализации

Alexander
03.07.2018
10:08:34
А сигнатурами-то и не хотят типы (классы) выражать. Прикинь? Не тот язык

Google

Alexey
03.07.2018
10:08:54
gorm - вобще не надо юзать
Я буду рад если посоветуете другую ORM. Правда вы возможно скажете что ORM вовсе не нужно использовать. Но я бы хотел делать миграции на основе описанных структур и операции над БД совершать тоже через модели

Phil
03.07.2018
10:08:58

Alexander
03.07.2018
10:09:02
и не тот компилятор, и не те цели

Alexander
03.07.2018
10:09:37
И это плохо
Чем? Дока протухает, а необходимость лезть в реализацию снижает читаемость

Alexander
03.07.2018
10:09:51

Alexander
03.07.2018
10:10:12
К тому же компилятор не может проверить код на то, что все контракты исполнены

Alexey
03.07.2018
10:11:42
Не будешь! Просто учи SQL
Это потому что все ORM в Go не очень? Или вы фанат голого SQL. Мне как-то не очень хочется отказываться от уровня абстракции

Ross
03.07.2018
10:11:48

Phil
03.07.2018
10:12:05

Alexander
03.07.2018
10:12:43

Phil
03.07.2018
10:12:58
Даже плохо написанную простыню читать легче, чем средненькое абстрагирование

Ross
03.07.2018
10:13:02

Alexander
03.07.2018
10:13:02

Google

Алексей
03.07.2018
10:13:07

Alexander
03.07.2018
10:13:08
Да и не только в Go

Andrei
03.07.2018
10:13:15

Alexey
03.07.2018
10:14:32

Alexander
03.07.2018
10:14:34
Иначе бы вы писали на ассемблере, ибо там нет абстракций

Alexander
03.07.2018
10:15:08
Когда смотришь, какие запросы генерит тот же Django ORM - просто стыднор становится. Django ORM на Python тоже не роботы делали :)

Алексей
03.07.2018
10:15:31
Причём у многих используемых языков не так уж и много абстракций.

Alexander
03.07.2018
10:16:37
Без абстракций мы бы так и сидели в пещерах, а еду бы добыли охотой

Антон
03.07.2018
10:17:24

Alexander
03.07.2018
10:17:26

Alexander
03.07.2018
10:18:15
А ещё знаете ли вы, что она достигнута уже очень давно

Alexander
03.07.2018
10:19:29
да, Сингулярность - это в мозгу, когда читаешь Манускрипт мертвой птицы. А в жизнь из это й сингулярности ничего не выходит.

Alexander
03.07.2018
10:19:50
Нет ни одного человека, способного полностью понять работу всех человеческих технологий. Мы только благодаря абстракциям и идём вперед технически

Alexander
03.07.2018
10:20:23
А уже пятница?

Алексей
03.07.2018
10:21:57
Вообще надо бы вернуться к вопросу о том, достаточное ли количество и уровень абстракций в Go. На мой взгляд - нет.

Alexander
03.07.2018
10:22:18
нет, не пятница, а то я бы и не то сказал :)

Google

Alexander
03.07.2018
10:23:45
Хотя и в ООП с ней сложно ибо неконтролируемая мутабельность

Alexander
03.07.2018
10:24:24
А программирование это не "композиция абстракций"?

Alexander
03.07.2018
10:25:19
Используя встроенные абстракции

Alexander
03.07.2018
10:25:38
вот и хорошо!

Vadim
03.07.2018
10:25:49
Думаю, корректнее сравнивать абстракции мира, и функции либ, которые программист может вызывать, вообще не понимая, что творится под капотом.

Alexander
03.07.2018
10:26:41

Vadim
03.07.2018
10:27:23

Alexander
03.07.2018
10:31:27
А вообще считаю данный спор бессмысленным, если никто из местных противников дженериков ничего сложнее хеллоуворлда на хаскеле или хотя бы расте не писал.
Ибо сложно понять зачем нужен инструмент, когда ты им по сути нормально и не пользовался

Алексей
03.07.2018
10:32:51
причём тут хаскель?

Алексей
03.07.2018
10:33:13
хаскель слишком отличается от Go чтобы нормально сравнивать

Alexander
03.07.2018
10:33:25

Алексей
03.07.2018
10:33:46
я вообще в плане дженериков люблю сравнивать Go и Java, потому что Go тупо повторяет путь Java

Alexander
03.07.2018
10:34:10

Алексей
03.07.2018
10:34:12
там тоже изначально не было дженериков и был Object (аналог interface{} из Go)

Mike
03.07.2018
10:34:37

Алексей
03.07.2018
10:34:41

Alexander
03.07.2018
10:34:42
ох уж эти женерики. го, кстати, путь явы не повторяет) никто не позиционировал его как язык для микроволновок и для веб-апплетов. а джявка начиналась именно с этого

Google

Mike
03.07.2018
10:35:03

Алексей
03.07.2018
10:35:06
я про путь в плане дженериков сейчас
в джаве была такая же ситуация с их отсутствием как сейчас в Go

Alexander
03.07.2018
10:35:45
а появятся же, не? мне казалось что в 2.0 анонсировали

Alexander
03.07.2018
10:35:46

Алексей
03.07.2018
10:36:35
Причём я не против дженериков, а всеми руками за.

Mike
03.07.2018
10:37:15

Admin
ERROR: S client not available

Alexander
03.07.2018
10:37:22

Алексей
03.07.2018
10:37:57
я вот что-то сильно сомневаюсь в пользе адт для go
очень сильно сомневаюсь
и удастся ли их вообще нормально впихнуть
если дженерики нормально до сих пор впихнуть не могут

Alexander
03.07.2018
10:40:13

Usman
03.07.2018
10:40:22
будет Go++ )))))

Алексей
03.07.2018
10:40:27
Да что там дженерики, если не прдиётся больше писать каждый раз if err != nil { return err }, то это уже будет прогресс огромный.

Alexander
03.07.2018
10:40:30
Добавить нормальные кортежи и типы суммы

Google

Alexander
03.07.2018
10:41:14
И все

Alexander
03.07.2018
10:41:47
О! Кстати Go++ это будет хороший вариант при условии хорошего пиара

Алексей
03.07.2018
10:41:57

Usman
03.07.2018
10:42:34

Alexander
03.07.2018
10:42:35
куча народу на Go++ заработает кучу денежек :)

Zaur
03.07.2018
10:46:20
О Боже, неужели хипишь про дженерики до сих пор идёт

Alexander
03.07.2018
10:46:33
Сегодня с утра читал рекламный прост на хабре, про некий цветок Linux, где нет ничего лишнего. Даже systemd нет. Лишнее - это работа! Но статья хорошая

Алексей
03.07.2018
10:47:20

Alexander
03.07.2018
10:47:30
можно пример кода?
(a, b, c) - кортеж
type SType enum {
Int int
String string
Nothing
}
s := SType.Int(5)
switch s {
case SType.Int(i):
...
case SType.String(str):
...
case SType.Nothing:
...
}

Alexander
03.07.2018
10:47:49
жяль, что не все понимают, что лишнее (не нужное) - это тоже тяжелая работа :(

Alexander
03.07.2018
10:50:09

Алексей
03.07.2018
10:50:46
прям отлично

Alexander
03.07.2018
10:51:42

Алексей
03.07.2018
10:52:27

Alexander
03.07.2018
10:52:39

Алексей
03.07.2018
10:52:52

Alexander
03.07.2018
10:57:03
почему?
Что делать, если возвращаемых значений несколько? А если ошибку надо преобразовать?
И ещё какие-то корнер кейсы были, из кстати тут же обсуждали

Алексей
03.07.2018
10:57:56
ну вообще да, есть корнер кейсы, но их не так уж и много
но был где-то даже issue на гитхабе
который как раз предлагал ввести оператор позволяющий преобразовать ошибку перед возвратом