Teknologi Informasi    
   
Daftar Isi
(Sebelumnya) Software asset managementSoftware bug (Berikutnya)

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 applied consistently; 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.

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. Achieving this efficiency was one of the highest values of computer programmers, and the best programs were often called "elegant"—seen as a form of high art.

This situation has now reversed. Resources are perceived as cheap, and rapidity of coding and headline features for marketing are seen as priorities.[when?][1] In part, this is because technological advances have since increased 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. Programs are now usually churned out by teams, directed by committees in software factories where each programmer works on only a part of the whole, on one or more subroutine. Thus today; the highest value is often the adherence to a predetermined structure that makes it compliant, with subroutines as interchangeable as piston rods. Inelegant, even sloppy code is to some degree hidden from the end users by the increasing brute force and speed of modern computers. (There is little payoff to, say, increasing the speed of a sloppy five-millisecond subroutine, even by a factor of 100.)

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 have led to tools which allow easier development of code, again 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 the Mozilla Application Suite (which later became 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

Perbandingan -- Microsoft Windows minimum hardware requirements (for x86 versions).
Windows versionProcessorMemoryHard disk
Windows 95[4]25 MHz4 MB~50 MB
Windows 98[5]66 MHz16 MB~200 MB
Windows 2000[6]133 MHz32 MB650 MB
Windows XP[7] (2001)233 MHz64 MB1.5 GB
Windows Vista[8] (2007)800 MHz512 MB15 GB
Windows 7[9] (2009)1 GHz1 GB16 GB
Windows 8[10] (2012)1 GHz1 GB16 GB

Apple's iTunes has been accused of being bloated as part of its efforts to turn it from a program that plays media to an e-commerce and advertising platform,[11][12] with former PC World editor Ed Bott, author of 25 books on Microsoft Windows and Office,[13] accusing the company of hypocrisy in its advertising attacks on Windows for similar practices.[14]

Microsoft Windows has also been criticized as being bloated - 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." [15][16] 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.[17] The Windows Application Programming Interface can also be considered bloated, as it tries to create backwards compatibility, resulting in extremely unelegant code to today's standards. The .Net languages, such as C#, have much more modern interfaces though.

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

A number of technology blogs have also covered the issue of increased bloatware on cell phones. However, they refer to a different issue, specifically that of wireless carriers loading phones with software that, in many cases, cannot be easily deleted, if at all. This has been most frequently cited with respect to Android devices, although this phenomenon exists on phones running many other operating systems.[19][20]

Alternatives to software bloat

Some applications, such as Google Chrome 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 include features at compile time selectively. This is easier to implement than a plugin system, but has the 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"[21] (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

  1. ^ Eric S. Raymond The Art of Unix Programming, Addison-Wesley Professional, 1st edition (September 17, 2003) On-line HTML version. Accessed 16 June 2007
  2. ^ Strategy Letter IV: Bloatware and the 80/20 Myth - Joel on Software
  3. ^ "easter eggs."
  4. ^ "Microsoft KB: Windows 95 Installation Requirements". http://support.microsoft.com/kb/13834 9/.
  5. ^ "Microsoft KB: Minimum Hardware Requirements for a Windows 98 Installation". http://support.microsoft.com/kb/18275 1/.
  6. ^ "Windows 2000 Server Getting Started: Chapter 3 - Planning Your Windows 2000 Server Installation". http://www.microsoft.com/technet/prod technol/windows2000serv/proddocs/srvg s/sgsch03.mspx#EMD.
  7. ^ "Microsoft KB: System requirements for Windows XP operating systems". http://support.microsoft.com/kb/31486 5/en-us.
  8. ^ "Microsoft KB: System requirements for Windows Vista". http://support.microsoft.com/kb/91918 3/.
  9. ^ "Microsoft: System requirements for Windows 7". http://windows.microsoft.com/en-us/wi ndows7/products/system-requirements.
  10. ^ "Windows 8 Release Preview ISO images". http://windows.microsoft.com/en-US/wi ndows-8/download. ""Windows 8 Release Preview works great on the same hardware that powers Windows 7""
  11. ^ Steve Streza. "What happened to iTunes?". http://stevestreza.com/2007/03/07/wha t-happened-to-itunes/.
  12. ^ Buchanan, Matt (2009-10-12). "iTunes 9 Will Be a Bloated Social Monster". Gizmodo. Retrieved 2010-01-14. 
  13. ^ http://www.zdnet.com/blog/bott
  14. ^ Bott, Ed (2008-10-03). "Slimming down the bloated iTunes installer". ZDNet. Retrieved 2010-01-14. 
  15. ^ informationweek.com
  16. ^ http://www.zdnet.com/blog/bott/is-min win-really-the-new-windows-7-kernel/4 18
  17. ^ Ed Bott. "Windows bloat? It’s always been that way". http://blogs.zdnet.com/Bott/?p=18#mor e-18.
  18. ^ Cassia, Fernando (2007-02-27). "'Nero Lite' and 'Nero Micro': smaller sometimes is better". The Inquirer. Retrieved 2007-03-07. 
  19. ^ Gartenberg, Michael (2010-09-12). "Entelligence: Will carriers destroy the Android vision?". Engadget. http://www.engadget.com/2010/09/12/en telligence-will-carriers-destroy-the- android-vision/. Retrieved 2010-09-21.
  20. ^ Milian, Mark (2010-06-15). "'Junkware' comes standard on Verizon, T-Mobile smart phones". Los Angeles Times. http://latimesblogs.latimes.com/techn ology/2010/07/android-junkware.html. Retrieved 2010-09-21.
  21. ^ "The Designer's Notebook": "creeping featurism produces a bloated, complicated mess"

External links

(Sebelumnya) Software asset managementSoftware bug (Berikutnya)