Continuing Wayland breakage
When I learned that David Revoy had almost stopped making Pepper & Carrot, and that a significant part of the reason for that was that he could no longer with good conscience recommend to professional artists to use Linux, partly because Wayland broke too much, it drove home just how much damage Wayland is doing right now.
Cost of breakage
Users are lost, it doesn't work, and with "the end of Windows 10", I get daily request about it. I published a detailed install guide to address this.
— David Revoy
WTF are we doing? Tools that just worked don’t work anymore after you update something else – that’s textbook volatile infrastructure.
Consider that switching from a now broken application to one that works means re-training people. Yes, we usually do that “as a hobby”, but to see the time that actually takes away from people’s lives, try to think about is as an employer: paying a person to take a one hour tutorial to understand how to map their requirements to new software takes 30 to 200 Euro. Per person. And 30 Euro is for cheapskate exploitative employers.
If even paid devs at major companies have problems, consider what that means for existing tools by hobbyists.
Wayland forces people to change the implementation in mature software, and then Wayland fans blame the mature software that the new implementation isn’t as solid as the one that Wayland broke.
Some of those fans are getting outright ugly, and don’t even seem to realize it:
“I’m not going to tell anyone to stop using the thing you support.”
— Brodie in the video “You Control The Future Of Xorg On Linux!!”
… also (same video) …
“tough shit … maybe not the distro you want … maybe not the desktop you want … go somewhere else.”
— Brodie
Breaking existing systems via an update is always a bad move. Please pledge not to do that. Sign The Software Maintainer’s Pledge.
To at least reduce the damage, Wayland could allow package-manager-installed Free Software to capture, because it can be assumed to be trusted. We’re crippling Free Software, because proprietary can’t be trusted …
Infrastructure is special
This is an answer by Konrad Hinsen that he allowed me to quote here.
There are a few layers of software between developers of X11 or Wayland and users of desktop (or mobile) computing environments. Most users who depend on X11 are not aware of it, and have probably never heard of X11. That's the nature of infrastructure. Do you know who generates the electricity that comes out of your wall socket? Do you care?
Infrastructure requires its own level of governance, which listens and speaks to both developers and users. We have that governance for electricity, but not for software.
Distros could have taken that role, but they haven't. Their intended audience is still techies. Perhaps systems administrators rather than developers, but certainly not the majority of users of desktop and mobile machines. Which is why Windows and Mac continue to dominate.
FLOSS culture has never cared about the kind of users we have today. It was always about sharing code among techies. About freedom for techies. Which would be fine, if everybody were conscious about it. But if you go around encouraging people to ditch Windows for Linux, without saying that they need to become techies unless they want to suffer one day, that's not fine. But that's what happens.
The breakage is real
As was to be expected, in comments many people say “I don’t see problems” and “for me it works”, as if that had ever proven the absence of problems.
Aside: Yes, there have been recent improvements on Wayland, though not these – you can read up on that in the blog of dudemanguy, an mpv contributor.
At work we recently had “can someone else share, my distro switched to wayland and it doesn’t work anymore”.
Luckily that wasn’t a presentation and others could take over.
My distro switched the default to Wayland about a year ago and I had to switch back, because that doesn’t work at all with EXWM. To which I switched, because at some point at work Gnome annoyed me too much.
I had hoped Wayland would be better, but at this point I wish it had been abandoned as sunk cost a decade ago. Wayland is 17 years of time that would have been better spent on improving Xorg incrementally. Even if only half the people had done that.
What about compatibility layers?
Compatibility layers can mitigate the problem, if they are explicitly treated as permanent.
But not if they are treated as temporary stopgap to be deprecated at some point.
Wayland devs added XWayland, but said that this was only for transitioning, and consequently XWayland programs are second-class citizens.
Instead of giving trusted (distro-provided Free Software) tools on XWayland the same possibilities as on X11, including interaction with Wayland ones, X11 functionality was limited to interacting with other XWayland tools, causing gradual breakage at a different pace for different users – the most corrosive type of breakage.
The core of the problem
The core problem is that they thought they’d change things and then every program using Xorg would be adapted by others. Wayland wasn’t less work. It just put the burden on others.
The same mistake Python made with the 2 to 3 transition.
A fact is that in Free Software a third of maintained programs have up to one maintainer.
Many work and solve real problems, but they are in “if something breaks, someone provides a patch and a new bugfix version gets released” mode – that’s for the ones that aren’t maintained via distro-specific patches.
The Wayland developers expect applications to adapt to the new way of doing things. With the assumption that that would be easy.
They initially thought they’d reach the state today after 5 years. The benefits/costs analysis may have been valid for that.
But – as always – the rewrite took a lot longer than expected and the devs didn’t actually understand the breadth of the requirements.
KDE and Gnome both tried to chip in for tools using kde libs and gnome libs, but all the independent tools are left out. Independent tools are the ones that used to work for everyone.
And I personally think that the Wayland devs massively underestimated the complexity of mature multimedia programs.
Pulseaudio broke Audacity,1 now Wayland broke digital drawing tablets and OBS: those infrastructure changes hit mature apps the worst.
Damage that’s being done
When Linux Distros started to be Wayland-by-default, they exposed all their users to the Wayland bugs – and Wayland fans now say: if you use a no longer working application, then use a different application, because it’s a problem of the application.
I read just that in comments today ☹
But Wayland caused the problem.
And maintenance load like the load Wayland puts on other Free Software developers is a major contributor to FOSS dev burnout.
Such changes create an eternal state of breakage that makes it much harder to advocate for switching to fully free systems.
To get back to the start:
It's really difficult to advocate professional Digital Painting nowadays because of some massive bugs and regressions. Users are lost, it doesn't work, and with "the end of Windows 10", I get daily request about it.
— David Revoy: Production conditions are tougher than ever
What have we done? I should have warned much earlier.
Which non-solutions were doomed to failure?
The switch to Wayland was driven by the Xorg maintainers (paid) declaring that Wayland is the future (more than a decade ago) and that who doesn’t join will be left behind.
Desktops and Distros could not just step in, because they had to consider that risk, knowing that they wouldn’t be able to (and wouldn’t want to) manage the maintenance and development of Xorg.
And telling those who need Xorg to just switch to smaller distros needs to ask a question first: do they provide all the tools the users need?
Because users need all their tools to work.
Not just 90%. 100%.
Most smaller distros lack specialist tools or integrations with external hardware and services. So “just use a smaller distro” may work for the hobby boxes of geeks/nerds who can say “then I browse with Emacs” (me on the OLPC …), but for people who need their phones to sync, their headphones to link, their media to play, their games to run, their messengers to connect, their creativity tools to function, their digital pen to draw, their printer to print, their telecon screen sharing to stream, … plug-and-play, it does not. At the very least they need all integrations to just work.
This cost imposed on users is easy to underestimate. If they have to give up a tool they already know, they lose the work they put into learning it.
If 90% of tools work after the change, how many of the users used at least one tool from the 10% that break?
Solutions?
The most important solution is social: getting more people to realize the importance of long-term stability of infrastructure.
And clearly call out companies that fund breakage.
At a certain size of software or at a certain aggregated size of software that depends on it, a full rewrite should just no longer be seen as an option.
If you’re not clever enough to find an incremental, non-breaking path
to a better state, you’re not clever enough to grasp the breakage
a rewrite would cause.
— Volatile Infrastructure
Also never accept “we are not ready, but we are the future”.
How many people got detracted from contributing to Xorg because they got told 10 years ago "Wayland will be ready real soon, then your work will be dead weight"?
Where would Xorg be now if not for that?
I see that as failure in strategy.
And the experience with xz that almost set all Linux distros on fire shows that the programs most at risk of a social engineering takeover may be those that are in production use but are being replaced by hot new stuff (with cool devs moving to the new stuff).
And stepping up Xorg maintenance funding could be essential right now, because even if all cool people should move to wayland, many production systems will depend on Xorg for years to decades (since Wayland does not provide full compatibility).
Sustainability needs care
Infrastructure does not get more reliable with the next big rewrite, but by not doing the next big rewrite. Volatile Infrastructure is worse than volatile applications and we cannot stand on the shoulders of giants if we constantly break old tools.
I think support and preferential funding for people who work on old tools that are deep inside dependency chains could help.
Work on them, improve them, not replace them. Once they are done (that is an option for many Unix tools): optimize them, work on tools connected to them.
So please support Free Software sustainability and sign The Software Maintainer’s Pledge. I can’t force you, and if I could, it would be wrong,2 but I can try to convince you.
I hope I did.
Footnotes:
Audacity by now mostly recovered from the pulseaudio-induced breakage – a decade after that breakage I could finally use it to record with my USB pre-amp again. It took longer to get fixed than the next breakage took to hit.
And to make it clear: Telling a dev that you hate them is always a bad move. You have no claim to their time.