Coding Codes

github.com/ucirello | @ucirello in gophers.slack.com

Thoughts on minimalism and software construction

20 Jul 2015

Recently, I decided to embrace minimalism in more aspects of my craft. These are some random thoughts about it and the process I am living now.


“It seems that perfection is attained not when there is nothing more to add, but when there is nothing more to remove.” - Antoine de Saint-Exupéry


There is no such a thing as degree of minimalism. Either something is minimal, or not. However, it might take several iterations to notice all opportunities to make something truly minimal.


Composition of minimal components may result in minimal compositions - but it takes care to avoid derailing into complexity.


Minimalism is not simplicity. Although they are often seen together.


Abstractions are not forms of minimalism. They may turn things into looking minimal, but not truly. Beware of false minimalism.


It is easier to start minimal and keep so than taking crufty constructions and making them minimal, in any case such this, it will always be benefited from minimalism.


Minimalism does not mean code deduplication. It is not because two segments of code look the same that they are meant to be unified in a minimal construction. Minimalism is against entanglement.


You ain’t gonna need it is a longer way to spell minimalism.


Overengineering might lead to a range misinterpretations, good and bad. Minimalism will either please, or seem lacking; therefore it is more predictable.