this post was submitted on 30 Oct 2023
603 points (97.3% liked)
Programmer Humor
32479 readers
293 users here now
Post funny things about programming here! (Or just rant about your favourite programming language.)
Rules:
- Posts must be relevant to programming, programmers, or computer science.
- No NSFW content.
- Jokes must be in good taste. No hate speech, bigotry, etc.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
You're listening to loud asshats and assuming they're the majority. They're not.
One day Wayland will reach a tipping point where it will replace X. Until then, most users will just stick with whatever their distro installs. Most people don't care one way or another.
As for me, I'm probably gonna to stick with X until I have no choice because I actually use the network features that Wayland isn't replacing. That doesn't mean I hate Wayland - I've never used it - it just means it's not the best software for me at this time. Most people never do anything with X that Wayland can't do and won't notice when it becomes the default.
You know you can run XWayland and have clients connect via network?
There's still some development going on in Xorg and it's pretty much all XWayland, it's going to stay alive as a compatibility layer for the forseeable future and beyond. And as a network layer until someone thinks of something better (no, sending video isn't better, the strength of X as a network protocol is that it doesn't need much bandwidth). It's the hardware interface stuff, actually throwing pixels on screen, that's thoroughly dead.
That's cool and all, but why would I want to? Display systems are invisible when they work right, and X has worked right for me (save for some pre-EDID config issues) since the 90s. I run a program, it pops up on my screen and I interact with it. That's all I ask of it.
None of the issues I've had with X (drivers, mostly) will be resolved with Wayland. For me, it's a solution in search of a problem. The only reason I have even a passing interest is that it's (theoretically) easier to maintain and change as computing changes.
I'll move to Wayland when I have to, but right now there's no reason to not use X.
You're welcome to continue to develop and maintain X, wrapping even more duct tape around all that duct tape, noone is stopping you. Or, alternatively, you simply never had a look at the X source code -- I cannot fathom a developer who would be masochistic enough to actually maintain that codebase. It was unsalvageable when the devs started to abandon it for Wayland, fifteen years ago, it's not any more salvageable now.
And if you want to "Fix X" -- that, precisely, is wayland: X is a buggy mess of fundamentally insecure software, developed before "buffer overflow" was a thing people acknowledged as security issue. It's software from the age of
strlen
. It cannot be fixed while keeping it compatible and if you have used X "since the 90s" you know very well how much of a shitshow it is, and it does not just "pop things up on your screen and lets you interact with them". Random thing: In wayland, programs can't focus fight.Yes, there is: Making the transition faster. All this griping people are doing right now and during the last what five years could've been avoided if DEs, window managers, toolkits, etc, had actually paid attention to what the X devs were doing. All those screen sharing and global shortcut protocols could have been ready ten years ago.
Why do I care about the state of the code? It works. Perhaps all these people complaining are really just sick of your proselytization.
To paraphrase Terry Pratchett, "You only get one life. You can pick up five causes on any street corner."
Frankly, the only reason I care is the end-user drawbacks that Wayland seems to have. There are tons of bugs and issues. On top of that, I use Nvidia proprietary drivers which also causes more drawbacks and issues. It feels like at this point a third option needs to be made available. It's been 15 years since Wayland was released and it still has a large amount of bugs and isn't ready for most distros to adopt it.
I've not touched the Wayland or Xorg code, and I've not looked into why Wayland is so broken, but the major issue I see is that it's taken them 15 years to still have a buggy display server. Display servers need to be the most stable you could possibly make them. They need to be made with desktop and fullscreen exclusive apps in mind. They need to be made modern and extendable while also ensuring those extensions aren't able to crash the entire display server. They need to be robust and that's just not what you are going to find with Wayland, or Xorg, or perhaps even Linux in general.
Wayland isn't broken it's new. Let's take, say, global shortcuts: Doing it the X way means that if you can display a window, you can keylog the whole desktop. That's not acceptable in a modern design, so wayland clients are isolated from each other, and the wayland devs simply left it out, saying "if people need this, they can come up with a protocol extension to do it properly". Then, years later, desktop environment devs came around and said "hey, global shortcuts, what about that" and spent two years hashing out a protocol to do it, one that will stand the test of time. It in fact didn't become part of wayland but xdg-desktop-portal, a collection of protocols started off by the flatpack folks to enable interaction across sandbox boundaries: The application doesn't say "hey x server, give me all keyboard input everywhere" but "hey wayland compositor, if it wouldn't be too much bother and it's fine with you I'd like to react globally to this key combination".
And then random software comes along and refuses to implement things and users complain that everything is broken. Yes, code will have to change application-side for Wayland, unless your app doesn't do a single call into Xlib but does everything via toolkit there's going to have to be changes. But what did you expect you're using a library that's fucking 40 years old. A library that was written with the devs fedexing source back and forth because the internet was too unstable to reliably send two or three megabytes over night because it was still a research project.
...and along also come random desktop environments and their devs unwilling to implement standards for absolutely no reason. Not just mostly but pretty much exclusively Gnome. This mpv commit captures the opinion of the wider community quite well. (mpv's main gripe is gnome's lack of support for server-side window decorations, with the gnome devs going "tell your tk to draw them" -- mpv doesn't use a tk and is not about to start to link to one just to draw decorations which the server can do better because mpv couldn't care less how they look or what buttons they have).
Wayland wasn't the first attempt at replacing X. It has made more traction than any other attempt, though. There's no real hurry - it's not like X eats your babies and runs over your dog.
As far as robustness goes, that's mostly the driver. I've yet to see a bulletproof display system, commercial or non-commercial. If you cut out driver issues, X is on par with or more stable than other systems. It had better be, given that it's had decades of bug fixes with few new features to cause new bugs.
Feels like this is entirely just blaming the driver which isn't the cause of 99% of Wayland issues. I know obs, another open sourced project, has caused a lot of issues with Wayland. It's not driver related.
As for xorg not being a problem, in the same regard why even bother with a display server at all. The point isn't that's it's bad it's that there are better ways of doing things.
I wasn't clear. I meant that the issues with X crashing were usually driver issues. I have no idea about Wayland - I don't use it since it doesn't do what I want by design.
X does the job well enough to be invisible to most people. Yes, we need a clean start in order to move forward efficiently (lots of assumptions about computer displays from the 80s no longer apply), but it's good enough for most people's needs.
Why bother with a display server? Some people - like myself - actually use that functionality. It's not part of the design for Wayland. Personally, I think that's a mistake - especially as things become more cloud-based - but I'm obviously in the minority.