Share on Facebook Share on Twitter Email
Answers.com

Software bloat

 

Refers to the increased complexity of software. Modern operating systems and applications are huge in size and complexity in comparison to the software products running in the first personal computers back in the late 1970s and early 1980s.

Larger with Each Version

Software tends to get larger and more complex with each version. It is due to many reasons, including the ever-increasing capacities of the computer's resources (memory, disk, network, etc.), which allow programmers to become much less concerned with conservation.

It is also due to the increased number of functions placed in an application for marketing purposes (see bloatware), most of which are not needed by 95% of the users. Another major reason is human nature. People love to do their own thing. The more designers and programmers try to reinvent the wheel, the more effort it takes to put it all back together again. Modern operating systems have to deal with the myriad patches and variations made over the years to accommodate the major applications, which tend to hang on for years longer than expected. After numerous versions, a program's logic can become unbelievably convoluted. See Wirth's law and Freedman's law.

A Note from the Author

From 1963 to 1966, I worked for the Pennsylvania Drivers License Division, programming an IBM 1401 computer. One of the most successful transistor-based computers of its time, our 1401 managed the data for all six million drivers in the state.

The machine had 12K of memory. That's 12,000 characters (there were no bytes then). The master file of all the drivers was some 40 odd reels of magnetic tape (I do regret not taking more pictures back then).

The point is that our department never ordered the extra 4K memory module from IBM, bringing the machine up to its whopping maximum of 16K... it cost many thousands of dollars, and we never found it necessary. Our programs, written in IBM assembly language, first on paper and then transcribed to punch cards, were extremely compact. We saved instructions wherever we could.

There was no graphical interface because there was no screen. We had to get printouts of the contents of memory to debug our programs. We didn't even have an operating system. What for? We just wrote our own input and output routines.

But, we processed an entire state!

Know anyone these days processing a state on their desktop computer with 167,000 times as much memory as we had back then? Software bloat. You betcha. Happy computing!

Alan Freedman

The Good Ole Days
Looking rather geeky (on the left) in those days, I was clowning around with our IBM tech rep for this snapshot. IBMers were always on staff at our installation. Having the relatively new title of "computer programmer" in the early 1960s, we were obligated to wear suits. Love that tie!

Download Computer Desktop Encyclopedia to your iPhone/iTouch

$stateInfo.getRequestSettings().getHeaderHtml($cleanedText,true)
Hacker Slang: software bloat
Top

The results of second-system effect or creeping featuritis. Commonly cited examples include ls(1), X, BSD, and OS/2.


Wikipedia: Software bloat
Top

Software bloat is a term used to describe the tendency of newer computer programs to have a larger installation footprint, or have many unnecessary features that are not used by end users, or just generally use more system resources than necessary, while offering little or no benefit to its users. Bloatware, or foistware, is also used to describe software that comes pre-installed on a computer when it's bought, mostly consisting of time-limited trials or feature-lacking basic or "beginner" versions.

Contents

Causes

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.

This situation has now reversed. Resources are perceived as cheap, and rapidity of coding and headline features for marketing are seen as priorities.[1] In part, this is because technological advances have since multiplied 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.

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 has led to tools which allow easier development of code, 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[2], 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 Netscape:

"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."[3]

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

Examples

Comparison of Microsoft Windows minimum hardware requirements
Windows version Processor Memory Hard disk
Windows 95[4] 25 MHz 4 MB ~50 MB
Windows 98[5] 66 MHz 16 MB ~200 MB
Windows 2000[6] 133 MHz 32 MB 650 MB
Windows XP[7] 233 MHz 64 MB 1.5 GB
Windows Vista[8] 800 MHz 512 MB 15 GB
Windows 7[9] 1 GHz 1 GB 16 GB

Microsoft Windows has been accused of being bloated. For example, with reference to Windows Vista, Microsoft engineer Eric Traut commented that "A lot of people think of Windows as this large, bloated operating system, and that's maybe a fair characterization, I have to admit.... [but] at its core, the kernel, and the components that make up the very core of the operating system, is actually pretty streamlined.".[10] Former PC World editor Ed Bott has expressed skepticism, noting that almost every single operating system that Microsoft has ever sold had been criticized as 'bloated' when it first came out; even those now regarded as the exact opposite, such as MS-DOS.[11]

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

Other examples are a result of time, where programmers simply bolt on new features leaving remnants of old code behind. A very good example is the Adobe PDF reader which over time has gained many arguably unnecessary features and with each revision become more cumbersome. Features alone do not define bloatware but when you compare Adobe with its download managers, forced & frequent updates and filesize of 36 MB to the virtually identical foxit reader with a simple download and install of 5.11 MB the bloatware argument becomes clearer. Foxit is not the smallest PDF reader either, which has also come under fire for getting too big even when it is under 14% of the size of Adobe PDF Reader.

Alternatives to software bloat

Some applications, such as Mozilla Firefox and Winamp, package additional functionality in plug-ins, extensions or add-ons which are downloaded separately from the main application. These can be created by the software developer and often by third parties. Plug-ins enable extra functionality which might have otherwise been packaged in the main program.

Allowing extensions reduces the space used on any one machine, because even though the application plus the "plug-in interface" plus all the plug-ins is larger than the same functionality compiled into one monolithic application, it allows each user to install only the particular add-on features required by that user, rather than force every user to install a much larger monolithic application that includes 100% of the available features.

Open source software may use a similar technique using preprocessor directives to selectively include features at compile time. This is easier to implement than a plugin system, but has the obvious 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"[13] (Zawinski's Law of Software Envelopment), also called bullet-point engineering. One way to reduce that kind of bloat is described by the Unix philosophy: "Write programs that do one thing and do it well".

See also

References


 
 
Learn More
bloatware (technology)
Gates's Law (computer jargon)
Wirth's law (technology)

How can you treat bloating? Read answer...
Why is your fish bloated? Read answer...
Why does the stomach bloat? Read answer...

Help us answer these
What does it mean when your bloated?
What is the meaning of bloated?
What is cocaine bloat?

Post a question - any question - to the WikiAnswers community:

 

Copyrights:

Computer Desktop Encyclopedia. THIS COPYRIGHTED DEFINITION IS FOR PERSONAL USE ONLY.
All other reproduction is strictly prohibited without permission from the publisher.
© 1981-2009 Computer Language Company Inc.  All rights reserved.  Read more
Hacker Slang. The Jargon File. Copyright © 2007.  Read more
Wikipedia. This article is licensed under the Creative Commons Attribution/Share-Alike License. It uses material from the Wikipedia article "Software bloat" Read more