####################################################
#————-/Cyber/ Guide to Software————-
#————————–Libre-Minimalist Flavor #
####################################################
This guide attempts to provide an overview of the theory surrounding minimalism and libre philosophy in software as well a list of recommended software that adheres to these principals. This guide was written for /cyber/ anonymously, and should be distributed an modified, emended as expanded as fits the distributors of the document.
####### Contents ########
# 1 Software Minimalism : Why Minimalism creates reliable and faster software and users.
# 2 Softare Freedom
# 3 Recommendations
#1 Software Minimalism
'there is one quality that cannot be purchased in this way - and that is reliability. The price of reliability is the pursuit of the utmost simplicity. It is a price which the very rich find most hard to pay. '
Software is inherantly bug ridden and complex. Bugs, responsible for security failures, loss of data, crashing applications, and other technological ills are introduced into code at a reliable rate per line of code. The largest enterprises haven't been able to produce reliable technology despite enormous operating budgets over years, and the web is a perfect example of this: Virtually all Browsers leak memory due to the complexity of the modern web, and the bug ridden code that composes the preponderous browsers. Computers despite having many orders of mangitude more resources have become less responsive to the humans that operate them, and phenomena known as "Wirths Law", and less available due to failures as software has scaled in complexity. C.A.R. Hoare consisly and elegantly described the problem in his turning lecture "The Emperors Old Clothes" with the following gem:
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. It demands the same skill, devotion, insight, and even inspiration as the discovery of the simple physical laws which underlie the complex phenomena of nature."
Out of this economy of complexity, we gain firstmost in reliablity, but there are far more advantages to be had than this alone. Minimalists software runs faster, allows the user to invest in software and become a power user, to fine tune the enviroment to suit the user, and ultimately allows the (re)use of lower end hardware, preventing obsolence.
Choosing minimalist software is a rejection of the "All features, all the time" (wirth) software release model where software must add features, and change in design purely for the sake of convincing customers to buy a product. Choosing minimalist software allows a user to invest in learning how to use software with the understanding that the investment will pay dividends. That is to say, radically altered,new user interfaces will not appear to make new functionality accessible. This is ultimately a promise to the user that enables the user to become a power user.
Because Users are expected to become power users, the can forgo plenty of fluff. Expressed by Wirth in the following quote:
"Increased Complexity results in large part from our recent penchant for friendly user interaction."
Becuase users are expected to become power users, we can define interfaces that are optimized not for discoverability but for power users trying to acheive goals rapidly with minimal effort. A simple example of this is Unix command names and directory names, which were "…. worn down to three letter nubbins, like stones smoothed by a river." (Stephenson) in an effort to spare unneccesary keystrokes. Of note, this has been notably attacked by the Unix-Haters Handbook. Minimalist software thus encourages power users, and enables there computing, rather than targeting discoverybility, ease of use, and providing marketable, maximalist feature creep.
Although minimalist software need not be textual, Unix Systems have taken this minimalist approach to creating power users, and enhanced it through creating composible programs with the commandline. The Unix commandline environment encourages "taco bell programing", or combinations of small, reliable, tools to acheieve complex tasks without writing large amounts of code from scratch - named for taco bells ability to make millions through combinations of few ingredients. This is valuable, in the words of Ted Dziuba because of the trust we can have in minimalist, time tested software: