请输入您要查询的百科知识:

 

词条 Software bloat
释义

  1. Causes

     Software inefficiency  Bloatware 

  2. Examples

  3. Alternatives

  4. See also

  5. References

Software bloat is a process whereby successive versions of a computer program become perceptibly slower, use more memory, disk space or processing power, or have higher hardware requirements than the previous version—whilst making only dubious user-perceptible improvements or suffering from feature creep. The term is not applied consistently; it is often used as a pejorative by end users (bloatware) to describe undesired user interface changes even if those changes had little or no effect on the hardware requirements. In long-lived software, perceived bloat can occur from the software servicing a large, diverse marketplace with many differing requirements. Most end users will feel they only need some limited subset of the available functions, and will regard the others as unnecessary bloat, even if end users with different requirements require those functions.

Actual (measurable) bloat can occur due to de-emphasising software efficiency in favour of other concerns like developer productivity, or possibly through the introduction of new layers of abstraction like a virtual machine or other scripting engine for the purposes of convenience when developer constraints are reduced. The perception of improved developer productivity, in the case of practising development within virtual machine environments, comes from the developers no longer taking resource constraints and usage into consideration during design and development; this allows the product to be completed faster but it results in increases to the end user's hardware requirements to compensate.

The term "bloatware" is also used to describe unwanted preinstalled software or bundled programs.[1]

Causes

Software inefficiency

Software developers involved in the industry during the 1970s had severe limitations on disk space and memory. Every byte and clock cycle counted, and much work went into fitting the programs into available resources. Achieving this efficiency was one of the highest values of computer programmers, and the best programs were often called "elegant", a term used by mathematicians to describe a proof which is tidy, parsimonious and powerful.

