We are destroying software
antirez, the author of Redis, had this to say about us destroying software.
We are destroying software by no longer taking complexity into account when adding features or optimizing some dimension.
We are destroying software with complex build systems.
We are destroying software with an absurd chain of dependencies, making everything bloated and fragile.
We are destroying software telling new programmers: “Don’t reinvent the wheel!”. But, reinventing the wheel is how you learn how things work, and is the first step to make new, different wheels.
We are destroying software by no longer caring about backward APIs compatibility.
We are destroying software pushing for rewrites of things that work.
We are destroying software by jumping on every new language, paradigm, and framework.
We are destroying software by always underestimating how hard it is to work with existing complex libraries VS creating our stuff.
We are destroying software by always thinking that the de-facto standard for XYZ is better than what we can do, tailored specifically for our use case.
We are destroying software claiming that code comments are useless.
We are destroying software mistaking it for a purely engineering discipline.
We are destroying software by making systems that no longer scale down: simple things should be simple to accomplish, in any system.
We are destroying software trying to produce code as fast as possible, not as well designed as possible.
We are destroying software, and what will be left will no longer give us the joy of hacking.
I agree. I found “we are destroying software mistaking it for a purely engineering discipline” to be particularly interesting. I think that’s a big part of the problem. Software is a creative discipline, and we need to treat it as such. The best code I’ve read always looks like art. It’s beautiful, elegant, and simple. It’s a joy to read and understand. It’s a joy to hack on.
More of that ^ please.