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 programs to be larger, or to use larger amounts of system resources (mass storage 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.
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). 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 easiest development of code, with less priority given to end efficiency.
"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.
|Windows version||Processor||Memory||Hard disk|
|Windows 95||25 MHz||8 MB||~50 MB|
|Windows 98||66 MHz||24 MB||140–255 MB|
|Windows Me||150 MHz||32 MB||320 MB|
|Windows 2000 Server||133 MHz||64 MB||1 GB|
|Windows XP||300 MHz||128 MB||1.5 GB|
|Windows Vista||800 MHz||512 MB||15 GB|
When AVG 8 came out, it was heavily accused of being bloated, relative to previous installments such as AVG 7.
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 used 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. One way to reduce that kind of bloat is described by the Unix philosophy: "Write programs that do one thing and do it well".