# Minimalism - Praised but Rarely Utilized

We constantly praise companies that demonstrate their use of minimalism. Take for example Apple or Tesla: Two companies that make their product visually appealing to their customers by simplifying their design and relying on intuition for the products’ complex power. Very few though, are willing to take that approach to a broader scale. The software side of products, especially when it comes down to customers is bloated. First of all, why should minimalism be considered important in our society. And second of all, how would that affect you?

## First, let’s clarify

Before making a case about the importance of minimalism, let’s first establish what the term means in our context: \begin{center} > Software that is written with limited functionality > at it’s core, is extensible, and is efficiently written to allow for maximum efficiency.

## The horrors of multi-use apps

Minimalist software is often designed according to one aspect of the UNIX philosophy which is: > Software should only do one thing and do it right. With time, a lot of software have begun using versatility as a selling point. Take for example the amount of email apps which state they also have a built in calendar and contacts. The idea seems good at first glance. But if you like the email portion of the app but not the email one, the average consumer will acquire another app for calendars and be stuck with a portion of an app being unused in his device. In a world in which everything is about saving data, that is a flagrant waste.

When you think of a lightweight app (or script). You usually expect it to run crisply. That is only possible if the code is efficiently written. Take for example the following python code (taken from PyBytes):

msg = 'line1\n'
msg += 'line2\n'
msg += 'line3\n'
print(msg)

This code is inefficient as it generates a new string on every line. To obtain the same result, a favorable approach would be:

msg = ['line1', 'line2', 'line3']
print('\n'.join(msg))

This may be a very small example of applied efficiency in code, but to a computer, every operation is a small and short one, only sometimes replicated thousands of times.

## But why keep code small

When code is small, it is easier to digest when it is required to debug it or change it. This allows capable users to optimize code to their use cases without being overwhelmed by the calamity of a huge software. Software which is small is easier to adapt and shape. Even if you don’t know how to code. It is all to your advantage to promote small code as other people can make those changes and you will have the privilege of downloading that changed piece of software.

You may as well call me an extremist. To some extent, I probably am. But consider how optimized software would be with this design philosophy as a general priority.