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

Раздутие программного обеспечения это процесс, посредством которого последовательные версии компьютерная программа стать заметно медленнее, использовать больше памяти, дисковое пространство или имеют более высокие требования к оборудованию, чем в предыдущей версии - при этом вносятся только сомнительные заметные пользователю улучшения или ползучесть функций. Термин не применяется последовательно; он часто используется как уничижительный конечные пользователи (вредоносное ПО) для описания нежелательного пользовательский интерфейс изменения, даже если эти изменения мало или совсем не повлияли на требования к оборудованию. В долгоживущем программном обеспечении воспринимаемое раздувание может происходить из-за того, что программное обеспечение обслуживает большой, разнообразный рынок с множеством различных требований. Большинство конечных пользователей будут считать, что им нужно лишь ограниченное подмножество доступных функций, а остальные будут рассматривать как ненужное раздувание, даже если эти функции потребуются конечным пользователям с другими требованиями.

Фактическое (измеримое) раздувание может произойти из-за того, что эффективность программного обеспечения в пользу других проблем, таких как продуктивность разработчиков, или, возможно, за счет введения новых уровней абстракции, таких как виртуальная машина или другой скриптовый движок для удобства при уменьшении ограничений разработчика. Восприятие повышения продуктивности разработчиков в случае практики разработки в средах виртуальных машин исходит от разработчиков, которые больше не принимают во внимание ограничения ресурсов и их использование во время проектирования и разработки; это позволяет завершить продукт быстрее, но это приводит к увеличению требований к оборудованию конечного пользователя для компенсации.

Термин «вредоносное ПО» также используется для описания нежелательных предустановленное программное обеспечение или же связанные программы.[1]

Причины

Неэффективность программного обеспечения

Разработчики программного обеспечения вовлеченные в отрасль в 1970-е годы имели серьезные ограничения на дисковое пространство и память. Каждый байт и такт была принята во внимание, и была проделана большая работа по адаптации программ к имеющимся ресурсам. Достижение такой эффективности было одной из высших ценностей компьютерных программистов, и лучшие программы часто назывались "элегантный ", термин, используемый математиками для описания аккуратного, экономного и мощного доказательства.

К 21 веку ситуация изменилась. Ресурсы воспринимались как дешевые, а скорость написания кода и заголовки для маркетинга рассматривались как приоритеты.[2] Частично это связано с тем, что технический прогресс с тех пор увеличил производительность обработки и плотность хранения на порядки, снизив при этом относительные затраты на аналогичные порядки (см. Закон Мура ). Кроме того, распространение компьютеров на всех уровнях бизнеса и семейной жизни привело к появлению индустрии программного обеспечения во много раз больше, чем это было в 1970-х годах. Сейчас программы обычно создаются командами под руководством комитетов в студиях разработки программного обеспечения (также известных как компании по разработке программного обеспечения или фабрики программного обеспечения), где каждый программист работает только над частью целого, над одним или несколькими. подпрограммы.[нужна цитата ]

Наконец, инструменты и подходы к разработке программного обеспечения часто приводят к изменениям во всей программе, чтобы приспособить каждую функцию, что приводит к крупномасштабному включению кода, который влияет на основную работу программного обеспечения и необходим для поддержки функций, которые сами по себе могут быть только редко используемый. В частности, развитие доступных ресурсов привело к появлению инструментов, которые позволяют упростить разработку кода, опять же с меньшим приоритетом конечной эффективности.

Еще одна причина раздувания - это независимо конкурирующие стандарты и продукты, которые могут создать спрос на интеграцию. Сейчас существует больше операционных систем, браузеров, протоколов и форматов хранения, чем было раньше, что приводит к раздуванию программ из-за проблем совместимости. Например, программу, которая раньше могла сохранять только в текстовом формате, теперь требуется сохранять в HTML, XML, XLS, CSV, PDF, DOC и других форматах.

Никлаус Вирт подвел итог ситуации в Закон вирта, в котором говорится, что скорость программного обеспечения уменьшается быстрее, чем скорость оборудования.

В своем эссе 2001 г. Стратегическое письмо IV: Раздуваемое ПО и миф 80/20,[3] Джоэл Спольски утверждает, что, хотя 80% пользователей используют только 20% функций (вариант на Принцип Парето ), каждый из них использует разные функции. Таким образом, «облегченные» версии программного обеспечения для большинства оказываются бесполезными, так как в них отсутствуют одна или две специальные функции, присутствующие в «раздутой» версии. Спольски резюмирует статью цитатой Джейми Завински ссылаясь на Mozilla Application Suite (который позже стал SeaMonkey ):

