Home > General > Philosophy
published 2021-01-25, updated 2021-02-21
The modern software world is a mess!
The modern software world is riddled with security holes!
The modern software world is bloated beyond redemption!
These statements about the status quo of the modern software world may seem a bit exagerated, but most of it stands true if you look beyond the veil of the shiny facades of all these apps and services out there.
Every feature in a piece of software comes with a price, more lines of code means more bugs, more attack surface. This is often then countered with more lines of code to fix those bugs, which introduces even more bugs, which is countered with more code ... Most of developers have fallen ill to this rabid hole of overly complex software systems.
But the easiest solution to this self empowering problem is actually deleting code! The less code, the simpler the software, easier to grasp, debug, fix. It is the Unix principle, KISS, DRY, YAGNY, Suckless software, there are many names for the same thing.
This even applies for simple things like this webpage. You don't need to load megabytes of shitty JavaScript files to display some text and some images, just because you can, or should I say, you haven't learned how to do it without your 9.000 frameworks and libraries.
Some people take this to the extremes like suckless or even more extreme like cat-v which might be true, but to extreme for my taste. Being on the extreme sides of a spectrum never appealed to me, cause one always needs to give up on something useful or convenient.
So I like to make compromises of simplicity and convenience to actually strike a balance between those two to make my life as a software developer and software user a better life then yesterday.
For me it is ok to use Linux and KDE, it came a long way since the 2000s.
For me it is ok to use Java or C# for enterprise applications in my professional life.
For me it is ok to use hundreds of terminal applications for day-to-day usage of my computer.
For me it is ok to use plain old C, but if I can avoid it I will gladly do so!
For me it is NOT ok to use JavaScript and all this Node/NPM nightmare!
For me it is NOT ok to use a plethora of dependencies in my projects just to save 10 LoCs of hand implementation!
For me it is NOT ok to use Frameworks just because the cool kids all use it! Learning the basics is cool!
These are just examples of striking a balance between simplicity and convenience, but gets the point across. There is a compromise between the two extremes, and that is what I strife for in MY software world.