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

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Функция для галочки»)
Перейти к: навигация, поиск

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

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

Крис Касперски[5].

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

Джейми Завински, разработчик Netscape Communicator

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

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

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

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

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

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

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

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

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

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

Алан Перлис[11].

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

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

  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. 1 2 Никлаус Вирт. Долой «жирные» программы.
  8. Ed Perratore, Tom Thompson, Jon Udell, Rich Malloy Fighting Fatware // Byte. — апрель 1993. — Vol. 18, № 4. — P. 98—108.
  9. 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. Текст.
  10. Strategy Letter IV: Bloatware and the 80/20 Myth
  11. From ACM's SIGPLAN publication, (September, 1982), Article "Epigrams in Programming", by Alan J. Perlis of Yale University.
  12. 1 2 Ian Smith. The 5 most annoying programs on your PC // Switched Downloadsquad, 2008