«Хотя это было бы удобно, если бы это было правдой, Mozilla невелика, потому что она полна бесполезного дерьма. Mozilla велика, потому что ваши потребности велики. Ваши потребности велики, потому что Интернет большой. там, которые, кстати, не делают почти ничего полезного. [...] Но быть сияющей жемчужиной совершенства не было целью, когда мы писали Mozilla ».[4]

Раздутие программного обеспечения также может быть признаком эффект второй системы, описанный Фред Брукс в Мифический человеко-месяц.

Bloatware

Термин «раздутое ПО» может применяться к программному обеспечению, которое стало раздутым из-за неэффективности или увеличения функций, как описано выше.[3] Этот термин также обычно относится к предустановленное программное обеспечение на устройстве, обычно от производителя оборудования, что в большинстве случаев нежелательно для покупателя.

Этот термин также может применяться к накоплению нежелательных и неиспользуемых элементов программного обеспечения, которые остаются после частичного и неполного удаление. Эти элементы могут включать в себя целые программы, библиотеки, связанную информацию о конфигурации или другие данные. В результате таких удалений производительность может снизиться в целом, поскольку нежелательное программное обеспечение или программные компоненты могут занимать память, тратить время обработки, добавлять диск. Ввод / вывод, занимают место в хранилище и вызывают задержки при запуске и завершении работы системы. В худшем случае оставшееся программное обеспечение может помешать правильной работе необходимого программного обеспечения.[5] Вирусное ПО может быть легко удалено, если пользователь имеет root-доступ на своем смартфоне, хотя процесс рутирования имеет свои преимущества и недостатки.[6] например, аннулирование гарантии производителя и отказ от работы определенного программного обеспечения на устройствах с root-доступом.[нужна цитата ].

Примеры

Сравнение Майкрософт Виндоус минимальные требования к оборудованию (для x86 версии)
Версия для WindowsПроцессоробъем памятиЖесткий диск
Windows 95[7]25 МГц4 МБ~ 50 МБ
Windows 98[8]66 МГц16 МБ~ 200 МБ
Windows 2000[9]133 МГц32 МБ650 МБ
Windows XP[10] (2001)233 МГц64 МБ1,5 ГБ
Виндоус виста[11] (2007)800 МГц512 МБ15 ГБ
Windows 7[12] (2009)1 ГГц1 ГБ16 Гб
Windows 8[13] (2012)1 ГГц1 ГБ16 Гб
Windows 10[14] (2015)1 ГГц2 ГБ16 Гб

яблоко с iTunes был обвинен в раздутии из-за попыток превратить его из простого медиаплеера в платформу электронной коммерции и рекламы,[15][16] с бывшим Компьютерный мир Редактор Эд Ботт обвиняет компанию в лицемерии в ее рекламных атаках на Windows за аналогичные действия.[17] В 2019 году Apple объявила о скором закрытии программы, что описал комментатор из Хранитель как «давно назревший», заявив, что программа «стала чрезмерно раздутой, что является поразительной аномалией для компании, которая гордится элегантным и функциональным дизайном».[18]

Майкрософт Виндоус также был раскритикован как раздутый - со ссылкой на Виндоус виста и обсуждая новые, значительно упрощенные основные компоненты Windows 7, инженер Microsoft Эрик Траут прокомментировал: «Это ядро ​​Windows 7. Это набор компонентов, которые мы удалили[который? ]. Многие люди думают о Windows как о действительно большой, раздутой операционной системе, и я должен признать, что это вполне справедливая характеристика. Он большой. В нем много чего. Но по своей сути ядро ​​и компоненты, составляющие ядро ​​операционной системы, на самом деле довольно оптимизированы ».[19][20] Эд Ботт также выразил скептицизм, отметив, что почти все операционные системы, которые когда-либо продавала Microsoft, критиковались как `` раздутые '' при первом выпуске, даже те, которые сейчас рассматриваются как полная противоположность, такие как MS-DOS.[21] Цитируя Пола Турротта, Ботт согласился, что раздувание происходит из-за многочисленных функций корпоративного уровня, включенных в операционную систему, которые в значительной степени не имеют отношения к среднему домашнему пользователю.