By the 21st century, the situation had reversed. Resources were perceived as cheap, and rapidity of coding and headline features for marketing seen as priorities.[2] In part, this is because technological advances have since increased processing capacity and storage density by orders of magnitude, while reducing the relative costs by similar orders of magnitude (see Moore's law). Additionally, the spread of computers through all levels of business and home life has produced a software industry many times larger than it was in the 1970s. Programs are now usually churned out by teams, directed by committees in software factories where each programmer works on only a part of the whole, on one or more subroutines.{{Citation needed|date=May 2015}}

Finally, software development tools and approaches often result in changes throughout a program to accommodate each feature, leading to a large-scale inclusion of code which affects the main operation of the software, and is required in order to support functions that themselves may be only rarely used. In particular, the advances in resources available have led to tools which allow easier development of code, again with less priority given to end efficiency.

Another cause of bloat is independently competing standards and products, which can create a demand for integration. There are now more operating systems, browsers, protocols, and storage formats than there were before, causing bloat in programs due to interoperability issues. For example, a program that once could only save in text format is now demanded to save in HTML, XML, XLS, CSV, PDF, DOC, and other formats.

Niklaus Wirth has summed up the situation in Wirth's law, which states that software speed is decreasing more quickly than hardware speed is increasing.

In his 2001 essay Strategy Letter IV: Bloatware and the 80/20 Myth,[3] Joel Spolsky argues that while 80% of the users only use 20% of the features (a variant on the Pareto principle), each one uses different features. Thus, "lite" software editions turn out to be useless for most, as they miss the one or two special features that are present in the "bloated" version. Spolsky sums the article with a quote by Jamie Zawinski referring to the Mozilla Application Suite (which later became SeaMonkey):

"Convenient though it would be if it were true, Mozilla is not big because it's full of useless crap. Mozilla is big because your needs are big. Your needs are big because the Internet is big. There are lots of small, lean web browsers out there that, incidentally, do almost nothing useful. [...] But being a shining jewel of perfection was not a goal when we wrote Mozilla."[4]

Software bloat may also be a symptom of the second-system effect, described by Fred Brooks in The Mythical Man-Month.

Bloatware

The term "bloatware" may be applied to software that has become bloated through inefficiency or accretion of features as outlined above.[3] The term also commonly refers to software preinstalled on a device, usually by the hardware manufacturer, that is mostly unwanted by the purchaser - for example, the preinstalled software which took up 45% of the Samsung Galaxy S4's storage.[5]

The term may also be applied to the accumulation of unwanted and unused software elements that remain after partial and incomplete uninstallation. These elements may include whole programs, libraries, associated configuration information, or other data. Performance may deteriorate overall as a result of such leavings, as the unwanted software or software components can occupy memory, waste processing time, add disk I/O, consume storage and cause delays at system startup and shutdown. In the worst cases, the leftover software may interfere with the correct operation of wanted software.[6] Bloatware can be easily removed if the user has root access on his or her smartphone, though the rooting process has its own advantages & disadvantages[7], such as voiding the manufacturer's warranty.

Examples

Comparison of Microsoft Windows minimum hardware requirements (for x86 versions).
Windows version Processor Memory Hard disk
Windows 95[8] 25 MHz 4 MB ~50 MB
Windows 98[9] 66 MHz 16 MB ~200 MB
Windows 2000[10] 133 MHz 32 MB 650 MB
Windows XP[11] (2001) 233 MHz 64 MB 1.5 GB
Windows Vista[12] (2007) 800 MHz 512 MB 15 GB
Windows 7[13] (2009) 1 GHz 1 GB 16 GB
Windows 8[14] (2012) 1 GHz 1 GB 16 GB
Windows 10[15] (2015) 1 GHz 1 GB 16 GB
Apple's iTunes has been accused of being bloated by efforts to turn it from a simple media player to an e-commerce and advertising platform,[16][17] with former PC World editor Ed Bott accusing the company of hypocrisy in its advertising attacks on Windows for similar practices.[18]

Microsoft Windows has also been criticized as being bloated - with reference to Windows Vista and discussing the new, greatly slimmed down Windows 7 core components, Microsoft engineer Eric Traut commented that "This is the core of Windows 7. This is a collection of components that we've taken out. A lot of people think of Windows as this really large, bloated operating system, and that may be a fair characterization, I have to admit. It is large. It contains a lot of stuff in it. But at its core, the kernel and the components that make up the very core of the operating system actually is pretty streamlined." [19][20] Ed Bott also expressed skepticism, noting that nearly every operating system that Microsoft has ever sold has been criticized as 'bloated' on first release; even those now regarded as the exact opposite, such as MS-DOS.[21] Quoting Paul Thurrott, Bott agreed that the bloat stems from numerous enterprise-level features included in the operating system that were largely irrelevant to the average home user.

CD- and DVD-burning applications such as Nero Burning ROM have become criticized for being bloated.[22] Superfluous features not specifically tailored to the end user are sometimes installed by default through express setups.

A number of technology blogs have also covered the issue of increased bloatware on cell phones. However, they refer to a different issue, specifically that of wireless carriers loading phones with software that, in many cases, cannot be easily, if at all, deleted. This has been most frequently cited with respect to Android devices, although this phenomenon exists on phones running many other operating systems.[25]

Alternatives

Some applications, such as GIMP, and software with additional functionality from plug-ins, use extensions or add-ons which are downloaded separately from the main application. These can be created by either the software developer or by third party developers. Plug-ins, extensions, and add-ons add extra functionality which might have otherwise been packaged in the main program.

Allowing these plug-ins, extensions, and/or add-ons reduces the space used on any one machine, because even though the application, the "plug-in interface", and all the plug-ins combined are larger than the same functionality compiled into one monolithic application, it allows each user to install only the particular add-on features he or she requires, rather than forcing every user to install a much larger monolithic application that includes all of the available features. This results in a "stripped-down" or "out-of-the-box" application that is delivered in a compact package yet is ready for users to add any missing functionality.

Open source software may use a similar technique using preprocessor directives to include features at compile time selectively. This is easier to implement and more secure than a plugin system, but has the disadvantage that a user who wants a specific set of features must compile the program from source.

Sometimes software becomes bloated because of "creeping featurism"[23] (Zawinski's law of software envelopment). One way to reduce that kind of bloat is described by the Unix philosophy of "writing programs that do one thing and do it well," and breaking what would be a single, complicated piece of software into numerous simpler components which can be chained together using pipes, shell scripts, or other forms of interapplication communication.

See also

  • Code bloat
  • Feature creep
  • Minimalism (computing)
  • Software rot
  • Software suite
  • Wirth's law
  • Zawinski's law of software envelopment

References

1. ^whatisbloatware.com
2. ^{{cite book |first=Eric S. |last=Raymond |title=The Art of Unix Programming |publisher=Addison-Wesley Professional |edition=1 |date=17 September 2003 |url=http://www.catb.org/~esr/writings/taoup/html/why_not_c.html |isbn=0131429019| accessdate=16 June 2007}} (See also: The Art of Unix Programming)
3. ^{{cite web |url=http://www.joelonsoftware.com/articles/fog0000000020.html |title=Strategy Letter IV: Bloatware and the 80/20 Myth - Joel on Software |first=Joel |last=Spolsky |authorlink=Joel Spolsky |year=2001 |accessdate=2 October 2006}}
4. ^{{cite web |url=http://www.jwz.org/doc/easter-eggs.html |title=easter eggs. |year=1998 |first=Jamie |last=Zawinski |accessdate=9 January 2008}}
5. ^{{cite news |url=http://www.dailymail.co.uk/sciencetech/article-2319035/Samsung-Galaxy-S4-owners-just-HALF-storage-paid-bloatware.html | title=Samsung Galaxy S4 owners get just HALF the storage they paid for because of apps added before you even buy the phone |first=Victoria |last=Woollaston |date=3 May 2013|newspaper=Daily Mail}}
6. ^{{cite news |url=https://www.pcmag.com/article2/0,2817,2400136,00.asp|title=How to Remove Bloatware |magazine=PC Magazine | first=Joel |last=Santo Domingo |date=13 February 2012}}
7. ^{{cite news |url=http://www.theandroidportal.com/advantages-disadvantages-rooting-android-smartphones/|title=Advantages & Disadvantages of Rooting Android Smartphones |magazine=The Android Portal | first=Bhavesh |last=Mukesh |date=4 March 2016}}
8. ^{{cite web|url=http://support.microsoft.com/kb/138349/| title=Microsoft KB: Windows 95 Installation Requirements |accessdate=22 July 2007 }}
9. ^{{cite web|url=http://support.microsoft.com/kb/182751/| title=Microsoft KB: Minimum Hardware Requirements for a Windows 98 Installation |accessdate=22 July 2007}}
10. ^{{cite web|url=http://www.microsoft.com/technet/prodtechnol/windows2000serv/proddocs/srvgs/sgsch03.mspx#EMD| title=Windows 2000 Server Getting Started: Chapter 3 - Planning Your Windows 2000 Server Installation |accessdate=29 August 2007}}
11. ^{{cite web|url=http://support.microsoft.com/kb/314865/en-us| title=Microsoft KB: System requirements for Windows XP operating systems |accessdate=22 July 2007}}
12. ^{{cite web|url=http://support.microsoft.com/kb/919183/| title=Microsoft KB: System requirements for Windows Vista |accessdate=22 July 2007}}
13. ^{{cite web|url=http://windows.microsoft.com/en-us/windows7/products/system-requirements| title=Microsoft: System requirements for Windows 7 |accessdate=9 October 2009}}
14. ^{{cite web|url=http://windows.microsoft.com/en-US/windows-8/download| title=Windows 8 Release Preview ISO images| quote="Windows 8 Release Preview works great on the same hardware that powers Windows 7"|accessdate=12 August 2012}}
15. ^{{cite web|url=http://www.computerworld.com/article/2690817/7-things-to-remember-if-youre-trying-out-the-windows-10-preview.html| title=7 things to remember if you're trying out the Windows 10 preview| publisher=www.computerworld.com|accessdate=March 29, 2015}}
16. ^{{cite web |url=http://stevestreza.com/2007/03/07/what-happened-to-itunes/ |title=What happened to iTunes? |first=Steve |last=Streza |date=7 March 2007}}
17. ^{{cite news | url = https://gizmodo.com/5335754/itunes-9-will-be-a-bloated-social-monster | title = iTunes 9 Will Be a Bloated Social Monster | first = Matt | last = Buchanan |date=12 October 2009 | publisher = Gizmodo | accessdate = 14 January 2010 }}
18. ^{{cite news | url = https://www.zdnet.com/article/slimming-down-the-bloated-itunes-installer/ | title = Slimming down the bloated iTunes installer | first = Ed | last = Bott |date=3 October 2008 | publisher = ZDNet | accessdate = 14 January 2010 }}
19. ^{{cite news |url=http://www.informationweek.com/news/showArticle.jhtml?articleID=205920302 |title=Software Tool Strips Windows Vista To Bare Bones|magazine=informationweek.com |first=Paul |last=McDougall |date=28 January 2008}}
20. ^{{cite web |url=http://www.zdnet.com/blog/bott/is-minwin-really-the-new-windows-7-kernel/418 |title=Is MinWin really the new Windows 7 kernel? |first=Ed |last=Bott |date=31 March 2008}}
21. ^{{cite web |url=https://www.zdnet.com/article/windows-bloat-its-always-been-that-way/ |title=Windows bloat? It’s always been that way |first=Ed |last=Bott |date=13 March 2006}}
22. ^{{cite news|url=http://www.theinquirer.net/default.aspx?article=37873 |title='Nero Lite' and 'Nero Micro': smaller sometimes is better |first=Fernando |last=Cassia |date=27 February 2007 |publisher=The Inquirer |accessdate=7 March 2007 |deadurl=yes |archiveurl=https://web.archive.org/web/20070302073052/http://www.theinquirer.net/default.aspx?article=37873 |archivedate=2 March 2007 }}
23. ^{{cite web |url=http://www.gamasutra.com/features/20070501/adams_01.shtml |title=The Designer's Notebook: "creeping featurism produces a bloated, complicated mess |first=Ernest |last=Adams |date=1 May 2007}}
24. ^{{cite web| last = Milian| first = Mark| title = 'Junkware' comes standard on Verizon, T-Mobile smart phones| date = 15 June 2010| publisher = Los Angeles Times| url = http://latimesblogs.latimes.com/technology/2010/07/android-junkware.html| accessdate = 21 September 2010}}
[24]
}}{{Use dmy dates|date=May 2013}}{{DEFAULTSORT:Software Bloat}}

3 : Anti-patterns|Software quality|Bundled products or services

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/14 4:10:02