A definition of the Linux desktop
Quite some time ago, I came across a thread from Gary Bernhardt on twitter.
Here’s what he had to say about Linux, compared to macOS and Windows:
Unlike the other two operating systems, you have control. But nothing will ever work reliably, especially across upgrades. When it breaks, the community will frame it as your own moral failure.
As a guy who uses Linux for almost everything (both at work and at home), you may think I would disagree.
But no, I agree with almost everything, except I would rephrase the last sentence. Let me explain.
Let’s start at the beginning. What kind of control do you have depending on the operating system you use?
Control on macOS #
You have almost no control over hardware. You buy hardware that is manufactured by Apple, often in an “Apple store”.
Most applications have minimal configuration, simple things like preventing the laptop to suspend when closing the lid are hard to achieve 1.
Finally, you often haven little control over your own data. Watching the movie you bought on iTunes on an non-Apple device is very hard.
You can put all your stuff on iTunes or iCloud, but if you loose access to your account you lose everything. 2
Control on Windows #
Compared to macOS, you have more control over hardware. For instance, you can buy a new battery when the one you use is failing instead of buying a completely new device.
But still, you get less and less control over what to update and when, and let’s not talk about privacy…
Control on Linux #
You control (almost) everything.
You can choose your distribution. You can choose its stability. For instance on Debian, you can choose between stable, testing, or unstable.
You can chose your desktop environment: KDE, Gnome, LXDE, XFCE, Mint, or even use no desktop environment at all.
You can can choose your window manager, your init system, your package manager …
You can choose when and what to update (less so on “rolling distributions” like Arch Linux, although it is still possible with extra care …), etc.
Control is everywhere and so ubiquitous it’s even scary. But it’s free: nothing prevents you from experimenting but time and energy.
When it breaks #
Let’s talk about what happen when software you are using breaks.
On macOS and Windows, all you can do is pray and find someone who has a solution. There are bug trackers of course (but on macOS you can only see the bugs you opened).
If you upgrade Windows and a third-party driver stops working, you’re basically screwed. I’ve seen my Mom loose access to its scanner for a few months because of this.
On Linux, things will break more often. They are less people to do QA, there are more unknowns, tons of different configurations (as we saw in the “control” section), and a pressure to release often and stay “bleeding edge”.
Almost everything is written and maintained by non-paid volunteers (and they do a terrific job by the way).
Upgrades are big and scary, and so things often break. No point discussing that.
A few months ago, after I upgraded Arch Linux on my laptop, the brightness control button ceased to work and I have no clue why.
But to be honest, I did not take the time to look for a solution, which leads us to the next section.
Your own moral failure #
Let’s take a look at some exchanges between an average user with a problem, looking for answer from the community, for instance in a public bug tracker or a forum:
> Q: I've upgraded *foo* to version 3.0 and now I cannot frob anymore > A: Did you read the changelog before upgrading?
> Q: I bought a new printer and now I can only print in black and white! > A: Did you research compatibility with Linux before buying the new printer?
Let’s try to put ourselves in the shoes of those users. They might think they failed at something, or even that they are not even supposed to ask this kind of question3, which illustrates with the “moral failure” Gary talked about.
Rephrasing the last part #
So where do I disagree? Well, it’s the “framing” part I don’t like. I would rephrase the last sentence as: “When it breaks, it will be your (or the community’s) responsibility to fix it”.
Let me elaborate.
When stuff on Linux breaks, you can do something about it.
You can downgrade, you can switch to an other distribution, you can discuss the problem on a forum, you can send e-mails to mailing list, you can open an issue on the bug tracker.
You can even get the code and patch it yourself if you are not afraid. Sometimes it’s not that hard.
So I don’t think the community is framing it. I just think it’s how things work in the Linux world. You just can’t expect volunteers to always fix all the bugs for free. And you can’t expect the same level of quality as when QA is done by paid professionals.
So, yes, in exchange for the freedom of control you get some duties. Your duty is to help yourself and others when things break. And by the way, teaching users about reading changelogs and doing research before buying hardware is good advice, if they are willing to accept it.
For me those duties are a small price to pay because I value control and freedom more than convenience. If you are willing to accept those duties to gain this freedom and are not using Linux, give it a go!
If you are using Linux and want to “convert” other people, (like friends or family), explain this to them so they don’t get mad at you. Be ready to help them for things they don’t understand. You can even teach them a few things, or teach them how to learn. That’s how I got to use Linux in the first place almost 15 years ago.
And if you don’t want to try and fix stuff when it breaks, keep using macOS or Windows. There’s nothing wrong with that.
I spent a day looking for a solution, then decided I did not really needed it. But if you know how to do it, please let met know :) ↩︎
Ask duckduckgo if you think it’s a rare problem … ↩︎
This is not hypothetical. I’ve talked about that in an article called “Why I love Arch Linux” ↩︎
Thanks for reading this far :)
I'd love to hear what you have to say, so please feel free to leave a comment below, or read the contact page for more ways to get in touch with me.
Note that to get notified when new articles are published, you can either:
- Subscribe to the RSS feed or the newsletter
- Or follow me on Mastodon, dev.to, or twitter.