Приложения для записи CD и DVD, такие как Nero Burning ROM стали критиковать за раздутость.[22] Излишние функции, не предназначенные специально для конечного пользователя, иногда устанавливаются по умолчанию через экспресс-настройки.

В ряде технологических блогов также освещается проблема увеличения числа вредоносных программ на мобильных телефонах. Однако они относятся к другой проблеме, в частности, к проблеме загрузки сотовыми операторами телефонов с программным обеспечением, которое во многих случаях не может быть легко удалено, если вообще может быть удалено. Это чаще всего цитируется в отношении Android устройств, хотя это явление существует на телефонах, работающих под управлением многих других операционных систем.[23][24]

Некоторые из самых популярных текущих приложения для обмена сообщениями, которые ранее были сосредоточены только на мгновенное сообщение, был раскритикован за раздувание из-за расползания функций.[25][26][27][28] WeChat добавлены дополнительные функции, такие как игры, подписка, WeChat Pay электронный кошелек,[25] агрегатор новостей, электронная коммерция центр, электронное правительство[26] функция, система бронирования кино, поиск ресторанов и райдшеринговая компания,[28] что увеличило размер приложения с 2 МБ в 2011 году до 58 МБ в 2018 году.[нужна цитата ] Facebook Messenger, который был отделен от Facebook app также критикуют за добавление дополнительных функций, таких как игры, боты и функции, скопированные из Snapchat такие как Messenger Day (Stories), фильтры для лица, камера с возможностью редактировать фотографии, рисовать каракули и добавлять смайлики и наклейки.[29][30] В январе 2018 года глава Facebook Messaging, Дэвид А. Маркус, признал, что само приложение сильно раздуто, и пообещал переработать все приложение, чтобы удалить ненужные функции и оптимизировать приложение.[27] В октябре 2018 года было анонсировано обновленное и оптимизированное приложение Facebook Messenger, в котором его функции сводятся только к обмену сообщениями, историям, вкладкам поиска и камере.[31]

Альтернативы

Некоторые приложения, например GIMP, и программное обеспечение с дополнительными функциями от плагины, используйте расширения или дополнения, которые загружаются отдельно от основного приложения. Они могут быть созданы либо разработчиком программного обеспечения, либо сторонними разработчиками. Плагины, расширения и надстройки добавляют дополнительные функции, которые в противном случае могли бы быть упакованы в основную программу.

Разрешение этих подключаемых модулей, расширений и / или надстроек сокращает пространство, используемое на любом одном компьютере, потому что даже несмотря на то, что приложение, "интерфейс подключаемого модуля" и все подключаемые модули вместе взятые, больше, чем те же функции скомпилированный в одно монолитное приложение, он позволяет каждому пользователю устанавливать только определенные дополнительные функции, которые им требуются, вместо того, чтобы заставлять каждого пользователя устанавливать гораздо более крупное монолитное приложение, которое включает в себя все доступные функции. В результате получается "урезанное" или "готовое" приложение, которое поставляется в компактном пакете, но готово к добавлению пользователями любых недостающих функций.

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

Иногда программное обеспечение раздувается из-за "ползучий фатуризм "[32] (Закон Завинского оболочек программного обеспечения ). Один из способов уменьшить такое вздутие живота описан Философия Unix о «написании программ, которые делают одно и делают это хорошо», и о разбиении того, что могло бы быть единым сложным программным обеспечением, на множество более простых компонентов, которые можно объединить в цепочку, используя трубы, сценарии оболочки, или другие формы взаимодействие между приложениями.

Смотрите также

