You do harm by creating alternatives

In the free software world there's an attitude that making free software can never be a bad thing. There's an intuitive logic to it: if people don't need it, they can choose not to use it. They'll only use it if it benefits them. But this analysis is mistaken for several reasons.

xkcd: Standards

Discovery and burying

The logic 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 systems, for anyone to research them all and make an informed decision. They can only research a few, and your project occupies a slot in that capacity, so when you add a poor alternative, you reduce the probability that they'll find a good one.

if you take issue with such objective comparisons

Documentation has some great examples of this.

The monad tutorial fallacy

MDN, Mozilla's web developer documentation site, is straight up better than W3Schools, but W3Schools results often show up first in Google. Thus, W3Schools' existence is harmful.

I don't have the link, but I remember seeing someone associated with SQLAlchemy complain that people often showed up looking for help with SQLAlchemy because they followed a tutorial other than the official one and missed out on essential information. Those tutorials, while well-intentioned, were harmful.

Selection isn't made with perfect information

People can't always 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.

Duplicated effort

The amount of duplicated effort when you make a new thing isn't just your effort to make the new thing itself. If you make a new programing language, thousands of people are going to write libraries for it that already exist for other languages. If you make a new Linux distribution, thousands of people are going to package software for it that's already packaged for other distributions. Etc.

All that effort spent on your project, most of it by people other than you, is *instead of* effort spent improving existing projects.


I'm not saying that we shouldn't try to invent better alternatives to the things we have. I'm pointing out that we and others pay costs besides that of creating the thing itself, and so:

When I found the Ubuntu command-line tutorial I scrapped my own half-assed one - unpublished it.

Ubuntu commmand-line tutorial

Proxied content from gemini://yujiri.xyz/software/kill-software.gmi

Gemini request details:

Original URL
Status code
text/gemini; lang=en
Proxied by

Be advised that no attempt was made to verify the remote SSL certificate.

What is Gemini?