Раздутое программное обеспечение
Раздутое программное обеспечение (англ. 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 | Процессор | Память | Размер на диске |
---|---|---|---|
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 | 16 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].
ПримечанияПравить
- ↑ What is bloatware? // wiseGEEK (неопр.). Дата обращения: 20 сентября 2013. Архивировано 21 сентября 2013 года.
- ↑ 1 2 Александр Клименков. Лилипуты в стране великанов Архивная копия от 22 сентября 2013 на Wayback Machine // Компьютерра, № 4, 10.02.2008
- ↑ Definition of bloatware // answers.com (неопр.). Дата обращения: 12 августа 2016. Архивировано 20 сентября 2016 года.
- ↑ What is bloatware // businessdictionary.com (неопр.). Дата обращения: 20 сентября 2013. Архивировано из оригинала 21 сентября 2013 года.
- ↑ Definition of bloatware in Oxford dictionary (неопр.). Дата обращения: 27 июня 2017. Архивировано 15 мая 2018 года.
- ↑ 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
- ↑ Eric Griffith. How to Clean Crapware From a New PC Архивная копия от 6 июля 2017 на Wayback Machine // PC World, 10.02.2017
- ↑ Эволюция софта Архивная копия от 14 октября 2013 на Wayback Machine // Хакер, №055 (спецвыпуск), с. 55-56
- ↑ Bloatware // Macmillan Dictionary (неопр.). Дата обращения: 20 сентября 2013. Архивировано 21 сентября 2013 года.
- ↑ Martin Fowler. The XP 2002 Conference Архивная копия от 29 декабря 2016 на Wayback Machine, 02 July 2002
- ↑ 1 2 3 Никлаус Вирт. Долой «жирные» программы.
- ↑ Ed Perratore, Tom Thompson, Jon Udell, Rich Malloy. Fighting Fatware // Byte. — апрель 1993. — Vol. 18, № 4. — P. 98—108.
- ↑ 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. Текст (недоступная ссылка).
- ↑ From ACM's SIGPLAN publication, (September, 1982), Article "Epigrams in Programming", by Alan J. Perlis of Yale University.
- ↑ Strategy Letter IV: Bloatware and the 80/20 Myth (неопр.). Дата обращения: 2 сентября 2008. Архивировано 5 июля 2008 года.
- ↑ Microsoft KB: Windows 95 Installation Requirements (неопр.). Дата обращения: 22 июля 2007. Архивировано 7 августа 2007 года.
- ↑ Microsoft KB: Minimum Hardware Requirements for a Windows 98 Installation (неопр.). Дата обращения: 22 июля 2007. Архивировано 4 ноября 2010 года.
- ↑ Windows 2000 Server Getting Started: Chapter 3 - Planning Your Windows 2000 Server Installation (неопр.). Дата обращения: 29 августа 2007. Архивировано 12 сентября 2007 года.
- ↑ Microsoft KB: System requirements for Windows XP operating systems (неопр.). Дата обращения: 22 июля 2007. Архивировано 5 июля 2006 года.
- ↑ Microsoft KB: System requirements for Windows Vista (неопр.). Дата обращения: 22 июля 2007. Архивировано 3 июля 2007 года.
- ↑ Microsoft: System requirements for Windows 7 (неопр.). Дата обращения: 9 октября 2009. Архивировано 18 июня 2016 года.
- ↑ Windows 8 Release Preview ISO images (неопр.). — «"Windows 8 Release Preview works great on the same hardware that powers Windows 7"». Дата обращения: 12 августа 2012. Архивировано 5 марта 2012 года.
- ↑ 7 things to remember if you're trying out the Windows 10 preview (неопр.). www.computerworld.com. Дата обращения: 29 марта 2015. Архивировано 18 марта 2015 года.
- ↑ This is the hardware you need to run Windows 11 - The Verge (неопр.). Дата обращения: 27 сентября 2021. Архивировано 4 октября 2021 года.
- ↑ 1 2 Jack Schofield. What’s your most annoying program? Архивная копия от 15 мая 2018 на Wayback Machine // www.theguardian.com, Software Technology blog 2008
- ↑ Cassia, Fernando 'Nero Lite' and 'Nero Micro': smaller sometimes is better (неопр.). The Inquirer (27 февраля 2007). Дата обращения: 7 марта 2007. Архивировано 2 марта 2007 года.
- ↑ Ryan Huang. South Korea rules pre-installed phone bloatware must be deletable Архивная копия от 21 октября 2016 на Wayback Machine // zdnet.com, January 24, 2014