Software Alternatives Are Harmful

In the free software world, there's an attitude that making free software can never be a bad thing, even if there are already existing free software. This is not always the case. The attitude assumes that users can review all alternatives to find the best one for them, but they can't; there are already too many programming languages, too many Linux distributions, too many messaging protocols, etc., for anyone to research them all and make an informed decision. They can only research a few, and your project may occupy a slot in that capacity, so when you add a poor alternative, you reduce the probability that they'll find a good one. As an example, the superior MDN (Mozilla's "web developer" documentation site) is straight up better than W3Schools, but W3Schools results often show up first on an online search. Thus, W3Schools' existence is harmful.

This problem extends beyond software internals and begins to cross the boundaries of software philosophy. Many people in the free software movement assume that merely replacing proprietary software with free software automatically improves society, and while software freedom is important, a freedom-respecting license can't save a bad idea. A decentralized clone of a harmful service remains harmful, and the Fediverse demonstrates this well; despite being built on free and open protocols such as ActivityPub, many Fediverse platforms merely recreate and mimic the same social media environments that made Twitter, Facebook, Instagram and Reddit destructive in the first place; content consumerism, like whoring, friend hoarding, and doomscrolling, all with an "open-source" sticker on them. The problem isn't only "who controls the software," but also "what habits and incentives the software encourages."

How standards proliferate.

xkcd #927: Standards

When people select an "alternative," they will never know which alternative is best for them before investing in one. Often the reasons why something is inferior are only apparent after using it for a while, and at that point, switching to a better alternative can involve throwing away a lot of work and experience. Moreover, the amount of duplicated effort when developers make a new thing isn't just their sole effort to make the new thing itself; if you make a new programming language, thousands of people are going to write libraries for it that already exist for other languages, and if you make a new Linux distribution, thousands of people are going to package software for it that's already packaged for other distributions, and it goes on and on... all that effort spent on your project, most of it by people other than you, instead of effort spent on improving already existing projects.

Don't get me wrong though. I'm not saying that we shouldn't try to invent better alternatives to shitty software we have. This is a wrong application of this entire argument.

How shitty standards stick around.

Inappropriate application of xkcd #927: Standards.

What I'm doing here in this writing is simply pointing out that many people suffering from the NIH ("Not Invented Here") syndrome may waste much of their time and effort creating alternatives for software that are good enough, instead of improving and submitting patches to said software. Thus, we should only promote our inventions if we think they're better than any existing alternative for a significant range of use-cases (see: Better Software). Otherwise, we should work to abandon our projects in favor of promoting better alternatives in their place.