Updated: October 12, 2020
After I published my recent MX Linux MX-19.2 KDE review, I received a bunch of emails. The responses were quite interesting, primarily because of their bi-polar nature. Some people liked the short 'n' sweet approach, some found it too harsh and/or negative. Now, I've been seeing the mails of this kind for years now, and they reflect your perception of my perception of the Linux reality. All of which boils down to a rather interesting and thought-provoking question: am I being overly negative about the Linux desktop?
Since this kind of topic definitely warrants a more-than-binary reply, I decide to write a little article, which will hopefully shed some light on the thinking process behind this author. As always, there's a fair chance it will be misconstrued, but that's life for you. Now, have a little read, if you like.
The current state of affairs
I've been doing Linux reviews for some 15 years now, roughly 30-40 distros a year, spending tons of hours testing, tweaking, writing. Across this lengthy period, I tried introducing Linux as the primary operating system into my (home) production setup, and never quite succeeded. Investing fifteen years of time into something, only not to achieve the desired result, can be quite disheartening.
Then, if I look at the past 15 years, in the first decade, from roughly 2005 to 2015, I believe I've observed steady progress and improvement in the overall usability of the Linux desktop, including hardware support, filesystem, media support, and alike. Just remember what it was like installing Nvidia drivers back then. You had to compile stuff. MP3 and Flash support were not a given. NTFS write support was not obvious. And tons of things like this, until they were slowly, gradually resolved.
Then, from around 2015 onwards, nothing happened really. The Linux desktop has pretty much the same set of capabilities it had back then. True, the desktop as a platform has not changed much since, but the ecosystem around it has. And the Linux desktop has not caught up. Not only have things plateaued, in some areas there's real degradation of quality, manifesting itself in bugs and regressions. This too can be quite disheartening, as you watch something you love and enjoy slowly wither away.
As a consequence, I've actually scaled down the amount of Linux I use in my production setup. I dual-booted Windows 7 with Kubuntu, not any longer. And I also decided not to use Linux on my new desktop, because I didn't think it made sense really.
The neverending development
But let's talk numbers and actual examples. I won't go into a mega-list of everything that is wrong with Linux. Just a few examples that affect my day-to-day usage. In essence, these are things that actively prevent me from using Linux as my daily driver, for various pragmatic reasons:
Graphics support - The installation of drivers (like Nvidia) is not trivial. Doing it on say Kubuntu, Fedora, CentOS, or Slackware requires completely different procedures. VDPAU, VAAPI, I don't care. Wayland, Xorg, I don't care. I just want a simple solution that works. Except: UHD/4K support is not trivial, fractional scaling is not trivial, video tearing still affects distros at random, performance is less than Windows, hybrid card support is flaky and nerdy at best.
Samba support - The filesystem connectivity is affected by all sorts of problems, including discoverability, authentication, permissions, timestamps, and above all, raw throughput. Overall, Linux distros don't offer more than 4 MB/s (Wireless), which makes Windows interoperability bad. You could say: do CIFS through /etc/fstab, and my answer is no. The year is 2020, I don't want to muck about. Most people don't care and will never resort to command-line tricks. If a distro wants to be "friendly" for "everyone" - then it needs to offer non-nerdy solutions for everyone.
Media support - By and large, there still isn't a Linux media player that hits all the ergonomic and usability buttons. There are tons of players with 70% feature set. Excluding VLC, which isn't a Linux app per se, the availability of codecs and supported formats varies widely among distributions and applications. Playback quality is not trivial, and often dependent on the underlying system configuration. Also tearing.
Battery life - For most part, Windows does a better job of power management on battery-powered devices than Linux. True, for most part, laptops ship with Windows out of the box plus optimized drivers, which help make the best of the hardware at hand, but that does not change the facts. The one exception is low-end hardware, where Linux does a better job. A good example would be my eeePC netbook, which still chugs along nicely.
No Linux killer app - With Windows holding the lion's share of the market, pretty much any standard desktop program available for Linux is also available for Windows, but not vice versa. Furthermore, there are many Windows-only tools that actually work better than their Linux counterparts - the reverse is also true, but in many cases, I find myself at loss. My examples would include: in-vivo imaging software, backup software, office suite, PDF software, image viewing, text editing. For instance, I find Notepad++ and IrfanView superior to most applications out there.
Backward compatibility - This is a huge one. On a Windows 10 system, I can run, without any modifications, applications created 10-15 years ago easily. Sometimes, there are problems, but they are mostly resolved by using the compatibility troubleshooter, which offers Windows XP SP3 among its choices. This is mostly impossible in Linux, for various technological and maintenance reasons - there's work done in this field, but we still haven't reached the level of seamless and transparent usability that ordinary people need and expect.
Consistency - This is another huge one. Saying Linux is all about a choice is rather incorrect. It's a choice in that you can choose the platform you want, but not necessarily be able to do anything you like with it. The inconsistency is everywhere, across the entire stack, both horizontally and vertically. Take any five random distros, and you will notice the differences in: filesystem layout, boot mechanism, system configuration, desktop environment, packaging format, package management. Even something like system logging is not a given. Some distros do it by default, others don't. Some give user read permissions to logs, some don't. Text logs vs. binary logs (which are sometimes extracted into text logs). Syslog vs messages as the filename. The location under /var versus /run or whatnot. Init vs systemd logging. Rotation policies. Message verbosity levels. Even the line delimiter characters in log files isn't always the same.
Then, you cannot trivially port code from one distro to another. You cannot trivially port from one distro release to other releases, both backward and forward due to the intricate system of shared library versioning and dependencies. The commands to get certain actions done are completely different on various distros. Now, the rise of self-contained application formats is a partial attempt to resolve this. Full disclosure: I am invested in this effort, and so I'm not going to go into too many details on purpose. I'll let you decide for yourself.
The consistency problem also manifests in stability and replayability of results across different distributions and their releases. If you look at the typical four or five use cases for the average home desktop - media, sharing, smartphone connectivity, whatnot - it is almost impossible to find a distro that does not break these in one way or another between consecutive releases. Now, an even more impossible goal: a distro that maintains its own consistency across four or five consecutive releases, let alone the current and current-1 ones.
Fonts - The usability (and by extension, accessibility) in most distributions is bad and remains unresolved. Only two or three distros have good, legible fonts by default - kerning, subpixel hinting, font contrast, color, all the fine bits that make reading a joy or a torture.
Documentation and QA processes - Apart from the wide variance in how distros present themselves, what type of websites they have, what kind of styling and theming they use to distinguish themselves, most distros also have no formal, defined testing process or up-to-date documentation. I am fully aware that this is not trivial. It takes a dedicated army of people to maintain excellent information, and an even bigger one to define and run rigorous testing before it goes into the users' hands. As a rule of thumb, there ought to be ten software testers for every one developer, alas the reality is quite the opposite, if there's any validation done to begin with. Unfortunately, this is a global trend, the whole move-fast-and-destroy-things nonsense, which brings no value whatsoever to the end user. But with Linux distributions, things are even worse, as bits and pieces of code come from hundreds of independent sources, before they are put together into a badly integrated whole.
Product vs project - Finally, most distributions are just volunteer efforts by passionate people working on what is essentially their hobby. There's absolutely nothing wrong with that. It's actually very cool that people can express themselves in a fun way. The problem is when these efforts are offered to the general public. Most people expect products. Linux distributions are not made as products, and going from a joint fun effort to a serious product takes huge amounts of time and money.
And then, there's me ...
Ignoring reviews for the moment, all of the above makes it very hard for me to adopt Linux in my production setup. I want to. Linux was my dearest hobby for a long time. I changed my career - going from working as a physicist in the medical industry to doing high-performance computing and such - because Linux. I had such high hopes, such high expectations for the Linux desktop, and they never realized.
Would I like to be able to use Linux 100% 24/7? Yes. Alas, I cannot *.
I need Windows for gaming. Linux gaming is still a fraction of what you get for Windows, the compatibility layers are just a bittersweet dream, the performance is not as good, even on the same hardware, plus you have all the other issues I outlined earlier.
I need Windows for office suite work. I need to send my books to publishers. None of them care about ODT. Whatever software rocks your boat, there's no native Microsoft Office support for Linux at the moment. It might change one day, but that day is not this day.
I need consistency and super-long support - I cannot allow things to randomly break. While Microsoft, with its Windows 10 rings euphoria and fast-fast-fast gimmicks, is persistently chipping away at the once legendary reputation of robustness and stability its updates used to be, Windows is still far more predictable than Linux in the home environment.
* Just before you move on, here's my current **, up-to-date serious Linux usage breakdown:
- Slimbook Pro2 & Kubuntu - my most ambitious and thorough attempt yet. Thirteen reports so far. Pretty good, but some rather big issues remain, as we shall elaborate below.
- Asus Vivobook - dual-booting Kubuntu (previously Ubuntu Trusty) and Windows 8.1. Used as a travel machine, with some reasonable results, but the scope of usage is less than the Slimbook machine, and does not replace the Windows boxen in my arsenal.
- Asus eeePC - used to be a rugged travel machine, and delivered beautifully on all fronts. Of course, it had limited scope to begin with, but it did remarkably well, and it still works fine, running MX Linux 18, which happens to be a superb distro release.
** You may also be interested to know which distros I used in my (home) production setup *** over the years:
- OpenSUSE 10* between 2004-2008 (or so), on my desktops.
- Kubuntu between 2008 and now, mostly on desktops and lately on laptops.
- Ubuntu (with Unity) between 2014 and 2018, mostly on laptops.
- Xubuntu, between 2009 and 2019, on my netbook.
*** I did try to introduce CentOS into this setup, alas this effort has always required the use of non-official third-party software sources, which I find unacceptable in my production setup. To that end, even though I like CentOS a fair deal, I've never added it into this lot.
And then, there's me ... testing distros
This is where you get to see an aspect (albeit a fairly big one) of my Linux escapades. Apart from being a consumer, I also try to share my experiences with you by doing reviews. I try to assume a neutral viewpoint, try to be the ordinary person who has no time for command-line trickery, and I dabble in distros, hoping to find one that would delight me for all eternity.
Until 2015 or so, this journey has been bumpy, but it mostly followed a gently rising curve of goodness. Since, the slope has reversed. It's a combination of factors. The desktop is no longer the primary focus of most developers, fact. The quality of Linux system is less than it used to be, interpretation based on facts. My tolerance levels for observing the same old errors and problems have worn thin, emotion. Indeed, the emotional rollecoster has been painful. The worst thing is getting your hopes high, only to have them dashed. How many times should I endure or suffer needless regressions in one of the desktop components? How many times should I allow myself to commit to a system before it suddenly breaks? How many times can a person be disappointed before they give up?
I don't expect the Linux desktop to change for the sake of it. But ignoring the changing ecosystem around it does not help either. Furthermore, even if we ignore everything else, the basics are still missing. I'd like to see stability and consistency as the foundation, before anything else happens.
Why should I have to troubleshoot Samba errors time and time again in 2020? Why? Why should I have to wonder if Bluetooth is going to work? Or if the media players displays song metadata or not? Or if the installer changes my selected language? Or if some random component suddenly breaks and throws an error? Why can't I take smartphone connectivity as granted? Or suspend & resume?
There is a solution (sort of)
Projects need to become products. There ought to be consolidation - 90% of distros, if not more, are just derivatives of a small base, with less-than-significant functional and visual changes. Instead of having dozens of parallel efforts with minimal resources, there could be a small number of efforts with lots of resources. Alas, here, it seems, everyone wants THEIR project to dominate. In other words, it's all about choice, as long as it's YOUR choice. It's a paradox really, but also a reflection of the human nature.
There must be standardization - on every level. Instead of the chaos theory we have right now, there could be one standardized filesystem layout, one standardized graphics stack, one standardized audio stack, one binary format, and so on. Once again, the human nature precludes this from being a reality, or even a practical compromise. This is because Linux is the backbone of the modern computing industry, a fat, fat backbone backed by clear commercial interests from multi-billion-dollar companies. Solutions designed for the business work leak into the desktop space (which also makes them inadequate for home use), and by proxy, reflect the Cold War of Technology among business entities that use and develop Linux-based solutions. This means that not only are we not likely to get a standard - which would imply total domination by a company - if we ever do get one, it's going to be inadequate - like systemd, which might work for cloud machines, but it has no real value for the typical home rig.
There needs to be a major shift of effort from development to support - stable, high-quality products require a huge amount of nurturing and caring. But it would not be fair or realistic to expect a volunteer contributor to a Linux project to drop their passion and work like a grunt on boring tasks like documentation and testing. There's a reason why companies have paid QA departments, and why you often get students and interns working there, because there's no glamor in these tasks. Understandably, no one wants to be the person spending day after day after day running automated tests and writing dreadfully dull reports. The shift from pure development to mostly support would also mean the majority of developers currently working on Linux having no interest or reason to contribute, especially if they are not paid to do so. This is only viable if people get a salary to work on a product, which isn't the case for most distro efforts.
The solution is actually everything that the Linux desktop isn't today - and everything the SERVER and CLOUD Linux actually is! Commercialization of the effort, driven by commercial (money) considerations, with people working on products rather than participating in something that is altruistic, fun and often voluntary. And this is why most Linux desktop distros will never make this transition, and why most people will never use Linux.
This realization is hard and painful for an enthusiastic nerd like me. It is even more painful when you realize that not only can you not use Linux as your daily driver in the everyday product sense, that goal is actually slowly slipping away. Not a pleasant realization.
I also realize that most distros will never change their stance - why should they, they are having fun.
But unfortunately, me testing these distros - I'm not having fun.
My approach to software has always been product-driven, which in turn is needs-driven. I have had expectations and hope for the Linux desktop for many years, and so far, they remain unrealized. Alarmingly, the gap between reality and dream is getting bigger, hence my growing disappointment and negativity. If only things stayed like they were in 2015. But things are worse now actually, because the competition is moving forward.
You could say I'm just ranting. Well, the market share numbers prove me right. The Linux desktop has not dented the Windows share in any meaningful way - and what it did is 90% all because of just one distro, you know which one. Well, physics tell us - if you don't invest energy into a stable system, it will not change. The distros have not done enough to address the glaring functionality issues that prevent wider adoption among Windows folks. There is no reason then why Linux desktop ought to flourish.
There's great fatigue in the Linux desktop world. It's not just me. Check the existing publications, check the online magazines (those that still survive). Check the popularity, the engagement, whatever you like. Even nerds are finding new areas to be excited about. I guess I should blame myself for being naive and idealistic and believing (not too zealously of course, just pragmatically enough), but hey. I learned.
Just like distro developers want to have fun, I want to have fun. And that means not reviewing software that does not make me happy. I will still keep testing Linux distros - so don't misquote me on that - but I will do it not just by focusing on average user needs, stability and consistency, I will also focus on my own fun. A brand new parameter in the equation! Maybe one day, the Linux desktop will rise again. Till then, I will conserve my happy mana. And curtain.