Software Bloat

Software bloat is a process whereby successive versions of a computer program become perceptibly slower, use more memory or processing power, or have higher hardware requirements than the previous version whilst making only dubious user perceptible improvements. The term is not consistently applied; it is often used as a pejorative by end users 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 people with different requirements do use them. The term bloatware is also applied to preinstalled software on a device, usually by the hardware manufacturer, that is unwanted.

Actual (measurable) bloat can occur due to de-emphasising software efficiency in favour of other concerns like developer productivity, such as through the introduction of new layers of abstraction like a virtual machine or other scripting engine. The improved developer productivity 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.

Read more about Software Bloat:  Causes, Examples, Alternatives To Software Bloat