All Topics  
Software bloat

 

   Email Print
   Bookmark   Link






 

Software bloat



 
 
Software bloat, also known as bloatware or elephantware, is a term used in both a neutral and disparaging sense, to describe the tendency of newer computer program
Computer program

Computer programs are Instruction for a computer. A computer requires programs to function. Moreover, a computer program does not run unless its instructions are executed by a Central processing unit; however, a program may communicate an Algorithm#Formalization of algorithms to people without running....
s to be larger, or to use larger amounts of system resources (mass storage
Mass storage

In computing, mass storage refers to the storage of large amounts of information in a persisting and machine-readable fashion. Data storage device for mass storage include hard disks, floppy disks, flash memory, optical discs, magneto-optical discs, magnetic tape, drum memory, punched tape and holographic memory ....
 space, processing power or memory) than necessary for the same or similar benefits from older versions to its users. Additionally, the term bloatware is used in common language for pre-installed, huge software bundles, mostly consisting of demos and trial ware.

lass="link1" onMouseover='showByLink("m1382358",this)' onMouseout='hide("m1382358")'href="http://www.absoluteastronomy.com/topics/Software_developer">Software developer
Software developer

A software developer is a person or organization concerned with facets of the software development process wider than design and coding, a somewhat broader scope of computer programming or a specialty of project manager including some aspects of Software product management....
s involved in the industry during the 1970s had severe limitations on disk space and memory.






Discussion
Ask a question about 'Software bloat'
Start a new discussion about 'Software bloat'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Software bloat, also known as bloatware or elephantware, is a term used in both a neutral and disparaging sense, to describe the tendency of newer computer program
Computer program

Computer programs are Instruction for a computer. A computer requires programs to function. Moreover, a computer program does not run unless its instructions are executed by a Central processing unit; however, a program may communicate an Algorithm#Formalization of algorithms to people without running....
s to be larger, or to use larger amounts of system resources (mass storage
Mass storage

In computing, mass storage refers to the storage of large amounts of information in a persisting and machine-readable fashion. Data storage device for mass storage include hard disks, floppy disks, flash memory, optical discs, magneto-optical discs, magnetic tape, drum memory, punched tape and holographic memory ....
 space, processing power or memory) than necessary for the same or similar benefits from older versions to its users. Additionally, the term bloatware is used in common language for pre-installed, huge software bundles, mostly consisting of demos and trial ware.

Causes

Software developer
Software developer

A software developer is a person or organization concerned with facets of the software development process wider than design and coding, a somewhat broader scope of computer programming or a specialty of project manager including some aspects of Software product management....
s involved in the industry during the 1970s had severe limitations on disk space and memory. Every byte
Byte

A byte is a basic unit of measurement of Computer storage in computer science. In many computer architectures it is a Byte addressing memory address space....
 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. 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
Moore's Law

Moore's law describes a long-term trend in the history of computing hardware. Since the invention of the integrated circuit in 1958, the number of transistors that can be placed inexpensively on an integrated circuit has increased exponential growth, doubling approximately every two years....
). 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.

Niklaus Wirth
Niklaus Wirth

Niklaus Emil Wirth is a Switzerland computer science, best known for designing several programming languages, including Pascal , and for pioneering several classic topics in software engineering....
 has summed up the situation in Wirth's Law
Wirth's law

Wirth's law in computing is the adage made popular by Niklaus Wirth in 1995: Wirth attributed the saying to Martin Reiser, who, in the preface to his book...
, 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, Joel Spolsky
Joel Spolsky

Avram Joel Spolsky is a software engineering and writer. He is the author of Joel on Software, a blog on software development targeted mainly at writers of Windows software....
 argues that while 80% of the users only use 20% of the features (a variant on the Pareto principle
Pareto principle

The Pareto principle states that, for many events, roughly 80% of the effects come from 20% of the causes.Business management thinker Dr. Joseph Moses Juran suggested the principle and named it after Italian economist Vilfredo Pareto, who observed that 80% of the land in Italy was owned by 20% of the population....
), each one uses different features. Thus, "lite" software editions turn out to be useless for most, as they miss that one or two special features that are present in the "bloated" version. Spolsky sums the article with a quote by Jamie Zawinski
Jamie Zawinski

