Updated: December 18, 2015
What is that we humans fear the most? No, it's not reality TV or snakes. It is the unknown. Not being able to predict the outcome brings out the worst in us, in our imagination. If someone told you, you will die in a nuclear holocaust, you will merely try to get the best shot of your final moment. But if someone told you, something horrible is going to happen to you, you'd actually start worrying.
This brings us to our topic of the day. Linux! As it turns out, I happened to be testing all the major Ubuntu flavors this autumn, starting with the main version, then branching toward the Plasma edition, the Xfce-flavored one, and finally the MATE desktop. All of them exposed me to an extremely worrying problem in the Linux ecosphere. Inconsistency. Hereby, I declare war on inconsistency!
Before I give you a proper rant, let me tell why I narrowed down this test to just four distributions of the same family. Because the variance is lower than adding random players into the mix. You can always argue that Fedora or openSUSE are that much different, and sort of excuse for any discrepancies and randomness in behavior. Not so much when the differences come down to just the desktop environment and the app stack.
So you would assume that these distributions would behave more or less the same, especially on the hardware level. Or at the very least, the app-agnostics bits and pieces would give you identical, consistent results, things like codecs and plugins and network protocols. Right? Well, no.
Therefore, without complicating things with even more changes, let's focus on one laptop, one kernel, one distro family, one governing entity so to speak, and only the visual layer ever so slightly changed. What gives?
Wireless: Ubuntu and Xubuntu did not have any issues. Kubuntu and Ubuntu MATE had their network seize and died, forcing a reboot. Bluetooth: Crashes and problems affected the Ubuntu and Xubuntu flavors. MATE did not work at all, and Kubuntu was the only one with a more or less flawless execution.
On the Samba side, all four experienced slowness and bugginess, but to varying degrees. MATE was the worse, closely followed by Kubuntu, which probably correlates to the earlier networking issues. Maybe. Printing to Samba shares also works in three out of four cases, excluding Kubuntu.
No problem booting from the UEFI + Secure Boot combo. Suspend & resume works fine for all, but Kubuntu lost applications and then the wallpaper while waking up on two separate occasions. Touchpad is annoying in Xubuntu, peaceful otherwise, and likewise, Xubuntu was the only distro that did not have screen brightness auto-dim on battery power.
Battery life also varies differently. MATE wins, followed by Xubuntu and then Kubuntu, with Ubuntu giving the worst results. Resource utilization is also drastically different. As you can imagine, Unity and Plasma are big guzzlers, twice as much as Xfce and MATE. The performance is pretty good in all cases, though.
Kubuntu failed to mount virtually everything in the live session, and it wouldn't mount iPhone at all. The other fellas are much better in this regard, but not without an occasional sputter. Crashes occurred, related to the underlying device detection mechanisms in the kernel. This is what we call a regression.
Flash was promised in all cases, and not once configured properly. Xubuntu and MATE played MP3 even in the live session, while Kubuntu failed to do that even after the installation. HD playback was also flaky with Kubuntu.
Of course, we next deviate into the actual look & feel and usability, but then it becomes a matter of taste and practice. Still, these different distributions all cover different angles, offering programs and tools that do not necessarily have an equivalent with the other desktop environments.
Now, let us complicate things a little more, shall we. Specifically for Ubuntu and Xubuntu, if you don't mind, please consult my reviews for the spring editions of these two systems, Vivid this and Vivid that, and tell me if you can find a common thread for how these distros behave. I bet you a shilling that you can't.
And this is the root of our problem. Inconsistency. Without blaming it on radically different architectures, file formats, packaging, or philosophy, we're talking about virtually identical products that behave like four alien species.
Not only do they not behave consistently among each other in distro-independent categories, they also do not follow the behavior of their own kind only six months removed. Only six months to ruin my impression, my confidence, and my expectations.
Think about it. Your network scripts are no longer usable, because you do not have a reliable Samba connection to your Windows boxes. Music stops playing. Flash clips no longer run. Your battery life has gone down 30-40%. Crashes replace serenity. Six months.
This can't continue. If I were to judge Linux objectively based on the merits of its most popular distro, or near as it makes no difference, then it's a bloody amateurish execution that can't stand the test of any serious work over any decent period of time. Yes, you can argue that LTS is one thing and in-between releases are essentially beta.
I don't accept that argument. Want perpetual beta? Channel it that way, label it, isolate it, offer it to power users in a special way that does not go mainstream, but it must never affect ordinary users. Only if a random person was to install a fresh new version of Ubuntu today, they would not have the same experience as only half a year ago. Using the phrase beta is just a lame excuse for shoddy quality and screw-all work methods. Fedora follows the same trends, and it is equally inexcusable.
Worse than just beta, it's a gamble. You never know if it's going to better or worse. But I would understand if a bleeding-edge, state-of-art technology was to break. Something like containers or alike. However, I see no reason why Samba sharing or printing should not work. Or why MTP ought to die. Or why music doesn't play.
To the best of my knowledge, there's nothing radically new about MP3 songs or my smartphones or my video clips. My printer is the same box that you've seen around for past two years. That's not where innovation takes place, and that's not where there should be any regressions or nasty surprises.
This potshot mentality is unsustainable. It pisses me off on a personal level, but it also illustrates Linux as a hobbyist attempt by bored people to staple their name to a public board without any real goals or ambitions - and worse - accountability. If you are going to let loose your code unto the world, it'd better work nicely. If you're just after githubing garbage, you might as well do something else more productive, like building a brick wall or selling flowers.
You may invoke the powers of Windows 10 to counter my argument. First, Windows 10 has its fast track. Power users can test beta stuff. Normal people do not need to be exposed. Second, Windows 10 isn't a good release. It's average. Plus, it's broken many things. Even so, the bulk of the stuff still works well, and the behavior is very similar to all previous versions of Windows, going back ten years and counting.
Besides, comparing your product to someone else's fail is a bad way of excusing your own ineptitude. If you want to distribute your code, do it to the highest standard and morals, and make sure the users can enjoy a predictable experience. It does not have to be great. Greatness isn't an immediate 0-1 phenomenon. But it will never EVER come unless you achieve stability and predictability first. Being able to know that your product will not utterly and completely break with the next release. Today, few distros if any can guarantee that. The only ones that manage to do that in a reasonable manner are the super-stable enterprise versions of Red Hat and SUSE, which guard their ABI like eternal virginity. Everything else is a joke.
Note: Image credits, memegenerator.net.
Meritocracy is a nice concept, but it does not get the job done. You need someone at the helm to do the job. Preferably, Captain Jean Luc Picard, but Linus does his stuff quite well, too. Alas, he is the king of the kernel only, and there's no distro paladin to protect us. We definitely need someone to hero up and lead the cause with brutal veto powers.
It's very simple. A higher governing authority to prevent distro developers from going wild with arbitrary changes and schedules, to coordinate standard usage of protocols and libraries, and to mercilessly crush the endless forking, bickering and breaking.
Diversity is critical to success, but so are standards. The Linux kernel got so popular because it offered stability alongside flexibility. And if you follow the right channels, you will see when bad ideas get rejected, because they aren't stable or safe or mature enough.
We need the same thing in the distro space. There must be a higher cause, a higher framework to connect all the pieces, a mechanism that will define how things should be done, across distributions, across desktop environments. Calming the pace in between releases and clearly labeling broken things BETA should also help. Ultimately, it comes down to making sure there aren't a hundred implementations of the same thing, all changing arbitrary, all breaking randomly. Across all distros. No such body exists today. The users deserve better. Linux itself deserves better.
Maybe someone should create a project for it.