Bloat

From Pulsed Media Wiki

Bloat is something which often is introduced in newer versions of software via addition of new features, or weak optimizations. Bloat does not happen every single time a feature is added however, when a constraint is applied to stay within the realm of the software's scope, or the feature enhances the software for what it was inteded for, is not bloat. For example, when tabbed interface to browsers was introduced: this was not bloat, but an usability enhancement. Bloat often happens when usability is not a consideration to the developers. Arguably the reason Apple is doing so well with iProducts is the heavy emphasis on, and consideration of usability.

Feature bloat, feature creep

Essentially the same thing. Software projects have a nasty tendency to keep on growing to every direction, adding new feature after another, therefore introducing feature bloat. Often the symptom is sheer poor performance, weaker usability or annoyance. Most commonly all three.

Good examples of bloatware are Skype, MS Live Messenger 2011. Both in their latest iterations added innecessities such as Facebook and twitter integration, causing weaker usability, very high annoyance factor and poorer performance. Microsoft's messenger clients are very well known for their bloat for years, often causing even very high end computers to slow to a crawl during bootup, and occasionally during regular use. For example messenger is known to cause operating system bootup time increase in tens of seconds minimum, and in some cases even minutes. This is arguably a cause from adbloat

Ad bloat

The software or website works astonishingly slow due to advertising. Notable example is MSN Messenger, and advertisement heavy websites with |interstitials, popups etc.

Weak optimization

The lack of optimization, or sheer weak design of software causing it to load, or do it's work for inordinately long times, for example a lack of caching mechanisms can cause this. Most common reason is obsession on new features thus optimizations are bypassed during development. In severe cases the underlying reason is often a algorithmic design flaw in the underlying code.