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

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

Раздува́ние програ́ммного обеспече́ния (англ. 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.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Функция для галочки" в других словарях:

  • Google Chrome — Для термина «Chrome» см. другие значения. Эта статья о браузере; об операционной системе см.: Google Chrome OS. Google Chrome …   Википедия

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

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

  • ВТО — это международная финансовая организация ВТО : вступление в ВТО, Россия в ВТО, состав ВТО Содержание >>>>>>>>>>>>>> …   Энциклопедия инвестора

  • Антипаттерн — Возможно, эта статья содержит оригинальное исследование. Добавьте ссылки на источники, в противном случае она может быть выставлена на удаление. Дополнительные сведения могут быть на странице обсуждения. (25 мая 2011) …   Википедия

  • Windows 7 — Windows 7 …   Википедия

  • Apple — (Эпл, Апл) История компании Apple, руководство Apple, иски против Apple Персональные и планшетные компьютеры, мобильные телефоны, аудиоплееры, программное обеспечение компании Apple, iPhone, iPad, iPod classic, iPod shuffle, iPod nano, iPod touch …   Энциклопедия инвестора

  • Лимит — (Limit) Содержание Содержание Определения описываемого предмета Лимитирование банковских операций Позиционные Объемные лимиты Лимиты на характеристики позиций, на взвешенный объем Структурные лимиты (долевые лимиты, лимиты концентрации) Лимиты… …   Энциклопедия инвестора


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

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