I've been a lover of FOSS ideals for years, dating back to when my brother first introduced me to Linux as a teenager, with Ubuntu. Ever since then I've believed that computing is for everyone, and I felt a belonging to the Unix world as a Catholic does to their church community.
But part of me is starting to wonder if the Unix world is the the greatest waste of human effort I've ever seen. Not as opposed to Windows and Mac - I think the benefits of Unix-like operating systems over those are absolutely massive - but internally. When I look at the hundreds of Linux distributions and think of the maintainers, I wonder just how much of their time is spent solving problems that someone else already solved. And on a mostly-compatible operating system, too.
And the package managers. When a package gets an update, every repository's maintainer has to make their own changes to make the new version available on their operating system.
And how much time has been lost in support forums due to community fragmentation? Most of them have their own forums, and each one usually has a forum, several mailing lists, and a bunch of other community areas.
Duplication of solutions has got to be the biggest waste of effort in the entire software world. There are hundreds of distributions, hundreds of communities that aren't able to share all their work without overhead.
Although it was the Unix world that made me think about this, it's true of programming in general. How many languages do we have? How many compilers and interpreters have people written and ported to diferent OSes, and how long did each take? How many libraries are written in one language and can't be used from another so someone else has to duplicate most of the work?
Oh, and what has it done to the job market? How much harder has the plethora of languages made it to find a job you have the relevant qualifications for?
As for end user applications, like editors, window managers, and shells, those aren't as harmful. They don't have half the FOSS ecosystem depending on them and also are more exposed to the user, so personal preference is more relevant to them compared to architectural quality than it is with software that fills an architectural role, like distributions, languages, GTK/Qt/Tk, etc.
I guess the same thing is also true of tutorials. There are so many different websites that teach or document the same thing. W3Schools probably has no reason to exist when MDN exists, for example. I write tutorials too, but in my defense, I only write tutorials about things I've searched high and low for and not found a satisfying existing one. (I do find dozens of unsatisfactory ones.)
It's a sad opinion, but I genuinely think the best thing we can do for the open source world - for the world in general - is to get rid of bad open source software. Picking a good solution and trying to get people to abandon the alternatives, even if the alternatives aren't clearly worse objectively, is a vastly underrated way to make the world a better place.
Consolidation is better. I love user freedom and competition, but the level of wasted effort is just catastrophic. We should stop making and learning new languages. Stop writing new software just because we can. Abandon things, pick out things that aren't markedly better than their alternatives in some significant arena and drop them.
I don't have many ideas on which software should die. For example, Linux versus BSD has got to be the worst single example of this problem, but I'm just a lowly dev, I don't claim to be knowledgeable enough to say which is better. I am positive that if the one with the worse core design were abandoned and all its users switched to the better one, millions of hours of labor could be saved in the long-term.