The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Релиз языка программирования Go 1.14"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Релиз языка программирования Go 1.14" –1 +/
Сообщение от Аноним (78), 27-Фев-20, 12:48 
> Возможно нужно было делать отдельный package реализующий что-то и задействовать его, или договориться о каких-то других интерфейсах внутри или ещё что (варианты бывают очень разные)
>В другом бы языке вы это просто замазали бы наследованием или ещё какой фигнёй, а тут придётся подумать и сделать правильно.

Все равно не хватает дженериков и интерфейсы не позволяют делиться реализацией, так что до появления Go 2.0 от копипасты до конца не получится убежать, мне кажется. В Rust, к счастью, тоже нет такой гадости как наследование (в этом и в ряде других вопросов Go и Rust идеологически дружат), но трейты (своего рода интерфейсы, но с куда более широкими возможностями) могут содержать дефолтные имплементации методов, дженерик-имплентации в том числе. Уже это снижает долю копипасты в разы.

> Можно конкретнее (и сравнение с каким-нибудь другим языком)?

Да я на самом деле с теми же C/C+ и Rust сравниваю, которые условно говлря не имеют рантайма вовсе. Так-то у Go он не такой и толстый, но просто при сравнении с Rust, который также позволяет писать безопасный по памяти код, видишь, что можно платить меньше за те же или даже большие гарантии.

> Что это значит? Очень даже конкретная и выразительная система типов. Можно конкретнее?

Недостаток дженериков, вещей вроде трейтов, прозрачных и доступных для пользовательской имплементации итераторов, алгебраических типов и т.д. - все это сильно снижает выразительность языка. В Go, в силу простоты системы типов, значительная часть фундаментальных абстракций реализлвана в виде компилятлрной магии. В Rust огромная часть семантики языка описана кодом в стандартной библиотеке, в том числе итераторы.

> В смысле вы бы предпочли throw-try-catch или к чему это

Конечно нет! Исключения - еще одна гадость, насчет которой Rust и Go дружат во мнении. Я про сочетание оператора ? и выражение match.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Релиз языка программирования Go 1.14, opennews, 26-Фев-20, 23:10  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру