Updated: March 1, 2021
In the past few weeks, I read several articles on Wayland. And I thought, what the Internet needs is more debate, not less! So I figured I should add my own opinion into the ether and foster the productive, respectful and totally not emotional discussion around Wayland, the new desktop thingie what shows images on your screen. If you're a techie, you are already flipping, but if you're not, you may be wondering, what? Indeed, for non-techies, Wayland doesn't mean anything. Neither does Xorg.
But the two are display engines, which results ultimately in stuff being painted on your monitor. Xorg is the old technology, a display server, and Wayland is the new display server protocol, and it is meant to replace the former. Except ... this has been going on for more a decade, without end in sight. It boils down to a boss fight of Xorg vs Wayland, and why one is better than the other, and so forth ad infinitum. Now, the real problem is, because this debate is heralded by techies, it boils down to technical details, which is WRONG. The reality is far simpler, far more abstract. Follow me.
Functionality > security
This is the fundamental principle of every single product (including security products). If you cannot use a thing, because its "safety" or "security" mechanisms prevents the core functionality from being utilized in the intended fashion, the product is useless. For example, a Web browser without an Internet connection is possibly very secure from Internet exploits - but it also doesn't do its main function - let people browse the Internet. Savvy?
Why does this matter? Because one of the principal arguments for why we shouldn't use Xorg in Linux is that it is insecure. That of course does not mean the solution is Wayland, and yet, this is a binary conclusion of this discussion: Xorg insecure, use Wayland.
Except ... Xorg is not meant to be a security product. It's meant to illuminate pixels on the screen, and it does this job well. Security can be satisfied in other ways. Specifically, one of the arguments against Xorg is that it allows "rogue" applications/processes to record keystrokes, because of the insecure implementation of the display server.
But there are many problems with this claim. One, it talks about potential scenarios where one could do this or that. Boring. To quote Jim Hacker from Yes, Prime Minister - name three. I've been hearing about this Xorg potential vulnerability for more than a decade now. During that time, there have been zero actual usecases where Xorg was the vector of infection for a Linux machine, and thousands of cases where other things could lead or led to system exploits, like for instance, the kernel, systemd, the browser, and so forth.
Secondly, the fact something can be done doesn't make it a viable threat or one worth consideration beyond a light shrug. A meteor could hit your home any moment. That does not mean you should live in a cave or add ten meters of reinforced concrete to your roof just in case.
Thirdly, logging keystrokes can be done in many many different ways. Why limit the discussion to this being possible with Xorg? Do you know how you prevent such a scenario? Don't have a rogue application or process on your host! Very simple. But then, why not go for malware that is sophisticated enough to install its own driver, or install its own device? Why not something that does all sorts of wonders when installed?
If you have malware on your system, then you have a much bigger problem than the fact once it gets past your perimeter security, it could potentially do bad things. The solution is to make sure that your system does not get exposed or infected, and then, the discussion around Xorg is no longer relevant. Moreover, if someone gets onto your system, it's game over. Not in the movie drama sense, but there's no reason to limit oneself to an arbitrary usecase that serves the narrative. Why not listen to the microphone? Why not delete data? Why not pop a message in your terminal every nine seconds? Lots of options.
And that brings us to functionality in the broader sense ...
Today, there is no parity between Xorg and Wayland. The techies will explain why. The ordinary user does not care, nor will they understand the explanations. People want to be able to do things with their screen, watch movies, whatever. Today, they can achieve this functionality in Linux using Xorg. Let's call that STATE A.
At the moment, Wayland does not offer users STATE A. It offers something approaching STATE A, but it lacks in features and options. I'm not going to go into too many technical details. Words like DPI, display scaling, framebuffer and such are meaningless. The only question is, can Wayland give the users what they need, yes or no? That's all.
The functionality gap has been around for many years - in fact, things haven't really changed much since last I wrote my article on this topic (linked at the beginning of this lovely rant). Lots of applications do not support Wayland. Lots of distributions still use Xorg as their default. If you have an Nvidia graphics card, you probably cannot use Wayland. This might be finally possible mid-late 2021. Roughly 12-13 years after the initial release. That is quite a long time to wait for things to mature.
Now, you could ask, why does it takes so long for Wayland to mature and/or become adopted? There are many answers to that question. One, modern software development, a neverending saga of iterations without any strategic imperative - endemic across the IT industry. Two, supply and demand. Because Wayland doesn't have what it takes, the developers of applications, tools and drivers have no incentive to commit to something that doesn't have the required functionality.
And then, there's the fundamental, existential question: Why Wayland to begin with? What is the purpose for its existence? Maybe Xorg does need a replacement. But that does not mean Wayland is the answer.
I already talk you about this four years ago. Wayland's stated objective (from the official site) is: intended as a simpler replacement for X, easier to develop and maintain.
Now, that does not ring any bells with me, as a consumer. Technology tools need to solve problems, satisfy needs. Unfulfilled need -> problem -> proposed solution -> right tool for the job. Thus, we need to start at the beginning. What is the problem with Xorg? Security? Nah. Maintainability? Perhaps, ergo the mission statement above.
Great. But how does this translate to the user space? Why do I, or anyone for that matter, should care what makes the pixels on their screen dance? Do Windows users care what Microsoft calls its own display manager? Do Mac users care about theirs? Android users? No one cares. They care that they can watch videos and play games.
So it boils down to easier development. Okay. Whatever. This is entirely related to people who work with Xorg and Wayland, it has nothing to do with anyone outside this group. Which makes any online discussion about the merits of these two technologies meaningless. If the functionality is there, great. If not, not great. Then, it's just noise.
If we look across the digital landscape, you see software being reinvented for the sake of it, so that you end up with the same functionality you had to begin with, only done in a different guise. Firefox extensions, Windows Control Panel vs Settings, Plasma System Monitor ... take your pick. This whole thing reminds me of the great demobilizations after the two world wars. If we were suddenly to pause and simply enjoy feature-complete products, we'd end up with hundreds of thousands of software developers who no longer have employment. The wheels of the IT industry must turn, even if that means doing the same thing over and over, only with a new programming language and a new set of buzzwords.
The blame diagram
Alas, it does not end there. Not only should YOU care about Wayland (and Xorg), you're also meant to submit yourself to it. Now, this is a wider Linux problem. Cause and effect being reversed. You can see it in my distro reviews. When I write how distro XYZ doesn't do something on my laptop A or my laptop B, you see people online saying: well, he shouldn't use hardware A or B, because it doesn't work with XYZ.
When I buy hardware, I buy it to satisfy my needs - the earlier formula. When I got meself a new desktop about a year ago, I put an Nvidia card in it. I chose the specific card because I needed its computational power for my work and games. I didn't invest 600 dollars in it so I could throw it away because distro A or B doesn't support it. I don't buy hardware to match software. I put the right software (tool) to match the hardware. And so, I selected Windows 10 (a no-choice choice really), because it's the only thing that will satisfy the full gamut of my needs, hardware and software.
Thus, in this particular case, blaming Nvidia for not working with Wayland - and any other associated topic - is just wrong. Nvidia makes hardware. Their job is not to sabotage their product so it can work with arbitrary bits of code out there. It is the job of software vendors to make their software work with the hardware in the best fashion (if they want to). And the thing is, Xorg does it. Wayland does not (for now).
But breaking things is the new norm - take your software pick. Good product replacements are seamless. However, they require precision and finesse and heavy investment. This is why in the software industry, it's easier to destroy everything than create smooth transition paths. Ideally, Wayland would (or should) have been developed to a point where it provides equal or superior functionality to Xorg and then become available to end users. Not create a new thing and then expect the world to change.
At the end of the day, 1%
We also need to put things into perspective. The Linux desktop - desktop, as in you actually have a graphical interface where the Xorg vs Wayland argument would matter - controls a tiny proportion of the global PC market. To make things worse, the 1% mark has been around for a good decade plus, so it's not like we're going anywhere with any great majesty.
The discussion around Wayland and Xorg affects 1% of users at best - and even then, lots of people don't really care about the technological ingredients in their systems, they just want functionality. The same way you don't care where the flax in your bed linen was sourced, how porcelain in your plates is made, the angle of the spark plug in your car's cylinders, or the composition of the fertilizer at the nearby farm. Those are trivial details behind functionality. They are only of interest to diehard fans.
Meanwhile ... a challenger appears
While we're arguing, ChromeOS gains 10% market share, without any great fuss. Does it offer a simple, complete product for users? Yes it does. Can it run Linux applications? Yes it can. Now just wait for Fuchsia and Flutter to mature, and it's game over.
Back in 2009, which would be 12 merry summers ago, I wrote a hope-infused article on what Linux needs to do to grab 25% market share by 2020. A decade plus later, none of the things I wrote back then have been really resolved in the Linux desktop, but in ChromeOS - most have. Which is why between Xorg and Wayland and arguments over solutions to problems that no one has, the user will choose the simple thing that works.
At the end of the day, people want to watch movies and play games. Call it sad, vain, stupid, that's the reality. If they can do this easily, then they will use a product. If they cannot, they won't. No one is going to wait till 2029 for fractional multi-monitor scaling and no tearing in their videos if they can already do that some other way, be it Xorg, Windows or smartphone. People will choose the most convenient way to satisfy their needs. People don't care about implementation details, they care about functionality.
And this is where the Linux model as a whole breaks.
As always, a big chunk of people reading this article will find it easier to dismiss my words as those of a Linux hater or someone who doesn't understand the technical details rather than focus on the core message. Because it is easier to ignore my philosophical approach to software than remodel the software. It is easier to blame seventy different hardware vendors for their silicon than make the software work well on top of it.
The discussion around Wayland and Xorg shouldn't be about implementation details - those matter to the experts in the field, of course. But lacking any fundamental user-centric reasons why Xorg should be gone and why something (Wayland) should replace it, the narrative must deteriorate to bickering about tech lingo and buzzwords. At the end of the day, the proof is in the pudding. Functionality. Usability.
Can Wayland do what Xorg does today? Does it offer users at least what they have today? Can a person, no matter their tech credentials, achieve their basic needs using this thing? And the answer to all of these is, unfortunately, NO. Wayland is just part of the greater equation called Linux. But it is a great example of a technology tool that intrudes into userspace and breaks the user experience, whereas technology should be the opposite. Totally invisible and silent. Hint: for those of you already rushing for your pitchforks, Xorg isn't the ideal solution either. It also breaks the user experience, only much less than Wayland.
But the Linux desktop as a whole does not offer the seamless functionality that people need, because it is designed with software tools as the end goal and not with the user experience supported by software tools as the end goal. Cause and effect, reversed. Because it's not a product. It's a bundle of tech. And until this mindset changes (extremely unlikely), the Linux desktop will never get past its 1% share.
P.S. All of the images used above, unless noted, are in the public domain.