Look, I do appreciate this thought process: there is certainly a time and a place for opinionated software; as the article states, if you are trying to fully outsource a problem to someone else--preferably someone who will take that problem seriously (unlike the trope of frameworks that claim "I'll solve your browser compatibility issues!" and then aggressively deprecate browsers)--or you are trying to force a decision on others and need an excuse to not waste much time on it (though, this honestly feels low key abusive), well then I totally feel for this thought process: having something just tell me what to do for my own good can be great.

But then you find articles like this, which take it to the point of pushing opinionated software principals as its own opinion, framing such design as universally "better" and that that is how software "should" be written... I find myself unable to just sit idly by and not respond to such a thought--seeing where it is on the HN front page--without at least some kind of rebuttal, as it is a thought that I find actively harmful for trying to not just invite people to consider their options, or think about the tradeoffs in what they are trying to accomplish, but to try to actively discourage people from building software that adds value to the world in the form of doing something someone other than the developer wanted done.

The world of this article--where everything is "use it or don't"--is a world full of wrong-handed scissors, one-size-fits-many clothing, single-station radios, and "no substitutions" menus that are simultaneously prix fixe. This is a world where people who show up saying "I know I could be X% more effective (or even simply happier) if only your software did Y" are told "you don't know what you are talking about; and, even if you somehow did, you should learn to make do without as that's the austere thing to do". This is a world where not only is everyone working at merely an average level of efficiency, but no one gets to enjoy the art or experience of doing anything, as a world without color is supposedly a world with less stress.

To enter the same narrative frame as this author: if I hire software, I want that software to be working for me. I often do know what I need to be effective, and I'm hiring software to do that job: if by any of the developer's hubris, incompetence, or laziness, the software is incapable of doing the thing I wanted it to do the way I needed it done, I'm going to either hack their masterpiece until it works the way I want it to, or I'm going to fire it and find (yes) a "better" piece of software. FWIW, in this way, I'm lucky: I can build my own software, and I can modify your software (even if it is closed source!)... not everyone can.

And that's where I feel like this is most dangerous: that software developers are effectively building the world for everyone else, and when we drink the kool-ade of these "opinionated" manifestos, we begin to believe that we are best able to decide how things should work for everyone: that there is one way to best edit videos, or write documents, or compose music. We should listen to our users--even if they are other developers--to learn what would empower them and make them effective, and then add enough settings (or extension points or whatever: "even software should have screws"! https://www.youtube.com/watch?v=ReKCp9K_Jqw) to let them feel like themselves.

Because the alternative is just sad :(. Again: there is a time and a place for being opinionated, and it isn't that I'm saying that concept is always broken... but there is maybe nothing more infuriating than something that is almost perfect, and the decision to resist having settings or options in your software because of a claim that they are some kind of cop out instead of an admittance that people have different needs, interests, or understandings, is the kind of "opinion" I have opinions about. Remember: "Opinions are like assholes: everyone has one, but they think each others stink." -- Simone Elkeles