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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

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

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

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

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

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

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

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

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

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

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

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

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

Примеры[править | править вики-текст]

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

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

Интересные факты[править | править вики-текст]

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

Примечания[править | править вики-текст]

  1. What is bloatware? // wiseGEEK
  2. 1 2 Александр Клименков. Лилипуты в стране великанов // Компьютерра, № 4, 10.02.2008
  3. Definition of bloatware // answers.com
  4. What is bloatware // businessdictionary.com
  5. Эволюция софта // Хакер, №055 (спецвыпуск), с. 55-56
  6. Bloatware // Macmillan Dictionary
  7. Martin Fowler. The XP 2002 Conference, 02 July 2002
  8. 1 2 3 Никлаус Вирт. Долой «жирные» программы.
  9. Ed Perratore, Tom Thompson, Jon Udell, Rich Malloy Fighting Fatware // Byte. — апрель 1993. — Vol. 18, № 4. — P. 98—108.
  10. 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. Текст.
  11. Strategy Letter IV: Bloatware and the 80/20 Myth
  12. From ACM's SIGPLAN publication, (September, 1982), Article "Epigrams in Programming", by Alan J. Perlis of Yale University.
  13. 1 2 Ian Smith. The 5 most annoying programs on your PC // Switched Downloadsquad, 2008
  14. Ryan Huang. South Korea rules pre-installed phone bloatware must be deletable // zdnet.com, January 24, 2014