Существует устойчивое мнение, что программное обеспечение необходимо обновлять сразу же после выхода новой версии, поскольку в нём исправлены известные баги и добавлены новые фичи (то бишь оно лишено недостатков и расширено новыми возможностями по сравнению с предшествующей версией). Значит ли это, что нужно всегда и все программы обновлять на самые свежие? Попробуем разобраться на примере Blender 3D — программы, находящейся сегодня в стадии активного развития, хотя в целом аргументы за и против, а также выводы, могут быть перенесены на любой другой программный продукт.
Итак, какие аргументы за обновление программ можно услышать чаще всего?
- Добавление новых функций — это хорошо и полезно. Так, при переходе на версию 2.8 был изменён интерфейс, теперь он максимально близок к таким монстрам рынка как Maya и 3D Max (ну, во всяком случае, должен был стать более близок и понятен пользователям этих программ, чтобы перестать быть белой вороной рынка ПО для 3D-моделирования). При переходе на третью версию блендера были добавлены новые ноды, позволяющие решать отдельные задачи намного эффективнее и опять же приближающие его по своим возможностям к уже упомянутым платным аналогам.
- Улучшение существующих функций — например, рендер-движок Cycles стал работать быстрее...
- Обеспечение совместимости программ друг с другом, с разными протоколами, версиями и т. п. Переход к версии 2.8 сопровождался мощной переработкой интерфейса и изменением горячих клавиш, что делалось для повышения степени соответствия интерфейса стандартам индустрии. Поскольку в плане 3D-моделирования я использую только свободное ПО, про изменения в совместимости с платными конкурентами ничего сказать не могу — не было необходимости изучать этот вопрос.
- Повышение безопасности и стабильности работы (после версии, содержащей множество крупных изменений, такой как 2.5 или 2.8, идёт выпуск версий, не претендующих на решение глобальных проблем, но при этом улучшающих и стабилизирующих работу программы).
- Чисто психологически — если ты используешь самую современную версию программы, ты — современный разработчик и крутой парень, но если ты не можешь отойти от старой версии, про которую все уже и думать забыли… ну, вы поняли.
Получается, что установка последней версии программы со всеми обновлениями положительно скажется на производительности, стабильности и безопасности системы в целом, расширит функциональность программы (и вообще — сделает из вас крутого парня!), из чего следует, что обновление ПО до последней версии — это хорошая практика. Тогда какие аргументы есть у пользователей для того, чтобы не выполнять обновление используемых ими программ?
- Современное ПО представляет собой не отдельные программы, а целые программные пакеты и комплексы, имеющие сложные внутренние взаимосвязи и использующие ресурсы сторонних программ — системные (и не только) библиотеки. Обновление отдельных компонентов может приводить к разбалансировке целого комплекса, понижению стабильности его работы, частым «вылетам» программы и иным сбоям. Чем сложнее ПО и используемые им технологии, тем сложнее создать полностью работоспособную связку из нескольких пакетов программ и тем ценнее сохранять эту связку в нетронутом, полностью работоспособном состоянии. Для блендера камнем преткновения может оказаться старый плагин, незаменимый для разработчика и имеющийся только в версии 2.79 и более ранних. Нередко читаю публикации разных моделлеров, которые пишут, что держат у себя на компьютере целый «зоопарк» версий блендера (как правило, 2.79 + 2.9Х + 3.Х), чтобы иметь возможность пользоваться всем богатством приобретённых и наработанных плагинов, моделей и тому подобного. То есть новые версии программы оказываются не в состоянии заменить предыдущие.
- Если вокруг программы выстроен технологический процесс (pipeline), переход на новую версию может оказаться очень болезненным (что все мы увидели при переходе с 2.79 на 2.80). В качестве примера могу привести студию propellers.pro, которая не только работает в более старой версии, но и до сих пор проводит бесплатные курсы по анимации в версии блендера 2.79.
- К сожалению, иногда развитие программы предполагает не только интеграцию в неё новых возможностей, но и отказ от старых, годами проверенных наработок. В блендере это игровой движок, которого не стало в версии 2.80 (покойся с миром!), также можно упомянуть различные ноды, появившиеся в версиях 2.9Х, «спрятанные» в версии 3.0 и выброшенные из более поздних релизов (навскидку не приведу названия, но сам уже сталкивался с необходимостью вернуться для работы в более раннюю версию блендера по причине отсутствия тех или иных нод).
- Нередко в развитии программного обеспечения можно заметить цикличность: на одном этапе добавляется функциональность, после чего в новых версиях программы «лечатся» баги и шлифуется всё, что было сделано недостаточно хорошо. Так, версия 2.79b — лучшая из ветки 2.5+, при этом версия 2.80 — очень сырая, версии ветки 2.9Х получше, но в 3.1-3.2 опять какие-то перемены «под капотом»! Ряд пользователей (особенно зарабатывающих с помощью этой программы деньги) предпочтёт оставаться на максимально стабильной и проверенной версии программы, сочтя отсутствие каких-то возможностей, появившихся в новых версиях, творческими ограничениями.
- Чем дольше сохраняется общий вид программы, её функционал и интерфейс, тем глубже будет проработана документация по этой версии. На мой взгляд, именно по этой причине сегодня, в середине 2022 года, самая лучшая, полная, обширная и корректная (!) документация по блендеру — у версии 2.79, прежде всего потому, что путь её развития оказался очень долгим (версия 2.50 вышла в 2009 году, последний вариант версии 2.79 вышел 29 июля 2019 года, то есть эта ветка активно прорабатывалась и документировалась более десяти лет). Для более поздних версий документацию зачастую делают «под копирку», меняя те места, которые не соответствуют действительности в новой версии (правда, иногда пропуская какие-то из произошедших изменений и делая другие, менее очевидные ляпы). Посмотрите онлайн справку по «последней» версии блендера — и вы найдёте там разделы, написанные ещё для версий 2.6-2.7-2.8...
- Разная компоновка интерфейса в разных версиях программы может сделать способы выполнения отдельных задач как минимум неудобными, как максимум — нетривиальными. Можно вспомнить хейтеров ленты и плиток, рабочего стола Unity в Ubuntu и прочие нововведения, не прижившиеся именно из-за необходимости смены парадигмы работы с ними пользователя. Когда-то сформулировал для себя наблюдение: любой инструмент формирует определённый способ своего использования (ту самую парадигму), при этом нельзя слепо переносить этот способ с одного инструмента на другой, даже если они довольно похожи. Поменяли интерфейс — будьте добры, расскажите нам о новых практиках и новых эффективных способах использования вашего нового интерфейса в решении наших задач, а уж мы попробуем — и решим, стоит ли менять шило на мыло. К примеру, в блендере до 2.79 включительно было удобное меню выбора слоёв, с которыми было очень удобно выполнять локальные настройки модели, в 2.80 оно исчезло… Куда? Зачем?
- Практика современного программирования предполагает бездумное потребление всех доступных вычислительных ресурсов. Если современный разработчик ПО имеет полное моральное право считать «недокомпьютером», скажем, ноутбук с 32 гигабайтами оперативной памяти и восьмиядерным процессором, то у обычного пользователя может быть в наличии только старенькая машинка с 2 гигами оперативки, одноядерным процессором (хорошо, если с гипертрейдингом) и диском на 160, выпущенная лет десять назад. Каждая новая версия становится всё более «прожорливой» (да-да, программисты чаще всего добавляют новые функции, не заботясь об оптимизации скорости их выполнения — зачем тратить на это время, если каждый год памяти и ядер процессора становится больше, а скорость их работы растёт?), что может заставить более внимательно присмотреться к более старым версиям — здесь важно, чтобы год выпуска программы примерно соответствовал году выпуска железа, на котором она будет работать.
- Ещё одной причиной для прекращения обновления ПО в современных реалиях может стать недоверие к разработчику и его политике — к сожалению, никто не может гарантировать, что если вчера на компьютере с русской раскладкой клавиатуры всё работало корректно, то сегодня что-нибудь не «рухнет» по прихоти кого-то из команды разработчиков самой программы или какого-либо плагина к ней.
Мы живём в непростое время, когда «последний iPhone — это тот, который у тебя уже есть», когда майнинг надолго сделал современные видеокарты труднодоступными во всём мире, а не только у нас, когда развитие мировой экономики намекает о необходимости перехода от творчества к ремеслу и «работе за еду», когда нужно бежать максимально быстро только для того, чтобы оставаться на одном месте и «соответствовать» требованиям индустрии.
В этих условиях актуальными версиями программ являются не самые последние (ну ок, не самые последние стабильные), а те, которые в полной мере способны выполнять возложенные на них задачи — а это может быть и «древняя» версия, разумеется, при условии, что вы умеете в ней эффективно работать.
Если вы ещё только собираетесь приступить к изучению блендера, я бы посоветовал версию 2.79, как бы странно это ни звучало. По ней гораздо больше полноценной информации (ещё бы! десять лет писали!), она более подробна и выверена. Эта версия не требовательна к железу, и вам не понадобится покупать дорогущий компьютер с видеокартой 4080Ti. Эта версия хороша для самообразования, но вот если вы захотите зарабатывать деньги моделированием - рано или поздно вам придётся перейти на более современную версию (не исключено, что к этому времени выйдет 3.3 или 3.4 и наконец начнётся шлифовка программы и фиксация имеющихся в ней функций, а не вот это всё). В любом случае - начиная с мегастабильной 2.79, вы получите более полное представление о том, как всё устроено, как оно работает - а потом сможете спокойно перейти на любую другую версию, какая вам будет нужна.