The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Релиз языка программирования Go 1.14"
Отправлено Аноним, 27-Фев-20 12:48 
> Возможно нужно было делать отдельный package реализующий что-то и задействовать его, или договориться о каких-то других интерфейсах внутри или ещё что (варианты бывают очень разные)
>В другом бы языке вы это просто замазали бы наследованием или ещё какой фигнёй, а тут придётся подумать и сделать правильно.

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

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

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

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

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

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

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

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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