The OpenNET Project / Index page

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



"Создан форк системы управления контейнерами LXD"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Создан форк системы управления контейнерами LXD" –1 +/
Сообщение от Аноним (115), 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 - это уже СПИД.

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

Оглавление
Создан форк системы управления контейнерами LXD, opennews, 05-Авг-23, 09:04  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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