On Software Minimalism

oz, 2020-06-15

Recently, I iterated on gg.py again, which ultimately led to the age-old question:

Why (re-invent the wheel)?

Minimal Software

I like the idea of minimal software, just the amount of software needed to solve a problem, to fulfill a need. Typical characteristics of minimal software are:

I acknowledge that gg.py could have also been realized in shell using the BusyBox set of UNIX utilities. Regardless, I enjoy working with Python and having a pet project keeps my language skills and tool chain sharp. Software minimalism followed to the extreme would consider Python and anything written in it as "bloat" and not minimal. On a second look, the above traits of minimal software seem to be rather means goals than end goals. Extrapolated, I see one over-arching objective:

To spend less time with software!

Standard Software and Innovation

Spending less time with software frees you up to spend more time outside, off the computer, with friends and family. Or to focus on the business side of things. Shell one-liners and clever single-file programs may be one approach, but for plenty of people the use of standard software is exactly that:

Standard software is not necessarily user-facing software, but also common software libraries, frameworks, programming languages, open-source or industry standards. One downside of using standard software is the loss of competitive advantage stemming from superior tools and craft. Then, beating the averages and innovation are not a matter of technology, but of appropriate and repeated creative application valuing the zeitgeist.

In Perspective

This cannot be an argument for minimal, custom-built software, nor standard software. Neither seems to grant an advantage inherently, so a healthy dose of pragmatism is required when developing or utilizing software in a competitive space. Shifting the point of view, someone's minimal software might be someone else's standard software (e.g. UNIX utilities leveraged by an advanced user) and someone's standard software might be considered "overkill" by minimalists (e.g. WYSIWYG word processors for writing plain text). At the end of the day, users minding their respective computer skills could still all agree that their preferred software tool enables them to spend less time with the computer.

This turns the question "does this software enable me to spend more quality time off (or on) the machine?" into a metric for gauging software value.

As for gg.py, it covers my static site generator needs. Growing with it and having full creative expression are their own rewards. ☺