this post was submitted on 27 Dec 2023
274 points (98.2% liked)

Linux

48697 readers
1148 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Well known KDE developer Nate Graham is out with a blog post today outlining his latest Wayland thoughts, how X11 is a bad platform, and the recent topic of "Wayland breaking everything" isn't really accurate.

"In this context, “breaking everything” is another perhaps less accurate way of saying “not everything is fully ported yet”. This porting is necessary because Wayland is designed to target a future that doesn’t include 100% drop-in compatibility with everything we did in the past, because it turns out that a lot of those things don’t make sense anymore. For the ones that do, a compatibility layer (XWayland) is already provided, and anything needing deeper system integration generally has a path forward (Portals and Wayland protocols and PipeWire) or is being actively worked on. It’s all happening!"

Nate's Original Blog Post

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 36 points 1 year ago (2 children)

It's not intended as a drop in replacement.

Backwards compatibility forever sounds great, but the technical debt eventually becomes a giant fucking limitation on improvement. They chose not to stay backwards compatible for a reason.

[–] [email protected] 2 points 1 year ago (1 children)

I agree that at some point you have to be able to ditch technical debt, but you still should be able to do more or less the same things with the new system as with the old system and that's currently still not the case.

The problem is that the architecture of Wayland and the organization around it themselves impose limitations that have a chilling effect on development for it. One issue is that Wayland has been deliberately left very slim, leaving a lot of complexity and implementation details up to the compositor. A compositor can be seen as something that approaches the size and complexity of an entire X display server. This means that if someone wants to create a window manager, they have to implement a whole compositor first. So instead of writing window manager code, which is what the developer is probably the most interested in, they are spending most of their time implementing the compositor.

Naturally this also leads to a lot of duplication of effort. For example: GNOME, KDE and the window managers that have implemented a wayland version each have their own compositor that by and large does the same thing.

Another issue is the standardization of the protocols and interfaces that the different compositors use, or lack thereof. There is a steering group containing the major stakeholders that votes on proposed extensions, but good proposals often get shot down because the major stakeholders can't agree on it and sometimes ego or principles gets in the way. And then you have cases where one compositor just goes their own way and implements something regardless of what the others do.

For example, as a result of this there's still no standard screen capture API, so if you want to do things like screenshots, remote desktop, desktop streaming, ... whether or not you can do that, and with which tool, depends on the compositor you use. Another example: they're currently still bickering over whether or not an application should be allowed to place windows with absolute coordinates, and how that should be implemented. We're currently 15 years after initial release of Wayland...

In my opinion, this is all completely backwards. Both in an organizational and technical sense way too much has been left up to the individual compositors that should have been a core part of Wayland itself.

Unfortunately, it's all too late to fix this. We're 15 years into Wayland development, and the flawed architecture has been set in stone. Wayland isn't going to go away soon either, too many parties are invested in it. So for me the reasonable thing to do is to wait and stick with X11 until the dust settles and something emerges on the other side that is better than what I currently have.

[–] [email protected] 4 points 1 year ago (1 children)

This means that if someone wants to create a window manager, they have to implement a whole compositor first. So instead of writing window manager code, which is what the developer is probably the most interested in, they are spending most of their time implementing the compositor.

wlroots has existed for almost 7 years and this misconception is still repeated.

[–] [email protected] 0 points 1 year ago* (last edited 1 year ago)

I know wlroots exists. It's a library that helps you implement a compositor (i.e. does some of the heavy lifting), but at the end of the day the window manager developer is still implementing a compositor and is responsible for maintaining their compositor.

The mere fact that wlroots, and other efforts like louvre, are necessary at all actually prove my point that it was an idiotic design to push everything off into "compositors".

[–] [email protected] -1 points 1 year ago

It's not intended as a drop in replacement.

... Which is why it "breaks everything"