-- Leo's gemini proxy

-- Connecting to yujiri.xyz:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini; lang=en

yujiri.xyz

Software

You do harm by creating alternatives


In the free software world there is 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. 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.


Conclusion


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:

We should only promote our inventions if we think they're better than any existing alternative for at least a significant range of use cases.

When we believe this doesn't apply to a thing, we should work to abandon it and promote better alternatives in its place.


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

Ubuntu commmand-line tutorial

-- Response ended

-- Page fetched on Mon May 20 13:02:02 2024