The OpenNET Project / Index page

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



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

Исходное сообщение
"Создан форк системы управления контейнерами LXD"
Отправлено Аноним, 06-Авг-23 00:31 
> Гошка как раз отличная вещь, можно написать сервис который вещь в себе и работает без сложного окружения.

Без сложного окружения?! Go - это мерзота, которая тащит как попало собранные куски кода внутрь единого бинарника. Все "окружение" у него внутри, потому что снаружи оно вообще не имеет никакого окружения, не имеет логики бинарного модулей, и как следствие не имеет взаимодействия между модулями. А еще они логику сборки меняют чаще чем нижнее бельё. Вот неплохая статья про Go с его "модульностью": https://maelvls.dev/go111module-everywhere/

"Гошка" - это где разрабы не умеют делать релиз и не знают что это такое. Её управление "модулями" и зависимости, привязывающиеся к хэшу коммита на github или еще в какой-то другой системе управления версиями. При этом _релиза_ как такового в Go нету. Есть 100500 модулей, которые в общем случае зафризены по последнему комиту в общей кодовой базе, которая в свою очередь даже тегов может не иметь. Все в кучу свалено. При сборке они выкачивают это барахло по сети и собирают себе в единый бинарь.

Проблема отсутствия релизов и проблема отсутствия бинарных модулей - 2 разные проблемы. Отсуствие бинарных модулей делает этот язык весьма ограниченным и нишевым (нет жизни вне микросервисных проектов от слова "совсем"). Отсутсвие концепции релиза на проект, опциональность релиза напрочь меняет ворос управления разработкой проекта на Go. Если в нормальное экосистеме разработчики вынуждены:
- делать релиз,
- сопровождать релиз
-- исправлять ошибки в релизе
-- исправлять уязвимости в релизе
- следить за обратной совместимостью API внутри релиза (бинарным требуется еще и ABI)
То тут абсолютная помойка. КОНЕЧНЫЙ проект грузит в себя код модулей из гитхаба. И все его модули и зависимости это просто 1001 срез текста, который никто не сопровождает. И у каждого такого модуля есть еще модульные зависимости, которые никто толком не сопровождает и так влоть до N вложенных зависимостей. То есть сопровождает это всё погромист на гошке, то есть ТЫ!

Допустим твой проект хочет 2 модуля:
- mega-lib-2-5-blablahash1, ты выбрал актуальную версию в которой исправлены уязвимости и ошибки
- ultra-lib-1-4-blablahash2, ты выбрал актуальную версию
И второй модуль гвоздями привязан к mega-lib-2-4-blablahash3, потому что иди нафиг. И всё это сливается в единый бинарь в одну кодовую базу, которую поддерживаешь ТЫ, потому что релиз - не барское дело для гошников. Если npm и pip это формы рака, то модули go - это уже СПИД.

 

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



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

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