Trying to be All Things to All People

You can't please all the people all the time.
If so, what are the implications, particularly in an open-source world? Trying to please everyone might be a noble ambition. But is that realistic enough and practically achievable? If yes, then all is well! If not, then what..?

Yesterday, I had an issue with one of my Arch Linux systems. The boot would end up in a restricted shell complaining about not finding rootfs. It was a repeatable error. Instead of trying to attempt troubleshoot, I just rebooted with the latest btrfs snapshot successfully. Never before had I resolved such a problem so quickly and efficiently.

This incident set me thinking about why Arch Linux users are so passionate about their distro. I think it is probably because Arch satisfies an itch that is probably not scratched by any others. Have a look at The Arch Way! That makes very compelling read. In reality, Arch only has a core offering, and offers users no other choice. Arch is always on bleeding-edge. Past attempts at creating stable flavours haven't lasted.

Arch was probably the first distro to tell users to move to systemd (no alternatives supported), or find another distro. Recently, they decided to eliminate 32bit and only offer 64bit. This is one distro which focusses on a limited offering, and tries not to get distracted to provide all possible choices. They don't anyone and everyone on their bandwagon or offer everything to everyone. So they end up only with those users who subscribe exactly to their philosophy. This is what their users get, which is exactly what those users want. And everyone in that world is happier.

Debian had a unique philosophy and following. Debian stable was rock solid, and users flocked to Debian for that unrivalled stable reputation. It was dependable and stable like no other distro. There were no surprises and everyone agreed on everything. Releases happened when everyone agreed, not because someone somewhere decided on a dateline everyone should follow. Somewhere along the way, Debian lost itself. Not long after that, the then Debian leadership managed to break up a very coherent community to split in two big opposing camps and many smaller splinters. Somewhere in parallel, the Debian founder allegedly committed suicide after officially complaining about receiving death threats.

Gentoo Principle #1 wants to offer all choices to all users. I think Gentoo should understand where it wants to go, and what it wants to be. You simply cannot stretch anything in all directions. Somewhere something will eventually break.

One example is Gnome. If every distro offers Gnome as intended, I see no difference between distros, which is exactly what some want. Gnome wants to restrict distros customising their offerings. What Gnome wants, Gnome does.. stakeholders be damned! And they seem to have a history of this. Gnome2 spit out the Gnome community, and it happened yet again, when Gnome3 spit out the Gnome2 community. Gnome3 was the first Desktop to make systemd a hard-dependency, thereby creating that initial discord.

Personally, I think the world will lose something, if everyone wears the same uniform, looks the same, eats the same, speaks the same language in the same accent, etc. It will be very bad for this world, if some people are allowed to choose options, and impose those choices on the rest of the world. We need to have more different communities and allow people to move/join wherever they best fit. This allows everyone to live and let live, and all communities to grow and leverage their growth from each other too. There is a certain richness in diversity. Humanity has grown so, because we have learned from and leveraged our differences as we have our similarities.

So it is with the open-source, and more particularly the Linux world of uniquely different and vibrant yet similar communities. Each distro, unique in their own way, has contributed to the overall growth. It will be a shame if we end up in a future where all distros behave the same, look the same, etc. This would end up creating yet another too-big-to-fail behemoth controlled by some covert cabal, and no one wants more too-big-to-fail corporations.

We need more distros, not less. We need more distro with their own unique offerings and communities. We need to let them all grow in their own way. The beauty of open-source is that they will contribute to each other, even if that was not their intent.

For example, I see Gentoo wanting to offer Gnome to some users, and the resultant discord in the Gentoo community. To fully leverage Gnome, systemd is required. There are always exceptions, and you could try patch things. This patching is unsustainable, IMHO. From starting to patch Gnome/systemd to fit in with Gentoo architecture, the Gentoo devs have ended up in a situation where they are now patching Gentoo to fit in with Gnome/systemd. This is not a good road to travel on.. and some users want Gentoo to fork into systemd and nosystemd camps.

Monolithic architectures of gnome & systemd conflict with most others. Either fall in, or fall out. Hence why I think distros should have a policy whether to offer gnome/systemd and nothing else, or no gnome/systemd. This should result in more streamlined and efficient distros. Some like Arch have chosen the former, while some like Slackware and Funtoo have explicitly chosen the latter. Some like Gentoo have chosen to offer both extremes, and are being split all over the place in their previously clean architecture. It is not going to be a gentle end to Gentoo, unless they clean up their act and decide one way or another. Users who want gnome/systemd are much better off with distros who have exclusively chosen those as a policy, like Arch.

IMHO, Gnome3 should have forked off from Gnome2, and left Gnome2 as-is. What happened was the other way round. Take something working well, with happy users, and change it so completely that it no more resembles it's origin anymore. The disgruntled users are left to fend for themselves, or fork it back to what it was. Strange business, this! Similarly, systemd should have created a new distro to show-case their offering, instead of splintering everything. Completely new Gnome/systemd distro(s) would have left the community much less virulent.

On Arch and Debian, I use systemd. I don't see endless patching as sustainable. What's the purpose of trying to defeat the architecture of the core system? If I don't want gnome/systemd, I should use distros which don't have gnome/systemd in their repositories. Such distros would be much more pristine, having a much more cleaner approach, with upstream patches everyone contribute, rather than endless patching downstream individual systems all disjointed.

Is it really so hard for some people to understand that Gnome/systemd might not be fit for all purposes, and do not make everyone happy. Same goes for Windows, iThing, whatever, and anything else you-name-it.

Smaller communities are more democratic and more vibrant with users who are happier and contribute more, while bigger societies have more users with no voice and taken where they might not want to go.

So, here's to celebrating your own uniqueness.. while we all live and let live!

No comments:

Post a Comment

most viewed