The Fork Frenzy

The Fork Frenzy

The open-source world is fascinating, but for the love of all gods, I cannot comprehend the obsessive need to fork everything.

You know what I’m talking about. The most obvious example is Linux, with its endless number of distributions. It’s not enough to have several major “main branches” like Debian, Arch, Red Hat, and SUSE, no! These also need countless forks, to the point where some distributions differ only by a handful of pre-installed software (something anyone could do with a few clicks in a software center). Seriously? Do we really need this many distributions with so little differences between them? It feels like a total waste of time, effort, storage, and bandwidth. And to make thigs worse, this proliferation of indistinguishable distributions makes it harder for “normies” to even try Linux. Perhaps that’s the point, to gatekeep Linux into an exclusive club for insiders.

But it doesn’t stop with Linux distributions, I wish! Pretty much every open-source project that gains even a bit of popularity gets forked, one, two, ten times. And most forks change very little. Some forks exist just to add a single button or tweak a minor functionality, or to only add the name of the forker to the page.

Why not collaborate? Wouldn’t the open-source community benefit more if people worked together on existing projects instead of splitting everything? After all, isn’t collaboration supposed to be the core principle of open-source software?

In this utopian version of open source that only exists in my imagination, people would focus on contributing to existing projects instead of forking at the slightest whim. The chaos we have today with abandoned projects, endless forks, and a web of derivatives wouldn’t exist. If developers collaborated more, the original projects would benefit from advanced features that otherwise remain scattered across dozens of forks. Original projects could thrive, gain popularity, and avoid abandonment when maintainers lose interest. Documentation would improve, integrations would work (they would exist!), and users wouldn’t be stuck navigating this maze of fragmented repositories.

This frustration has been with me since I first learned about Linux. Over time, as I delved deeper into the rabbit hole of open source and self-hosting, this feeling of “But Why?” only grew stronger. Take this scenario: I discovered a nice little project to self-host, but it lacks essential features like 2FA or OIDC. Thankfully, there’s a fork that adds 2FA! Great, right? Not so fast. That fork hasn’t been updated recently and is missing new features from the main project. Now I’m stuck choosing between security (2FA) and modern features. And I can’t even hope for a merge because, as the comments explain, conflicts would break the fork entirely.

Then there’s the case of BitTorrent clients. We have qBittorrent, Deluge, Transmission, Vuze, rTorrent, and more. Most of them trace their lineage to the same original code, each trying to innovate in its own way. But now they’re all the same… yet slightly different… but still mostly the same. If you want all the best torrenting features, you’d have to install and manage multiple clients. Why not collaborate on one unified project to ensure it has all the features users need?

And don’t even get me started on Messaging Apps or BSD flavors. What an absolute mess.

And how about the normal users? non-developers that don’t even know (or care) about open source and just want to use our nice little projects? After all that’s the goal right, we make software for people to use. What happens when a normal user starts searching about Linux? If it were me I’d give up after the first two or three search results showing me a few dozens of strange names, like what even is linux and mint and ubuntu and fedora and manjaro. With windows it is easy, there’s one, “Install windows” and that’s it, ok different versions but that is not the point, and most of the times it is the same procedure.

Now let’s see a good example. Media Players.
Nowadays, there are still a handful of media players here and there, the the most used, most famous, most powerful of them all is VLC, because of collaboration. In a never-seen before wave of collaboration, people decided to adopt the VLC project, contributing to its main code or creating plugins, and now we have an awesome tool! Point to collaboration!

Open source is build on the idea of shared and decentralized effort and mutual benefit, yet the constant need to fork everything, to have your name shown as “The Owner”, to think that you are better than the original creator because you can write code to make the profile picture pink, dilutes the potential of open source projects. If we could channel half of this egoistical (saying as an egoistical person) into collaboration, we’d have stronger, more feature-rich projects, and a far more accessible software ecosystem.

But until then, I’ll have to live with the chaos of open source and keep making the face “But Why?”.


Discover more from The Grumbler Cat

Subscribe to get the latest posts sent to your email.

Grumbler Avatar

Leave a Reply