DEV Community

Dimitri Merejkowsky
Dimitri Merejkowsky

Posted on • Originally published at on

A definition of the Linux desktop

Originally published on my blog.

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 ditributions” 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 question 3, 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'd love to hear what you have to say, so please feel free to leave a comment below, or check out my contact page for more ways to get in touch with me.

  1. 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 :) 

  2. Ask duckduckgo if you think it’s a rare problem … 

  3. This is not hypothetical. I’ve talked about that in an article called “Why I love Arch Linux” 

Top comments (13)

rrampage profile image
Raunak Ramakrishnan

Great article. As a Linux desktop user, I agree that the phrasing of the tweet was not the best. I still have a 10 year old laptop running Arch Linux, no issues as long as you read the update page. Drivers are a hit or miss depending on the device. My recent Lenovo laptop's wifi did not work out of the box and I had to find and compile the driver code and load it as a kernel module. Also, many distros seem to value the new and shiny over the old and trusted especially with regards to GUIs. I have moved to i3 as a desktop manager to keep things simple and sane.

I think you are doing Windows drivers a big disservice. Since Windows Vista, most devices work out-of-the-box. The drivers are formally verified and if any upgrade breaks them, you can rollback using Device Manager. Also, Microsoft for all its flaws, gives power-users a way out of its nefarious telemetry and tracking as they know that the vast majority of users don't care enough to take the extra steps.

I have never used any Apple product and considering the massive lock-in, am content staying out of their walled garden.

chocolim profile image
Choco Lim • Edited

I have to install Ubuntu to a Macbook pro 2011 and start using Linux GUI, last time I used it was on 2007. I always use the command line.

I dont think I have any control over Linux without have to know a lot. I really just want to use Eclipse for Java Developments, Firefox and Spotify.

I had to modify a few configurations to make the macbook's keyboard to work. The trackpad is horrible on linux.

All the utility Apps and the Gnome/KDE interface works just adequate.

Yes, maybe I am able to modify the kernel and made the trackpad more OSX like, or contribute code to the GUI, but I don't have time avaible, so I have no control over Linux either.

People on linux are always see the things you are able to do with infinite time available, and that's is not always the case.

jillesvangurp profile image
Jilles van Gurp

I've considered switching from mac to linux on a couple of occasions. All the developer tools I use are OSS and work just fine on Linux. I need Docker, a jdk, intellij, maybe a bit of node, python, bash, etc. Vs Code is essential as well. Stuff like that. I can probably be up and running in a few hours on a generic Ubuntu laptop.

I have dabbled with linux distributions since the day they came in the form of slackware and 27 or so disks that I had to download. It never stuck on my desktop but I spend a lot of time sshed into servers running Ubuntu. Automating devops on Ubuntu, building docker images for Ubuntu. I say Ubuntu, not Linux because if you don't use Ubuntu, you are a second rate citizen in the linux world.

You'll find instructions for running many things on a mac and usually for Ubuntu. You might find some for other distributions. But typically, if you are not on Ubuntu, you are on your own. Configurations may be in a different place. There may not be a package that plays nice with the stuff you need. I remember dealing red hat professionally, or as I jokingly called it: the wrong fucking version of essentially everything I care about packaged up incompetently and indifferently ages ago when that stuff was already obsolete. Thankfully we have docker these days to shield us from shitty package mismanagement. Made my life a lot easier dealing with configuration management.

Things are a lot easier today in terms of hardware support. I have a parent with an ancient laptop on a dito version of Ubuntu.

But nowhere near as easy as getting a new mac. But you get all the nasty issues like the trackpad not being quite right, high resolution screens still being a bit of a PITA, dealing with non work essential stuff like getting some decent drivers for your video card working, your screen glitching on boot, making sure energy management actually doesn't roast your battery, and dealing with buggy standby behavior and the uncertainty that any of the stuff you fixed may need fixing again on the next update. Stuff like that requires a lot of googling, trial an error, and your mileage may vary with distribution versions, hardware platforms, etc.

If somebody does a well supported, hassle fee Linux platform I'd consider it. IMHO Google is making some smart moves with Chrome OS here. That might become a viable development platform with well supported drivers, slick end user ready applications, and you can run your assorted development cruft as well.

So, I chickened out last time my laptop came up for replacement and got a Mac. Was up and running two hours after booting it. All my apps, settings working as they should. No driver issues. No endless fiddling with configuration files. Of course the keyboard sucks and I'm glad I didn't get the nvidia option from Apple but went with the AMD one.

moopet profile image
Ben Sinclair

I can't remember the last time I had to do any of that sort of stuff. I've gone through phases where I've spent days tweaking things, and sometimes breaking them, but not because they didn't work out the box on any modern desktop distro.

aghost7 profile image
Jonathan Boudreau

I don't edit clips, but I've used Ardour for a while on Linux to do some basic mixing. Its just as fast on Linux if you know how to use the software that's available. I think at the end of the day its all about whether or not you want to invest the time into learning alternative software.

moopet profile image
Ben Sinclair

I think that free software with open standards should be considered the default, and proprietary takes on the same thing should be called the "alternative", personally.

ld00d profile image
Brian Lampe

What I read from the original quote is that the Linux community can be hostile to complainers, and they will make you feel bad for asking a "stupid" question.

Most applications have minimal configuration, simple things like preventing the laptop to suspend when closing the lid are hard to achieve

I have a friend that's fighting this as well. It appears the only option is to get a usb plug to fake the OS into thinking an external monitor is attached. The plugs are very inexpensive. Less than $10 US.

You're very on-point about how little capability you have to alter the UI in MacOS compared to Windows and Linux WMs. I would dispute the following, however.

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.

iTunes is not requisite to anything on MacOS -- and neither is iCloud. You have as much control over your data as you want. On Windows, you have less control over your data -- or at least what Windows wants MS to know about your data.

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.

You can get the battery replaced in Macs, and it's fairly reasonable compared to replacing the whole machine. The prices are on Apple's website. Whether or not you can replace your own battery on a Windows device has nothing to do with the OS. Also, Windows runs on Macs!

jitheshkt profile image
Jithesh. KT

(less so on “rolling ditributions” lie Arch Linux, although it is still possible with extra care …)

You mean like right?

dmerejkowsky profile image
Dimitri Merejkowsky

Indeed. Typo fixed, thanks.

ahmaddeel profile image

Nice introduction to Linux, thanks