В интернетах периодически встречаются посты возмущённых пользователей, которые сетуют на то, что разработчики программного обеспечения не тратят силы на оптимизацию своих детищ. Обычно эти посты исходят от владельцев допотопных компов, которые за свою жизнь ни разу не купили ни одной программы. Вынужден разочаровать таких пользователей – их проблемы мало волнуют разработчиков. Разработчики, в своём большинстве, не благотворители-энтузиасты, бесплатно работающие за идею; они тоже хотят есть. Если человек не может купить себе нормальный компьютер – странно ожидать, что он найдёт деньги на покупку ПО.
Впрочем, нужно признать – современный софт, действительно, жрёт ресурсы компьютера «как не в себя». Если проанализировать развитие некоторых продуктов, то можно отметить, что их «аппетиты» к ресурсам растут намного быстрее, чем возможности и функционал.
На самом деле, при желании, разработчики могут заставить свой софт потреблять намного меньше ОЗУ и мощности процессора – что и делается, в тех случаях, когда это необходимо – например, если ПО разрабатывается для каких-то слабых контроллеров.
Но нужно понимать, что для уменьшения потребления ресурсов компа программами, разработчикам придётся пользоваться более примитивными средствами разработки, отказаться от использования некоторых библиотек, писать более низкоуровневый код, заниматься профилированием и ручной оптимизацией. Всё это увеличивает срок разработки, возрастают требования к квалификации программистов. А значит – разработка такого ПО будет стоить компании существенно дороже.
Спросите типичного пользователя – готов ли он купить точно такую же программу в два раза дороже, при условии, что она будет потреблять, скажем, не 8Гб ОЗУ, а всего 4Гб. Естественно, я говорю о пользователе, который честно покупает софт, а не ворует. При этом, скорее всего, разница в цене оптимизированной и неоптимизированной версий программы, будет значительно превышать стоимость дополнительной планки памяти. Если же ещё добавить, что оптимизированную версию он получит не сейчас, а где-то через год и, возможно, она будет даже менее функциональна – то его ответ очевиден.
А ведь пользователь, как правило, устанавливает на свой комп далеко не одну программу. Соответственно, переплата за оптимизацию коснётся их всех. В то время, как расширенным ОЗУ или более мощной видеокартой смогут пользоваться все программы в системе (особенно, если эти программы не предполагают одновременной работы).
Так что в нынешней ситуации с «прожорливым» софтом нет никакого заговора. Просто бизнес и экономическая целесообразность. Если какая-то компания и будет увлекаться созданием ресурсоэкономичных программ, то вряд ли она продержится на рынке долго – её вытеснят конкуренты, которые смогут чаще выпускать свои решения, быстрее внедрять новые фичи и устанавливать более доступную цену: это пользователи заметят, а то, что софт отлично оптимизирован – не факт.
При этом, с ростом мощности компьютеров данный тренд будет лишь увеличиваться. К счастью, уже давно ресурсы вычислительных систем стоят на порядок дешевле, чем время программиста. Оптимизаций ПО нужно заниматься ровно до той степени, пока этого не станет достаточно, чтобы бы программа работала с приемлемой скоростью на более-менее современном железе. Дальнейшая оптимизация – лишь убытки и трата времени.
Отчасти данные рассуждения касаются и отладки ПО. Наверное, уменьшить число ошибок в программах на порядок можно, но стоить этот софт станет столько, что его мало кто сможет купить. Да и придётся запастись терпением, чтобы дождаться окончания разработки. К надёжности и стабильности программ так же применимо понятие разумной достаточности.
Коллеги! Подписывайтесь на канал, ставьте лайки. Я собираюсь продолжить писать интересный материал о работе руководителя, IT-индустрии, бизнесе, ну и просто о жизни офисного планктона