On Mon, 9 Jun 2025, Lyude Paul wrote:
Most of the people working on Wayland also worked on X11, a lot of lessons from X11's development specifically influenced Wayland's design. I think it's very much worth noting this because people talk about X vs. Wayland as if a separate project popped up next to X11 out of nowhere, but the reality is a lot of us see Wayland as the natural progression to X11 because it allowed us to be free of some of the constraints that come from how the X server is designed, like heavy round trips in its protocol, the fact that most modern compositing on X is just extension on extension on top of the actual X11 server which no longer does half of the things it's supposed to handle.You know X server used to draw its own widgets? It also has font rendering, a HAL for video drivers and input drivers, and more. And almost all of this stuff was out of use well before Wayland came onto the scene. Client toolkits do their own rendering (easier, faster, much more flexible), and font rendering. Save for nvidia's video drivers, we had pretty much stopped using the HAL for new input and video drivers as well (xf86-video-modesetting and xf86-input-libinput work for p much all hardware. There's a huge amount of stuff like this baked into the server, but very little of it makes sense on modern operating systems and much of it is really constraining.X wasn't "badly designed" per-say, for what it was I'll absolutely say it was a wonderful piece of software and it did its job well. But it's also designed for an era of computing that is much different than how most modern desktops work, so for a lot of the functionality we wanted to see in Wayland the only way to have implemented it in X would have required breaking people's setups. So, technically speaking splitting the development off was kind of a given in some sense anyway. Even if we didn't move work to Wayland it's more likely work would have been on an X server that didn't really resemble X11 and wasn't 1:1 compatible.
One thing that really liked about old X is that the widgets in Xt library had symbolic names. With an Xt application you could get those names by firing up a tool and clicking on a widget. This allowed you to script any Xt application, which was very cool.
The closest one can get to this nowadays is Tcl/Tk, and you only get the names from within the interpreter.
best Vladimir Dergachev