@gogolang

Страница 1204 из 1630
Alexander
03.07.2018
10:06:09
Ты просто на C++ лично не писал :)
А зачем мне писать на C++?

Ross
03.07.2018
10:06:15
Removed msg from Ross. Reason: new user + external link
чо? охренели линк на пеп удалять?

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 вовсе не нужно использовать. Но я бы хотел делать миграции на основе описанных структур и операции над БД совершать тоже через модели

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

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

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
Это потому что все ORM в Go не очень? Или вы фанат голого SQL. Мне как-то не очень хочется отказываться от уровня абстракции
все ORM в Go не очень. Если ты не искусственный интеллект. И все эти ORM написаны не искусственым интеллектом. :(

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

Alexander
03.07.2018
10:13:02
Если дока протухает, то ничего не поможет. Читаемость кода как раз чнижают абстракции
Читаемость кода снижают текучие абстракции и оверинжиниринг

Google
Алексей
03.07.2018
10:13:07
Дженерики, ADT и тайпклассы позволяют писать код в котором большинство контрактов выражены в сигнатурах, вместо того, чтобы искать их в доке или реализации
Большинство, но далеко не все. Тот же хаскель к примеру, насколько я знаю, не проверяет выполнение всяких монадических и функторных законов.

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

Andrei
03.07.2018
10:13:15
Я буду рад если посоветуете другую ORM. Правда вы возможно скажете что ORM вовсе не нужно использовать. Но я бы хотел делать миграции на основе описанных структур и операции над БД совершать тоже через модели
орм норм, но в го советую искать орм на кодогенерации, рефлексия под капотом зло, или использовать билдеры запросов типа https://github.com/Masterminds/squirrel

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
Большинство, но далеко не все. Тот же хаскель к примеру, насколько я знаю, не проверяет выполнение всяких монадических и функторных законов.
Это да, но можно валидировать внешней системой доказательств типа Coq + написать property для quickcheck тестов

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
Нет ни одного человека, способного полностью понять работу всех человеческих технологий. Мы только благодаря абстракциям и идём вперед технически

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

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

Google
Alexander
03.07.2018
10:23:45
Вообще надо бы вернуться к вопросу о том, достаточное ли количество и уровень абстракций в Go. На мой взгляд - нет.
Очевидно, что нет. Более того, в го практически невозможна композиция абстракций

Хотя и в ООП с ней сложно ибо неконтролируемая мутабельность

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

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 чтобы нормально сравнивать

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

Alexander
03.07.2018
10:34:10
причём тут хаскель?
Без хаскеля сложно понять что такое нормальные дженерики, ADT, абстракции

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

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

Google
Mike
03.07.2018
10:35:03
Без хаскеля сложно понять что такое нормальные дженерики, ADT, абстракции
может без хаскеля еще по русски говорить и дышать сложно?

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

в джаве была такая же ситуация с их отсутствием как сейчас в Go

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

Alexander
03.07.2018
10:35:46
Зачем ADT тащить в императивный язык?
Чтобы не кастить интерфейс к хуй пойми чему, а доставать значение из типа суммы паттерн матчингом, не?

Алексей
03.07.2018
10:36:35
Чтобы не кастить интерфейс к хуй пойми чему, а доставать значение из типа суммы паттерн матчингом, не?
Так у меня ща бомбить начинает. Такой вопрос на адекватность: на кой хер превращать Go в хаскель?

Причём я не против дженериков, а всеми руками за.

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
я вот что-то сильно сомневаюсь в пользе адт для go
Да хотя бы нормально ошибки можно будет возвращать

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
(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: ... }
ааа, то есть если мы сейчас пишем if err != nil { return err }, то с adt мы сможем писать здоровый switch вместо этого

прям отлично

Алексей
03.07.2018
10:52:27
С адт не проблема добавить оператор ?
да и сейчас не такая уж проблема на самом деле, только всё равно не добавляют

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

И ещё какие-то корнер кейсы были, из кстати тут же обсуждали

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

но был где-то даже issue на гитхабе

который как раз предлагал ввести оператор позволяющий преобразовать ошибку перед возвратом

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