Раздувание ПО

Раздувание ПО

Раздува́ние програ́ммного обеспече́ния (англ. software bloat, bloatware) — тенденция новых программ быть больше по объёму и требовать больше системных ресурсов по сравнению со старыми. В результате у многих людей появляется ощущение, что рост мощности компьютеров более чем компенсируется замедлением работы программ.

Содержание

Причины

Юмористический закон

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

Закон экстенсивного программирования Джейми Завинского[1]
  • Основной причиной этого является добавление в программы всё новых функций и возможностей, в том числе и не являющихся абсолютно необходимыми для работы.
    • Некоторые из подобных функций фактически стали требованиями. Например, графический интерфейс требует существенно бо́льших ресурсов, чем текстовый, однако пользователи уже привыкли работать только с графическим интерфейсом (даже если им фактически и не требуется работать с изображениями).
  • Всё чаще используются внешние библиотеки, в которых универсальность оборачивается большим размером. Например: в Forms автоматически прибавляет к размеру EXE-файла 200 килобайт.
  • Кроссплатформенное ПО либо имитирует внешний вид стандартных оконных элементов ОС, либо добавляет промежуточный слой абстракции, что также расходует память.
  • В то же время программисты стали уделять меньше внимания оптимизации программ, так как она становится всё менее окупаемой.

Пример 1: системные требования Microsoft Windows

Сравнение минимальных конфигураций компьютера для разных версий Microsoft Windows (по данным Microsoft):

Версия ОС Частота процессора Оперативная память Место на диске
Windows 95[2] 25 МГц 8 Мб ~50 Мб
Windows 98[3] 66 МГц 24 Мб 140—255 Мб
Windows ME[4] 150 МГц 32 Мб 320 Мб
Windows 2000 Server[5] 133 МГц 64 Мб 1 Гб
Windows XP[6] 300 МГц 128 Мб 1,5 Гб
Windows Vista[7] 1 ГГц 1 Гб 15 Гб

Пример 2: вывод списка файлов

Во времена NC или VC) осуществляли вывод списка файлов практически мгновенно. В современных системах, несмотря на многократно возросшую мощь компьютеров, вывод списка файлов занимает довольно длительное время — это связано главным образом со сложной системой иконок файлов, которые во многих случаях генерируются в зависимости от содержания файла. Таким образом, если раньше программе требовалось только получить список файлов и отсортировать его, то теперь требуется для каждого файла либо заглянуть в реестр (чтобы узнать, какая иконка соответствует данному расширению имени), либо прочитать этот файл, чтобы сгенерировать подходящую иконку. Многие пользователи предпочли бы обойтись без иконок, но в большинстве систем отключить их вывод невозможно.

Отношение к раздуванию ПО

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

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

Кроме того, как заметил Реймонд Чен, пользователь часто не замечает усовершенствованные «внутренности» ПО. Например, калькулятор Windows часто ругали за потерю точности. В какой-то момент стандартную библиотеку работы с числами с плавающей запятой в формате IEEE заменили на библиотеку с поддержкой чисел произвольной точности, но это мало кто заметил.[9]

Альтернативы раздутому ПО

  • Модульный принцип — к основной программе подключается дополнительная функциональность в виде плагинов. Это позволит исключить из основной поставки редкоиспользуемую функциональность.
  • Написание ПО по хорошо проработанному техническому заданию, без «функций для галочки».
  • Открытое ПО может скрывать редкоиспользуемые функции с помощью директив препроцессора (см.: Условная компиляция). Например, в n».

Сходные явления

Функции для галочки

С раздуванием программного обеспечения связан такой феномен, как «функции для галочки». Этим термином называют функции, наспех сделанные исключительно для того, чтобы указать в рекламном проспекте, что эта функция есть.

Раздувание кода

Программный код, который пишется несколькими людьми (или одним в течение длительного времени) часто подвержен раздуванию. Признаками этого являются:

Причинами могут быть:

Против раздувания кода помогает серьёзный рефакторинг — но затраты на него могут быть настолько велики, что приходится держать «взрывоопасный» код «до последнего».

Фичакрип, или «раздувание функциональности»

К концу разработки выясняется, что для сдачи законченного продукта требуется реализовать всё больше и больше функций, «и все нужны».[10] Это и есть фичакрип (англ. feature creep). Предполагается, что это главная причина невыхода программных продуктов и превышения бюджета.

Примечания


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "Раздувание ПО" в других словарях:

  • раздувание — преувеличение, утрирование, муссирование, гиперболизация; разжигание, разогнание, разметание, расширение, вздувание, рассеивание, взбухание, разметывание, развеивание, вспухание, разгонка, подогревание, разгон, разнесение, надувание, утрировка,… …   Словарь синонимов

  • раздувание — РАЗДУТЬ, ую, уешь; утый; сов., что. Толковый словарь Ожегова. С.И. Ожегов, Н.Ю. Шведова. 1949 1992 …   Толковый словарь Ожегова

  • РАЗДУВАНИЕ — разводнение исчисление реального валового национального продукта на основе цен базисного года, когда цены были максимальными, что приводит к увеличению денежной стоимости валового национального продукта (ВНП). Райзберг Б.А., Лозовский Л.Ш.,… …   Экономический словарь

  • раздувание пакера — — [http://slovarionline.ru/anglo russkiy slovar neftegazovoy promyishlennosti/] Тематики нефтегазовая промышленность EN packer inflation …   Справочник технического переводчика

  • раздувание пласта — — [http://slovarionline.ru/anglo russkiy slovar neftegazovoy promyishlennosti/] Тематики нефтегазовая промышленность EN thickening of formation …   Справочник технического переводчика

  • раздувание трубы — — [А.С.Гольдберг. Англо русский энергетический словарь. 2006 г.] Тематики энергетика в целом EN pipe ballooning …   Справочник технического переводчика

  • Раздувание программного обеспечения — (англ. software bloat, bloatware)  тенденция новых программ быть больше по объёму и требовать больше системных ресурсов по сравнению со старыми[источник не указан 267 дней]. Никлаус Вирт в 1996 году написал статью… …   Википедия

  • раздувание легкого — rus расширение (с) легкого, перерастяжение (с) легкого; расширенное легкое (с); раздувание (с) легкого; раздутое легкое (с) eng lung inflation, overexpansion fra surpression (f) pulmonaire deu Lungenüberdruck (m), überdehnung (f) der Lunge spa… …   Безопасность и гигиена труда. Перевод на английский, французский, немецкий, испанский языки

  • Раздувание — I ср. 1. процесс действия по гл. раздувать 1. 2. Результат такого действия; усиление горения; раздутие I 2., раздув I 2.. II ср. 1. процесс действия по гл. раздуваться 1., 2. 2. Результат такого действия; увеличение в объёме; раздутие II 2.,… …   Современный толковый словарь русского языка Ефремовой

  • раздувание — раздувание, раздувания, раздувания, раздуваний, раздуванию, раздуваниям, раздувание, раздувания, раздуванием, раздуваниями, раздувании, раздуваниях (Источник: «Полная акцентуированная парадигма по А. А. Зализняку») …   Формы слов


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»