Раздутое программное обеспечение

Раздутое программное обеспечение (англ. bloatware, fatware, elephantware[1]) — программа, имеющая слишком много дополнительных функций, на работу которых уходит непропорционально много ресурсов системы[2][3], в особенности если эти функции не нужны или малополезны для работы программы (такие функции часто называют «gimmicks» (англ.), «bells and whistles» (англ.), дословно: «бубенчики и свистульки»)[4].

У английского термина bloatware (также англ. crapware, shovelware) существует также второе значение, которое относится к ресурсоёмкому предварительно установленному программному обеспечению, которое пользователю не нужно, но навязывается ему производителями компьютеров, планшетов, смартфонов и т. д.[5][6][7]

Общее описаниеПравить

Основное различие между строителями и программистами состоит в том, что строители знают, когда нужно положить последний кирпич, а программисты — нет. Каждая новая версия программы добавляет что-то к старой. «Вавилонская башня» растет как на дрожжах и в какой-то момент начинает падать.

Каждая программа будет расширяться, пока не научится читать почту. Программы, которые не могут так расшириться, заменяются теми, которые могут.

Технически раздутое программное обеспечение чаще всего ассоциируется с понятием «расползание возможностей», или «ползучий улучшизм»[2]feature creep, creeping featurism/featuritis» (англ.)), которое обозначает тенденцию разработчиков добавлять в программный продукт больше и больше возможностей в попытке «не отстать от конкурентов», однако приводящую фактически к созданию более медленного и менее эффективного изделия[9]. Согласно озвученным в 2002 году данным исследований, только 20 %—25 % функций программных продуктов использовались всегда или часто, тогда как до 45 % функций вообще никогда не использовались. По мнению Мартина Фаулера, большинство проектов должны были бы иметь лишь четверть от их существующего размера[10].

Раздувание сказывается не только на производительности программ: увеличение объёма программного кода приводит к росту затрат на его обслуживание и развитие. К тому же плохо проработанные дополнительные функции могут стать источником уязвимостей.

Вклад в «раздувание возможностей» вносит также «эффект второй системы», описанный Фредериком Бруксом ещё в 1975 году: программист, разрабатывающий свою вторую систему, склонен добавлять все те возможности, которые он не смог добавить в свою первую систему (из-за нехватки времени), поэтому вторая система часто получается перегруженной возможностями.

Известные ИТ-специалисты о раздувании программПравить

Никлаус Вирт в 1996 году написал статью «Долой „жирные программы“», подняв проблему программ, для которых рост требований к ресурсам превышает рост их функциональных возможностей и производительности[11]. Термин «жирные программы» (fatware) позаимствован им из статьи в журнале Byte 1993 года[12].

Вирт указал на два шутливых «закона», которые тем не менее верно отражают ситуацию:

  • Закон Паркинсона: программное обеспечение увеличивается в размерах до тех пор, пока не заполнит всю доступную на данный момент память.
  • Закон Рейзера: программное обеспечение замедляется более быстро, чем аппаратура становится быстрее[11].

Два фактора вносят вклад в приятие потребителями программного обеспечения всё более растущих размеров: быстро увеличивающаяся аппаратная производительность и игнорирование принципиальной разницы между жизненно важными возможностями и теми, которые «хорошо бы иметь»[11].

Натан Мирволд[en] использовал выражение «software is a gas» («программа — это газ»), чтобы описать следующий феномен: вне зависимости от степени усовершенствования аппаратного обеспечения разработчики всегда имеют тенденцию добавлять функциональность, чтобы заставить свои программы натолкнуться на границы этой производительности[13].

Отношение к раздуванию программного обеспеченияПравить

Подгонка старых программ под новые машины обычно означает такие изменения, при которых новые машины работают как старые.

Пользователи, как правило, относятся к раздутому программному обеспечению отрицательно. По мнению Джоэла Спольски, они это делают зря,[15] по следующим причинам:

  • С прогрессом микроэлектроники аппаратное обеспечение, на котором новая версия способна работать, часто оказывается даже дешевле. Например, Excel 1.0 потреблял 36 долл. дискового пространства по ценам 1993 года, Excel 2000 — 1,03 долл. по ценам 2000 года.
  • Оптимизация экономически оправдана только в ключевых точках программы. Вовремя вышедшая программа важнее хорошо оптимизированной (в крайнем случае можно выпустить патч).
  • Хотя типичный пользователь использует 20 % функций, у разных пользователей эти 20 % разные. Поэтому, если написать облегчённую программу, в которой реализованы только 20 % функций, есть риск сильно сузить круг её пользователей.

ПримерыПравить

Сравнение минимальных требований Windows (версии x86)
Версия Windows Процессор Память Размер на диске
Windows 95[16] 25 MHz 4 MB ~50 MB
Windows 98[17] 66 MHz 16 MB ~200 MB
Windows 2000[18] 133 MHz 32 MB 650 MB
Windows XP[19] (2001) 233 MHz 64 MB 1.5 GB
Windows Vista[20] (2007) 800 MHz 512 MB 15 GB
Windows 7[21] (2009) 1 GHz 1 GB 16 GB
Windows 8[22] (2012) 1 GHz 1 GB 16 GB
Windows 10[23] (2015) 1 GHz 1 GB 4 GB
Windows 11[24] (2021) 1 GHz 4 GB 64 GB

Сайт Switched Downloadsquad опубликовал в 2008 году примеры наихудших программ в категории «elephantware», то есть «раздутых программ, которые заставляют новейшие персональные компьютеры загружаться подобно Pentium 2 с 64 MB оперативной памяти»[25]. Были названы следующие программы:

