Minimalism in computing can represent an anti-consumerist viewpoint, arising from a rejection of bullet-point engineering, the creeping featurism and software bloat of modern software, which necessitates ever more powerful hardware to run it at acceptable speeds. With earliest generations of computers, programmers had to work with the confines of expensive and extremely limited resources. 16 Kilobytes of RAM was common, and 64K was considered a vast amount. Storage capacities ranged from 88K floppy disks to (very expensive) 10 Megabyte hard drives. Personal computer memories have expanded by orders of magnitude over time. System requirements remained the same for legacy software as it aged. The rate of change for hardware becoming faster than software is explained by Wirth's Law for actively developed software. Minimalism became important with respect to embedded computers, handheld computers, and ubiquitous computing devices because usually the hardware resources are intentionally set low and are not abundant.
As people became frustrated with software bloat and the information overload presented in popular software, minimalistic software alternatives became available, mostly from the open source and shareware communities. Developers reacted by creating user interfaces made to be as simple as possible by eliminating buttons and dialog boxes that may potentially confuse the user. In a special case, it can take on a visual arts meaning, used particularly in industrial design of the device or theming. John Millar Carroll, a researcher, in his book Minimalism Beyond the Nurnberg Funnel pointed out the use of minimalism resulting in little-or-no learning curve with the benefit of 'instant-use' devices such as video games, ATM machines, and mall kiosks that don't require the user to read manuals. User Interface researchers have performed experiments suggesting that minimalism, as illustrated by the design principles of parsimony and transparency, bolsters efficiency and learnability.
The portable Radio Shack TRS-80 Model 100 could be considered an early example of minimalism in hardware design, with the OLPC a recent extension of some of the same concepts. In a more open sense, the S-100 passive backplane design is another form of minimalist thinking. When considering older hardware (and software) though, it should be remembered that resources were far more limited then than they are today, and what we now consider minimalist could have been, at the time, a full-featured, ground breaking product, with no restrictions willfully imposed upon its development. The Model 100, for example, was a technological breakthrough in miniaturization and portability when it was introduced. Adding things like an internal disk drive or larger screen would have made the computer much larger and more power-hungry.
The Amiga platform is also notable for its minimalist philosophy. The AmigaOS was able to preemptively multitask both GUI and CLI programs in color with stereo sound in as little as 256k of RAM. Many of the Amiga's capabilities would not be equalled until much later, on much more powerful hardware. Some, such as displaying multiple windows at different color depths and resolutions on the same physical screen, have yet to be duplicated at all. John C. Dvorak stated in 1996, "the AmigaOS could operate fully and multitask in as little as 250 K of address space. Even today, the OS is only about 1MB in size. And to this day, there is very little a memory-hogging CD-ROM-loading OS can do the Amiga can't. Tight code — there's nothing like it. At first, the Amiga cost less than the alternatives available to consumers at the time - a Macintosh system cost about twice as much as an Amiga in 1985, and upgrading a contemporary MS-DOS-based PC to an equivalent capability would be far more expensive. This price advantage was steadily eroded over the Amiga's lifetime, due to market factors.
As manufacturing tools are refined and costs reduced, technology moves towards physically smaller and less heavy systems, a trend known as ephemeralization. Examples of this convergence are abundant; old mechanical hard drives are being replaced with flash memory, the keyboard and mouse are slowly being succeeded by alternative input technologies such as touch screens and handwriting recognition, and thinner LCDs and OLEDs are substituting heavy CRTs. The result is a device that is smaller than its predecessor. This miniaturization can result in a convergence of devices such as a music player, cell phone, DVR, calculator, electronic rolodex and many functions of a portable computer being integrated into one pocket-sized device like the iPhone or Linutop.
Minimalist software attempts to eliminate clutter and reduce resource consumption. Minimalist often remove desktop icons, widgets, window decorations, toolbars, or replace feature-rich programs with smaller programs. Some applications are focused on reducing storage size (footprint reduction) and maintaining only core features which exemplify minimalist software design.
To keep a desktop uncluttered, a minimalist may remove desktop icons (or keep only as many as needed); all other operations are done by using the operational menu (Start Menu in Windows or Right-click with Fluxbox) or keyboard shortcuts. The result is that only the wallpaper (or a blank background) is left. The Plan 9 operating system's Acme user interface is possibly even more minimal. It replaces the ideas of icons and menus with a "click-anywhere" command system where any word on the screen is available for use as a command. Acme's design eliminates superfluous decorations and actions. The Oberon operating system has a similar ability. The entire Oberon OS, including a GUI and web browser, can fit on a single 3.5" floppy disk.
In the Linux desktop computing environment, GUI shells such as Fluxbox or IceWM are widely considered lighter on resources than popular desktop environments such as GNOME and KDE. XFCE is another D.E. that, while almost as feature-rich as the other two, claims to use less system resources. The recent trend of XFCE is to add features in the interest of usability, however, which may eventually take it out of the minimalist space: Xfce version 4 is more resource-hungry than earlier versions, especially if the compositor is enabled. Window managers such as dwm, evilwm, WindowLab and Ion which do little more than display a window's contents on screen can be seen by some as of value for the minimalist philosophy.
Often software development leads to the implementation of features peripheral to the core purpose of the program, which then uses unnecessary resources (memory, CPU, etc). Minimalists tend to replace these programs with lighter alternatives to improve performance (and start time in some cases). This technique can be useful if one wishes to use an older, less powerful computer instead of upgrading in order to support a more resource-intensive environment.
Most web browsers use GUIs with features such as tabbed web browsing, which some minimalists consider a waste of resources. As an alternative, some use text based web browsers such as ELinks or Lynx where most operations are done with the keyboard. That being said, even in this realm there exist varying degrees of minimalism: ELinks is larger and more feature-rich than Lynx.
In Handheld devices, such as PDAs, using PalmOS or WindowsCE, the use of minimalism is used differently due to limiting factors such as battery life, system resources, and input/output space. They attempt to minimize any sort of interactivity. Each code execution on these devices amounts to consumption of energy and the devices tend to be placed on power saving suspend mode to extend battery life, in some cases not providing energy to backlight during operation. Furthermore, the interface design and programming development kits of these devices advocate emphasis on very simple user interfaces and very simple interactions though heavy dependence on the digitizer and information be quickly obtainable, like the PalmOS API find feature calls that scours though many program databases. Programs on these devices tend to be limited to basic core features found on desktop equivalents such as those found on Opera web browser ports.
Much early personal computing software would now be considered minimalist. Former category-defining applications such as Lotus 123, Wordstar, Wordperfect, VisiCalc, MacWrite, MacPaint, MacDraw, dBase II, Acta, WriteNow, or even early versions of Adobe Photoshop and the Macintosh version of Microsoft Word 5.1 are now often cited for their slim, minimalist feature sets. A lot of these programs are now considered abandonware.
List of minimalistic applications:
In programming language design, it is considered good practice to attempt to express language features in function of already existing language features, which relates directly to minimalism. For instance, in the Scheme programming language, control structures like a while loop need not be defined at the language level, as they can be implemented using hygienic macros, thus making the language specification smaller (which is minimalist) and reusing existing features.
When programming, the "Hello World" program is considered to be one of the most minimalistic test programs that can be expressed in many programming languages. It is also used as a teaching tool for many programming textbooks.
Given a choice between sets of programming libraries programmers may prefer lighter version. For example, dillo developers chose the older GTK+ 1.x library even migrating to the alternative FLTK 2.x library to avoid the newer GTK+ 2.x library for reasons that they found GTK+ 2.x to be bloated and slow. Others may choose from different C standard libraries from either uClibc or dietlibc or other implementations instead of the larger glibc when designing for embedded computing devices.