Правильно ли умирает заброшенный код?

10

У меня сложилось впечатление, что со временем генерируется все больше и больше открытого исходного кода, добавляется в различные бесплатные или частично бесплатные репозитории, а затем в целом отказывается.

Существуют ли общепринятые стандарты для удаления заброшенного кода? Должно ли это быть осуществлено репозиториями, или это должны делать авторы исходного кода?

blueberryfields
источник
2
Зачем его утилизировать? Если это с открытым исходным кодом, кто-то может захотеть его когда-нибудь, и хранить его в репозиториях не очень дорого.
Дэвид Торнли
Что вы подразумеваете под "стандартами для удаления заброшенного кода" ?? "Del . "?
Ладья
@Rook: или «rm -rf *» для пользователей Unix / Linux.
Дэвид Торнли
@ Дэвид Торнли - да, хорошо ... вы понимаете :)
Ладья

Ответы:

7

Большая проблема здесь состоит в том, чтобы решить, когда что-то оставлено.

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

Устаревшее программное обеспечение (замененное обновлением или заменой) также может быть полезно многим людям. Обратите внимание на ошибки браузера 90-х годов, которые приводили к тому, что политики обновления не выполнялись даже при наличии исправлений безопасности, поскольку другое программное обеспечение зависело от ошибок в конкретной версии.

Поэтому я бы сказал, что нет, просто потому, что нет надежного способа определить, используется ли программное обеспечение до сих пор. Отсутствие доказательств не является доказательством отсутствия :)

l0b0
источник
+1 за последнее предложение. Вы никогда не сможете сказать, кто полагается на это программное обеспечение, поэтому Microsoft придает почти бесконечный приоритет обратной совместимости.
Майкл К
1

Это проблема обслуживания хранилищ, в которых находится мертвый код. Они потребляют ресурсы, даже если нет трафика на эти проекты. У провайдера есть два варианта: избавиться от него или оставить его на неопределенный срок. В некоторых местах, таких как SourceForge, проекты сохраняются до тех пор, пока владелец не удалит их вручную. Даже тогда у них все еще есть архивы.

Лучший подход, который я видел для избавления от старых библиотек, которые больше не используются для чего-то нового, это такой подход:

  • Устаревшая библиотека - поместите ее в программный эквивалент «чердака». Это означает, что вы отправляете уведомление в известные списки рассылки электронной почты и закрываете эти списки. «Чердак» является местом доступа только по протоколу HTTP, поэтому любой заинтересованный пользователь может загрузить копию по своему усмотрению. Все страницы будут иметь "устаревший" отказ от ответственности, и если язык проекта поддерживает его, API будет помечен как @deprecated.
  • После определенного периода времени на чердаке (по крайней мере, месяц или год, в зависимости от политики), полностью удалите библиотеку.
  • Удалите все ссылки на библиотеку на вашем сайте.

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

Берин Лорич
источник
1

Вы можете также задать тот же вопрос о литературе или музыке. Несомненно, в 80-х годах было написано много «по-настоящему заброшенных» старых программ, о которых вы не знаете, потому что, ну, никто не использует их и больше не думает об этом. Но нет авторитетной фигуры, которая этим распоряжается, потому что все это децентрализовано. Это просто природа сети. Единственная реальная мера того, насколько успешным является программное обеспечение, - это то, сколько людей все еще находят веские основания продолжать его использовать. Когда у него заканчиваются сторонники, он умирает естественной смертью.

Точно так же мы склонны рассматривать каждого композитора 18-го века как Моцарта, а каждого драматурга 16-го века как Шекспира. Закон осетровых гласит, что 90% всего и сейчас, и тогда - это дерьмо, но вы более знакомы с дерьмом, которое существует сейчас, потому что у него не было достаточно времени, чтобы испытать полный упадок пользователей.

Казим
источник