Хорошим примером, иллюстрирующим рост требований, являются системные требования для установки ОС фирмы Microsoft. Как видно, их рост происходил явно непропорционально появлению новых возможностей. При этом следует иметь в виду, что отчасти это объясняется «усечением» возможностей Windows в зависимости от лицензии, в то время как основные системные файлы остаются в прежнем количестве. Минимальные требования для Windows 10 остались теми же, что Windows 7, в то время как пользователи и тестировщики отмечают фактический рост потребления памяти. Следовательно, сохранение минимальных требований носит в известной части рекламный характер.

Часто в качестве примеров неоправданного раздувания приводится Nero Burning ROM[26]. В течение жизненного цикла пакет этой программы обзавёлся графическим и звуковым редактором, аудио- и видеоплеером, а также альтернативной версией программы записи с упрощённым интерфейсом, всё это снабжалось специальной программой-оболочкой для запуска и имело сложные графические стили оформления.

Противодействие раздуваниюПравить

Прямой противоположностью раздувания является принцип KISS, запрещающий усложнение систем, если они и так хорошо работают. Также против раздувания направлен первый принцип философии Unix.

В 2014 году Южная Корея законодательно обязала разработчиков ПО для смартфонов обеспечить возможность принудительного удаления нежелательного раздутого ПО («unnecessary pre-installed bloatware»). Этот шаг был вызван участившейся практикой предварительной установки на смартфоны ненужного ресурсоёмкого программного обеспечения, не поддающегося удалению стандартными средствами[27].

ПримечанияПравить

  1. What is bloatware? // wiseGEEK. Дата обращения: 20 сентября 2013. Архивировано 21 сентября 2013 года.
  2. 1 2 Александр Клименков. Лилипуты в стране великанов Архивная копия от 22 сентября 2013 на Wayback Machine // Компьютерра, № 4, 10.02.2008
  3. Definition of bloatware // answers.com. Дата обращения: 12 августа 2016. Архивировано 20 сентября 2016 года.
  4. What is bloatware // businessdictionary.com (недоступная ссылка). Дата обращения: 20 сентября 2013. Архивировано 21 сентября 2013 года.
  5. Definition of bloatware in Oxford dictionary. Дата обращения: 27 июня 2017. Архивировано 15 мая 2018 года.
  6. Brad Chacos. Bloatware: Why computer makers fill your PC with junk, and how to get rid of it Архивная копия от 28 июня 2017 на Wayback Machine // PC World, 26.02.2015
  7. Eric Griffith. How to Clean Crapware From a New PC Архивная копия от 6 июля 2017 на Wayback Machine // PC World, 10.02.2017
  8. Эволюция софта Архивная копия от 14 октября 2013 на Wayback Machine // Хакер, №055 (спецвыпуск), с. 55-56
  9. Bloatware // Macmillan Dictionary. Дата обращения: 20 сентября 2013. Архивировано 21 сентября 2013 года.
  10. Martin Fowler. The XP 2002 Conference Архивная копия от 29 декабря 2016 на Wayback Machine, 02 July 2002
  11. 1 2 3 Никлаус Вирт. Долой «жирные» программы.
  12. Ed Perratore, Tom Thompson, Jon Udell, Rich Malloy. Fighting Fatware // Byte. — апрель 1993. — Vol. 18, № 4. — P. 98—108.
  13. Guoqing Xu, Nick Mitchell etc. Software bloat analysis: finding, removing, and preventing performance problems in modern large-scale object-oriented applications // Proceedings of the FSE/SDP workshop on Future of software engineering research. Pages 421—426. Текст (недоступная ссылка).
  14. From ACM's SIGPLAN publication, (September, 1982), Article "Epigrams in Programming", by Alan J. Perlis of Yale University.
  15. Strategy Letter IV: Bloatware and the 80/20 Myth. Дата обращения: 2 сентября 2008. Архивировано 5 июля 2008 года.
  16. Microsoft KB: Windows 95 Installation Requirements. Дата обращения: 22 июля 2007. Архивировано 7 августа 2007 года.
  17. Microsoft KB: Minimum Hardware Requirements for a Windows 98 Installation. Дата обращения: 22 июля 2007. Архивировано 4 ноября 2010 года.
  18. Windows 2000 Server Getting Started: Chapter 3 - Planning Your Windows 2000 Server Installation. Дата обращения: 29 августа 2007. Архивировано 12 сентября 2007 года.
  19. Microsoft KB: System requirements for Windows XP operating systems. Дата обращения: 22 июля 2007. Архивировано 5 июля 2006 года.
  20. Microsoft KB: System requirements for Windows Vista. Дата обращения: 22 июля 2007. Архивировано 3 июля 2007 года.
  21. Microsoft: System requirements for Windows 7. Дата обращения: 9 октября 2009. Архивировано 18 июня 2016 года.
  22. Windows 8 Release Preview ISO images. — «"Windows 8 Release Preview works great on the same hardware that powers Windows 7"». Дата обращения: 12 августа 2012. Архивировано 5 марта 2012 года.
  23. 7 things to remember if you're trying out the Windows 10 preview. www.computerworld.com. Дата обращения: 29 марта 2015. Архивировано 18 марта 2015 года.
  24. This is the hardware you need to run Windows 11 - The Verge. Дата обращения: 27 сентября 2021. Архивировано 4 октября 2021 года.
  25. 1 2 Jack Schofield. What’s your most annoying program? Архивная копия от 15 мая 2018 на Wayback Machine // www.theguardian.com, Software Technology blog 2008
  26. Cassia, Fernando 'Nero Lite' and 'Nero Micro': smaller sometimes is better. The Inquirer (27 February 2007). Дата обращения: 7 марта 2007. Архивировано 2 марта 2007 года.
  27. Ryan Huang. South Korea rules pre-installed phone bloatware must be deletable Архивная копия от 21 октября 2016 на Wayback Machine // zdnet.com, January 24, 2014