Here is a fair warning: I am salty. Always. I also value usability, beauty, intuitiveness and painlessness above all else (but not necessarily in that order). A good tool is a tool that “just works”, while still providing customizations here and there if necessary. Any piece of software should be using well known shortcuts that are imprinted inside of our brain: Ctrl+Z to cancel, Ctrl+S to save, Ctrl+O to open are a few examples. This is very important for intuitiveness.
This is a work in progress.
This page is not about technical issues, it is about actual issues in day-to-day use. I do not have the technical knowledge behind operating systems, and I do not care. I am a user, even if I am a developer, and as a user, technical issues are not necessarily problematic if they are not visible. They do become annoying if the system throws the problems at your face. If you want a more technical overview of Linux issues, have a look at this blog post (which also shits at Windows a little, oh well).
This page is not strictly about Linux either, it is more about the experience of using Linux, which is why you will see me complain about things which distro maintainers cannot do much about. This is a review of using Linux, without taking into account who the culprit actually is. If it’s an issue, it’s an issue, regardless of whether you can do something about it.
Not all of the points on this page will be sourced, because most of them come from my experience of using Linux. I am not entirely against Linux. It has good aspects, notably in terms of customization and open-sourceness (but even then, the GPL has philosophical issues of its own). It also has received tons of focus from developers, and has a fairly solid amount of more technical applications. Any developer-oriented application is guaranteed to work at least a little bit on Linux. I highly recommend having WSL on Windows for multiple reasons. This very website is made using Jekyll, which requires a Linux system for building things (big thanks Mac developers for forgetting about Windows users, you somehow forgot the majority of beginners, GGWP), and I use WSL to have some Linux on Windows.
So, let’s get started.
Desktop Linux development is highly fragmented. Developers are working on different distributions, but none of them are excellent and they all have different issues – a sort of “pick how you want to die” situation. Do you want outdated software that has a low potential for breaking? Choose Debian. Do you want something fresh and new that is guaranteed to break at some point, requiring a full reinstall? Choose Arch.
This is not a healthy competitive environment like you have in real life. This is a bunch of small teams trying to compete against each other. Emphasis on “small”. Why not join forces and try to make something better, together?
This fragmentation has pretty crappy results.
- Too many package managers: it feels like distro maintainers just love creating new package managers whenever possible. Why not create a one-fits-all solution?
- It is almost impossible to just release something on Linux, hoping that it will work everywhere. You will have to put efforts towards maintaining one package for every distro out there, making sure that all of the dependencies are respected. This issue is so bad that, while we are used to the idea of “cross-platform” software, we now have to also think about “cross-distro” compatibility for delicious dependencies! Some efforts are made to try and have a solution that would allow distributing the same thing over many distros, but yet again, thanks to fragmentation, you have two major solutions for that. Time to invent a “cross-cross-distro” package manager to handle both Flatpak and Snappy at the same time, hurray!
- Nvidia drivers. Hate Nvidia all you want, I don’t blame them for not wanting to try and maintain proper drivers on the clusterfuck that the Linux ecosystem is.
- The fragmentation (and resulting poor quality) of the Linux market is actually what makes Google say “nope, we’re not adding GPU accelerated graphics on Linux, because it would be a bug-factory.” (not an actual quote, but you can read their official position here )
In a nutshell: On Linux, everyone is trying to do their own thing, and because of a lack of developer in all of the small projects, everything ends up being bad.
Software support is just bad. First of all, you must use the command line to install anything. This is, in my opinion, unacceptable. As a user, if I want to install something, I should be able to do it in a few clicks, not by endlessly looking for the right package name for my software, then suddenly realizing that the repositories do not have the most recent version and diverting to download a flaky .deb online to try and have some recent crap. Second, a lot of software that is intended for creation (photo editing, movie editing…) is either not available on Linux, or barely installable, usually requiring a specific distro and lacking in performance due to shitty graphics card support. Other common proprietary software like Spotify or Discord also suffer from this. No, I do not want to manually install a tarball, thank you.
Here is a list of software that is not available for Linux and are personal deal-breakers.
- Microsoft Office (LibreOffice is slower, has less features and looks horrible)
- Chrome, but with hardware acceleration
Everything is in the title. Linux won’t stop tearing, an issue you only know on Windows if you forgot to enable VSync in video games. This literally never happens on any recent Windows machines, yet I have systematically encountered it on Linux on all kinds of machines. It can be fixed sometimes, but requires diving deep in X settings, hours of research on the Internet, while I could just use Windows and never have that problem at all.
If you suffer from tearing on Linux, I’m afraid that there is no cure.
Random list of annoyances
- KDE has a… fun kind of issue of its own. Its components tend to crash when they are updated, which actually led to being unable to shut the computer down entirely, because the list of options for shutting down or restarting crashes! The current workaround is a good ol’ dialog box with three buttons instead of the nice, elegant screen you usually get. This is better than having to go to a separate TTY to stop the computer, but it’s still not great. Imagine how much shit Microsoft would get if Windows crashed systematically when Windows Update is doing its thing. That rarely happens nowadays, and it’s certainly not systematic.
- Color profiles. I don’t know if it’s just me, but while Windows looks just fine on my computers, Linux always has a much less pleasing color profile, with colors looking too contrasted. That is probably just me, so I’ll give them a reluctant pass on this one.
- Discord’s notification icon either does not exist or is blurry in KDE’s taskbar. The icon never changes in the application list.
- Sluggishness. Linux animations either don’t exist (for the true h4ck3rs who don’t mind having a desktop environment that comes straight from 1980), crash, or are very sluggish and don’t feel as fluid and natural as they should be. They just don’t feel “smooth”
- Worse battery life on Linux. Sure, out of the box, it may be better, but if you add packages that run in the background to reach feature parity with Windows, you will end up with a system that has a worse battery life, with shaky (or no) battery readings/remaining time estimation.
- Completely random WiFi bugs where the only solution is a restart. Those are way too frequent. For example: WiFi deciding it does not want to connect, unable to re-enable WiFi, no WiFi networks detected for no reason at all…
- Literally no pen support. Windows is particularly awesome for this (the Microsoft Surface software features are also available to anyone with a pen tablet), where Linux goes the macOS way of not giving any shit at all
- Overall lack of polish. You can still see some cryptic messages about ext4 partitions when booting, which is just not clean. Why not show a nice loading screen by default instead?
When you argue that Linux > Windows…
- Remember that Windows has many more features out of the box and that are running in the background.
- Linux would have many more malware than Windows if it had as many users. Windows is being targeted a lot because it has more users, but Linux has security flaws of its own, and kernel updates can take a lot of time to reach the mainstream. And if the security flaws are not caused by the kernel directly, they may be caused by software written in a non-professional environment, where the developers are not really pressured. Also, remember that time where you could just hit your backspace key 28 times to unlock most Linux PCs?
- Stop arguing that Linux being “open source” makes it a better option. The average user does not care about how it’s made, they just want something that’s good. In a restaurant, do you prefer having a disgusting cake where you know how it’s made, or one with a good taste where you don’t know exactly how it’s made. Also note that open source software implies that not only is the code open for all to see, security flaws are also open for all to see.
I have to use Linux, what should I do?
Here is my list of stuff I’d recommend if someone needs to use Linux.
- If you only need to use Linux for small tools, have a look at WSL on Windows.
- Don’t use Arch Linux, prefer Manjaro instead for less pain
- Use KDE or GNOME, though I prefer KDE
- Always use the Nvidia drivers
That’s all (for now)
If you disagree with some of these points, please feel free to write any and all criticism on a sheet of paper, fold the paper 4 times, and throw it in the garbage.
If your reasoning behind the disagreement is “but it works for me!”, then cool, I’m happy for you, but it does not work for everyone, GG on being that one person who does not encounter the issue.
I’ll add more points if I encounter other issues with Linux.