Какой-то не очень рабочий OpenSource

Какой-то не очень рабочий OpenSource

SiteBot·

В части тех технологий (языков программирования), где есть пакетные менеджеры и сообщество разработчиков, безвозмездно предлагающие OpenSource-решения, существует негласное правило клиентов, использующих открытый код: мы ничего сами не пишем, а берём готовые решения и строим из них систему. Как дом из кирпичей.

Отчасти это продиктовано не столько ленью разработчиков, а современным темпом написания информационных систем: вряд ли бизнес поймёт и оценит, если команда начнёт месяцами (или даже годами) писать свои собственные велосипеды, например, с нуля разрабатывать систему определения перцептивного хэша изображения или свою собственную ORM.

Казалось бы, всё просто: бери эти кирпичи и строй систему, оперируй лишь интерфейсами. Но данный путь похож на становление наркотической зависимости: сначала легко, просто и прикольно. Проходит время - и начинаются проблемы, вплоть до терминальной стадии проекта и нервной системы разработчиков.

Две основные проблемы "халявного" кода

I. Контрибьютеры, любящие переписывать архитектуру с нуля

Фреймворк или библиотека, которую используют тысячи людей, на функционале которой завязаны сотни серьезных продуктов, в один миг становится устаревшим решением с выходом новой версии. Интерфейсы и архитектура меняется контрибьюторами, причём настолько кардинально, что новый продукт B вообще не похож на старый продукт A. Как следствие:

  • На собеседованиях уже спрашивают именно про продукт версии B. То, что ты работал с продуктом версии A - никого не волнует. Тот самый временный характер капитала знаний - неявный и коварный минус половины IT-индустрии, о котором никто никогда не говорил на профильных IT-ресурсах десятилетиями, кроме нашего сайта.

  • Небольшие пакеты, которые писались под версию продукта A (назовём их AA) больше не поддерживаются их авторами - в первую очередь пропадает мотивация поддерживать код для уже устаревшего решения. Ну и авторы этих пакетов в течении последующих нескольких лет могут умереть, покинуть IT или переключиться на другой стек без какого-либо интереса к своей прошлой деятельности.

Зависимости (назовём их AAA), если таковые присутствуют в AA тоже изменяются, но в пакете AA жёстко зафиксирована связь со старыми версиями зависимостей AAA, в которых имеется куча старых багов и, возможно, несовместимостей с новой версией самого языка программирования.

  • И самое главное - невозможность обновить продукт версии A до продукта версии B.

I. Контрибьютеры, "забивающие" на свои решения

Вот тут я искренне не понимаю, встречал такое много раз: библиотека имеет живого автора, который отвечает раз в 2 года. Пара десятков issue и столько же MR. Ну ты это... либо заархивируй проект, либо найди время и разберись. Люди тебе доверились, ты получил свои "звёзды", а когда всплыла куча проблем, то "ни себе ни людям" - и проблемы не решаются и MR не проходят...

Итог

Проект, который начинался на "модных молодёжных технологиях", с выходом новых версий ПО становится устаревшим за несколько лет. Обновить - не реально. Переписать - тем более. Даже каких-то мелких вендоров уже не прикрутить - всё ломается, сбоит и глючит. А потребность в вендорах в виду требований бизнеса не прекращается - то библиотеку для работы с PDF нужно внедрить, то читалку Excel-файлов.

Так зарождается т.н. legacy-код. Legacy - это неизбежный исход для любого проекта, технологическая база которого развивается непрерывно.

Ну и закончить статью хочется цитатой одного автора, который на заре существования этого сайта часто выдавал базу:

Если и идти в программирование, то какое направление и стэк технологий выбрать, чтобы была стабильность и не нужно было бы учиться всю жизнь.

Ты однозначно ошибся с профессией, если думаешь, что тут есть хоть намек на стабильность. Зайди лучше к сварщикам, у них все относительно стабильно.

/2021/03/09/all-as-in-humans-ii/#comment-1127

Комментарии (252)

Правила комментирования
  • Любые темы про политику, войны, или всё то, что НЕ относится к теме сайта, будут УДАЛЯТЬСЯ.
  • Всё, что попадает под возможные нарушения законодательства РФ (экстремизм, призывы, дискредитация, оправдание, возбуждение и т.п.) - тоже.
  • Любые бессмысленные оскорбления участников сайта или тематики сайта. Если с чем-то не согласны - приводите аргументацию, а не оскорбления.
  • Запрещается упоминание в негативном контексте (клевета) каких-либо персоналий - физических или юридических лиц.

Мы стараемся сделать комментарии ценным информационным материалом, засорять сайт мусорными обсуждениями, никак не относящимися к теме сайта, не нужно! Спасибо за понимание.

0 / 10000

Форматы: JPG, PNG, WebP. Не более 5 файлов (по 10 МБ). Можно вставить из буфера (Ctrl+V).

Загрузка комментариев…