Рекомендации

  1. ^ whatisbloatware.com
  2. ^ Раймонд, Эрик С. (17 сентября 2003 г.). Искусство программирования под Unix (1-е изд.). Эддисон-Уэсли Профессионал. ISBN  0131429019. Получено 16 июн 2007. (Смотрите также: Искусство программирования под Unix )
  3. ^ а б Спольски, Джоэл (2001). «Стратегическое письмо IV: Раздутое ПО и миф 80/20 - Джоэл о программном обеспечении». Получено 2 октября 2006.
  4. ^ Завински, Джейми (1998). "пасхальные яйца". Получено 9 января 2008.
  5. ^ Санто-Доминго, Джоэл (13 февраля 2012 г.). «Как удалить вредоносное ПО». Журнал ПК.
  6. ^ Мукеш, Бхавеш (4 марта 2016 г.). «Преимущества и недостатки рутирования смартфонов Android». Портал Android.
  7. ^ «Microsoft KB: требования для установки Windows 95». Получено 22 июля 2007.
  8. ^ «Microsoft KB: минимальные требования к оборудованию для установки Windows 98». Получено 22 июля 2007.
  9. ^ «Приступая к работе с Windows 2000 Server: Глава 3 - Планирование установки Windows 2000 Server». Получено 29 августа 2007.
  10. ^ «Microsoft KB: Системные требования для операционных систем Windows XP». Получено 22 июля 2007.
  11. ^ «Microsoft KB: Системные требования для Windows Vista». Получено 22 июля 2007.
  12. ^ «Microsoft: Системные требования для Windows 7». Получено 9 октября 2009.
  13. ^ «Образы ISO с предварительным выпуском Windows 8». Получено 12 августа 2012. Windows 8 Release Preview отлично работает на том же оборудовании, что и Windows 7
  14. ^ «7 вещей, которые нужно помнить, если вы пробуете предварительную версию Windows 10». www.computerworld.com. Получено 29 марта 2015.
  15. ^ Стреза, Стив (7 марта 2007 г.). "Что случилось с iTunes?".
  16. ^ Бьюкенен, Мэтт (12 октября 2009 г.). «iTunes 9 станет раздутым социальным монстром». Gizmodo. Получено 14 января 2010.
  17. ^ Ботт, Эд (3 октября 2008 г.). «Уменьшение размера раздутой программы установки iTunes». ZDNet. Получено 14 января 2010.
  18. ^ Нотон, Джон (9 марта 2019 г.). «Прощай, iTunes, и спасибо, что спасли музыкальную индустрию от самой себя». Хранитель. Получено 10 марта 2019.
  19. ^ Макдугалл, Пол (28 января 2008 г.). «Программные средства превращают Windows Vista в чистую монету». informationweek.com.
  20. ^ Ботт, Эд (31 марта 2008 г.). «Действительно ли MinWin - это новое ядро ​​Windows 7?».
  21. ^ Ботт, Эд (13 марта 2006 г.). «Раздутие Windows? Так было всегда».
  22. ^ Кассия, Фернандо (27 февраля 2007 г.). "'Nero Lite и Nero Micro: иногда лучше меньше ". Спрашивающий. Архивировано из оригинал 2 марта 2007 г.. Получено 7 марта 2007.
  23. ^ Гартенберг, Майкл (12 сентября 2010 г.). «Разведка: разрушат ли носители видение Android?». Engadget. Получено 21 сентября 2010.
  24. ^ Милиан, Марк (15 июня 2010 г.). "'"Нежелательное ПО" входит в стандартную комплектацию смартфонов Verizon и T-Mobile ". Лос-Анджелес Таймс. Получено 21 сентября 2010.
  25. ^ а б Бишофф, Пол (12 февраля 2014 г.). «Чему WeChat нужно научиться у Facebook». Технологии в Азии. Получено 16 февраля 2020.
  26. ^ а б Чен, Лори (22 июля 2018 г.). «Почему технически подкованные миллениалы Китая уходят из WeChat». Южно-Китайская утренняя почта. Гонконг. Получено 16 февраля 2020.
  27. ^ а б Константин, Джош (16 января 2018 г.). «Раздутый мессенджер Facebook обещает упростить в 2018 году». TechCrunch. Получено 16 февраля 2020.
  28. ^ а б «Facebook открывает Messenger для сторонних приложений». BBC. 25 марта 2015 г.. Получено 16 февраля 2020.
  29. ^ Браун, Аарон (7 февраля 2017 г.). «Facebook почти разрушил WhatsApp, а теперь разрушил Messenger». Daily Express. Получено 16 февраля 2020.
  30. ^ Уэлч, Крис (18 мая 2017 г.). «Как заменить Facebook Messenger на более простую и легкую версию». Грани. Получено 16 февраля 2020.
  31. ^ Прайс, Роб (23 октября 2018). «Facebook проводит капитальный ремонт Messenger, чтобы попытаться сократить раздувание и добавить темный режим». Business Insider. Получено 16 февраля 2020.
  32. ^ Адамс, Эрнест (1 мая 2007 г.). «Записная книжка дизайнера:« ползучая черта порождает раздутый сложный беспорядок ».