Jamie W. Zawinski , commonly known as jwz, is an United States computer programmer responsible for significant contributions to the free software projects Mozilla and XEmacs, and early versions of the proprietary Netscape Navigator web browser....
 referring to Netscape
Netscape

Netscape Communications is a United States computer services company, best known for its web browser. The browser was once dominant in terms of Usage share of web browsers, but lost most of that share to Internet Explorer during the browser wars....
:

"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."


Examples

Comparison of Microsoft Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
 minimum hardware requirements
Windows version Processor Memory Hard disk
Windows 95
Windows 95

Windows 95 is a consumer-oriented graphical user interface-based operating system. It was released on August 24, 1995 by Microsoft, and was a significant progression from the company's previous Microsoft Windows products....
25 MHz 4 MB ~50 MB
Windows 98
Windows 98

Windows 98 is a graphical operating system released on 25 June 1998 by Microsoft and the successor to Windows 95. Like its predecessor, it is a hybrid 16-bit application/32-bit application monolithic product based on MS-DOS....
66 MHz 16 MB 140–255 MB
Windows Me
Windows Me

Windows Millennium Edition, or Windows Me , is a hybrid 16-bit/32-bit graphical operating system released on 14 September 2000 by Microsoft....
150 MHz 32 MB 320 MB
Windows 2000 Server 133 MHz 64 MB 1 GB
Windows XP
Windows XP

Windows XP is a line of operating systems produced by Microsoft for use on personal computers, including home and business desktops, laptop, and media centers....
300 MHz 128 MB 1.5 GB
Windows Vista
Windows Vista

Windows Vista is one member in a family of operating systems developed by Microsoft for use on personal computers, including home and business Desktop computer, laptops, Tablet PCs, and media center PCs....
800 MHz 512 MB 15 GB
Microsoft Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
 has been accused of being bloated. For example, with reference to the most recent version, Windows Vista
Windows Vista

Windows Vista is one member in a family of operating systems developed by Microsoft for use on personal computers, including home and business Desktop computer, laptops, Tablet PCs, and media center PCs....
, 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." He went on to say that, "at its core, the kernel, and the components that make up the very core of the operating system, is actually pretty streamlined.". 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
MS-DOS

MS-DOS is an operating system commercialized by Microsoft. It was the most commonly used member of the DOS family of operating systems and was the main operating system for personal computers during the 1980s....
.

CD- and DVD-burning applications such as Nero Burning ROM
Nero Burning ROM

Nero is a popular software suite for Microsoft Windows and Linux by Nero AG, formerly Ahead Software. The principal component of the software bundle is Nero burning rom....
 have become criticized for being bloated. Superfluous features not specifically tailored to the end user are sometimes installed by default through express setups.

Alternatives to software bloat

Some applications, such as Mozilla Firefox
Mozilla Firefox

Mozilla Firefox is a web browser descended from the Mozilla Application Suite and managed by Mozilla Corporation. Official versions are distributed under the terms of the proprietary EULA....
 and Winamp
Winamp

Winamp is a proprietary software media player written by Nullsoft, now a subsidiary of Time Warner. It is skin nable, multi-format freeware/shareware....
, package additional functionality in plug-ins
Plugin

In computing, a plug-in consists of a computer program that interacts with a host application software to provide a certain, usually very specific, function "on demand"....
, 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"

(Zawinski's Law of Software Envelopment), also called bullet-point engineering
Bullet-point engineering

Bullet-point engineering is a software design anti-pattern where developers use the features of competing software packages as checklists of features to implement in their own product....
. One way to reduce that kind of bloat is described by the Unix philosophy
Unix philosophy

The Unix philosophy is a set of cultural norms and philosophical approaches to developing computer software based on the experience of leading developers of the Unix operating system....
: "Write programs that do one thing and do it well".

See also

  • Code bloat
    Code bloat

    Code bloat is the production of code that is perceived as unnecessarily long, slow, or otherwise wasteful of resources.Code bloat can also be caused by inadequacies in the language in which the code is written, or inadequacies in the compiler used to compile the language....
  • Computing minimalism
    Computing minimalism

    Computing minimalism refers to the application of minimalist philosophies and principles in computing....
  • Featuritis
  • Zawinski's Law of Software Envelopment
  • Bullet-point engineering
    Bullet-point engineering

    Bullet-point engineering is a software design anti-pattern where developers use the features of competing software packages as checklists of features to implement in their own product....