Why Minimalism?

[linkstandalone]
Well first off, you look really cool when you do it. So that's gotta count for something.

So, I could make an autistic rant about why Windows, Mac, iOS, and Android are literally the cancer of the earth, but I'll spare your time for now. In essence, these are just bad software that disempowers and abuses the user. These don't allow for users to customize and control their computer, they can make certain tasks more energy than they should be, they can be inefficient, and they advertise a support system that doesn't actually exist. Some of this technology is just conspicuous consumption. The disappointing part is that we live in a society where people would rather justify their purchases or current actions than learn something new to be more efficient or to actually grow as a person.

So if mainstream software is so terrible, are the alternatives honestly better? It may seem that the people who avoid mainstream software are putting themselves at a disadvantage in that they sometimes need to spend extra effort in order to accomplish the same tasks. Thus we have a public perception that only elite hackers use Linux or terminal/text-based user interfaces. It may seem true that accomplishing some tasks may be more difficult without some familiar buttons or GUI elements that automatically map to some set of instructions. But actually, this minimalist sort of workflow can sacrifice short term speed for long term benefits. If you actually spend the time and energy to learn, you can become capable of performing the same types of tasks faster and more effectively in many cases. With this, I don't mean to sound elitist; I can't expect everyone to become experts and write their own low-level code. But it is possible to abstract high level commands wherein the average user can string together exactly what they need on a case-specific basis. Metaphorically speaking, you don't need to go out and buy a cake if the ingredients, stove, and instructions are sitting on your counter top. In this way, you can get exactly what you want every time, without having to consult the baker.

Note the point about having to consult the baker. The ideology here is about self-reliance, not anarcho-primitivism. Unlike a cake, software has a lot more utility. And with utility comes features, some of which are necessary, some of which are not. The features of software have generally expanded exponentially with the increasing power of hardware (because how else do you improve a set of instructions?). Now we're at the point where we expect a certain amount of functionality out of every program we use. If it doesn't have a specific feature I want, it must be deficient. But with these features come other features you don't want, things that may be detrimental to your privacy ...or even your brain! As a society, we've emphasized that you shouldn't have any expectation to try if automation is involved.

In my philosophy, our progress is measured in bridging the gap between an amateur and an expert, not creating stratified classes of experts and laymen. Just like science, good software is the kind that can be picked up by anyone with some expectation they can understand it at some level. The goal of progress is bringing the whole of society to a better place. And my experience in science is that the line between an expert and a layman is actually pretty thin. Yes, you have to learn some new things, but all of that information is out there. Anyone can pick it up and learn (but that doesn't mean you'll be talented). Our society instead draws the line at four years of commitment and tens of thousands of dollars of tribute. Instead, with FOSS projects, good documentation, and accessible languages, this societal progress in empowering amateurs is actually happening in the background.

So, you're into minimalism just for the sake of learning and flexing on people in class? Not exactly. FOSS and minimalist software is actually just better than the mainstream alternative in a lot of cases.

  • Stable versions can be less prone to bugs, the transparency in the open code and multiple collaborators allow this.
  • Support is a decentralized process, so you don't have to sit on hold with Microsoft for 2 hours for them to just tell you to buy another computer.
  • Anyone can contribute (or fork).
  • It's easy to learn from.
  • It's easy to build off of.
  • It's safer
  • It literally just does what it's supposed to do.
  • I think a lot of the success of the FOSS community stems from its commitment to the Unix Philosophy. Most importantly:

  • "Do one thing and do it well"
  • "Write programs that work well together"
  • "Communicate in a universal language (e.g. text stream interface)"
  • These three things are clearly visible in most command-line tools available in free desktop projects. Many of the most common tools literally only serve one purpose and are expected to be strung together with other commands (e.g. grep). There's a reason why every linux distribution I can think of shares one thing in common: the Unix Terminal.