777 karma · joined October 16, 2010
They are clearly better, simpler and more tested then the conglomerate of protocol mess pertaining the Wayland ecosystem.
> The X11 protocol itself is insane.
According to whom? I would call Wayland insane. This is just your personal opinion
> Wayland does not have a perfect world here
X11 is not great, but Wayland is far worse also in this case. I agree.
> XInput was also not enough, so there is now XInput2.
X11 is designed to be extended. Wayland manages to be worse than all of that.
> Inter-app communication is handled via ICCCM
Wrong! ICCCM standardizes communication between window managers and clients. Which is one of the strengths of X11 and allowed a plethora of niche window managers to flourish.
X properties are not "abused" for IPC. They are a central part of it and far more elegant than abominations like dbus or Wayland.
> QXcb is known to have race conditions
Qt is more concerned with portability than being a X11 toolkit. That's why they are having problems.
> However, the design issues that X ran into are basically cemented into history at this point, and that's why it is not a viable path forward.
There are zero design issues with X. With the right extensions it can be a "viable" path forward.
> If your needs for a desktop haven't dramatically changed in the last couple of decades X11 is objectively better.
Indeed but even for today's needs in a world where screen sharing is one of the most important tasks of desktop computers X11 manages to be miles ahead of Wayland which does not even standardize basic functionality like screen sharing.
> I'm arguing that we need something that we can actually fucking improve and build the future on top of, and between X and Wayland as a base, it's not even close. It's Wayland. It has been Wayland.
What is your argument here? Wayland is shit but it is "the future"?
X11 is extensible by design and has been extended many times. In this way it "survived" many generations of graphics hardware starting from dual ported RAM and ending with GPU's where one is more powerful than all computers in the world combined at the time X11 was introduced.
> When most people talk about Wayland shortcomings, they're talking about things that actually can be improved and fixed, in some cases they're being fixed right now, in others it might take time but there's paths forward.
Waylanders are "fixing" things for 16 years now. This mantra is getting bit stale to say the least.
> When most people talk about X11 shortcomings, they're talking about things that will never, ever be fixed. Ever.
What exactly can never "EVER" be fixed on X11. Can't think of a single thing.
> The only thing that's been entertaining to me is that X was always the bane of our existence and the butt of many Linux user's jokes in around 2004
X11 was bad in 2004. But so was every other operating system that had to deal with a new type of graphics hardware. It was a symptom of technological progress.
Wayland was never great and due to the politics, its idiotic design and protocol hell it will never be.
> Now the impetus to move on from X11 is suddenly seen as hasty, despite the fact that it is definitely severely overdue.
The only thing that is overdue is putting Wayland into the trash where it belongs.
You are you talking about Wayland. Wayland has no or severely lacking mechanisms for screenshots, screen sharing, positioning of windows, window management, window icons, drag and drop, ...
Many of the issues are duck-taped with a clusterfuck of incompatible external protocols which turns the whole ecosystem into a complete mess.
But what do you expect from a severely lacking protocol designed for digital signage and car entertainment systems that is being shoehorned into a desktop protocol.
> Everybody keeps treating this issue like it's just programmers deprecating old code for fun
No. It's all about funding. DARPA (=RedHat) used to fund X11, now it's funding Wayland. That's it. X11 is still to this day the better solution for Desktops, by a long shot.
> while it's easy to downplay the importance of its shortcomings
The only shortcomings that are consistently being downplayed are those of Wayland.
1. Wayland was actually started in 2008
2. Wayland API is not stable even today
Pekwm has my favourite BeOS theme (https://www.pekwm.se/themes/benu.html) because it supports window grouping flawlessly, which turns every window into a potential tab just by dragging.
Besides that, only RedHat and Collabora consultants are pushing for Wayland. People that actually use their computer (as in requiring e.g. drag and drop to work properly) stay on X11 and have done so for the last 16 years.
1.: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/m...
2.: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/m...
But other than that, no, people don't love being in a terminal. It just happens that all open source portable toolkits like qt and gtk do not work via ssh and are in general total abominations for developers and users. The vt100 standard is 45 years old and turned out to be the lowest common denominator to write GUIs for better or worse.
Wayland is optimized for car entertainment systems and digital signage. Is this your 99% case?
> X toolkits since GTK in 1998 have been drawing bitmaps to shared memory.
Not true. E.g. several Gtk2.x rendering backends utilized XRender to draw Buttons with gradients without a single bitmap in shared memory.
> X doesn't have the synchronization features that necessitated Wayland. It's simply not the case that X can do everything that Wayland can do.
The X11 extension "Present" does exactly the same as Wayland concerning "synchronization features". What exactly can Wayland do that X11 can't do?
No strong reference implementation. No protocol for access control and resource sharing. No centralized font rendering (which is a mistake. every app looks different now even when using the same library). No centralized drawing (which pushes things like multi dpi monitors + fractional scaling down to clients). And many other things. Essentially everything a typical application needs except pushing some pixels.
It starts with unsubstantiated claims that X suffers from "bloat" despite being capable of running on a 486 and dismissing the fact that the average Wayland compositor + necessary infrastructure is much more "bloated" than X ever was.
It fails to distinguish between compositing and hardware accelerated blit operations that allow X to display multiple windows without the need for a compositor.
It talks about hardware planes but fails to mention that no Wayland compositor so far is capable of using them whereas X is using them for the mouse for a long time (which avoids mouse stuttering on high GPU/CPU load).
It proclaims that certain protocols are "commonly used" when they are really in a experimental phase or actually not commonly used.
I get it. Linux userland graphics is huge a mess right now. Mostly because Wayland caused a huge amount of uncertainty and fragmentation. At least call it out as such and don't pretend otherwise.
Worse latency and performance (on intel and AMD), xdotools don't work, window managers don't work. Doesn't work without dbus (the first thing I usually uninstall) and additional seat/login daemons which indicates its bad design.
Personally I can't wait until everybody comes to their senses and drops this pile of garbage API and goes back to X11.
It will eventually be dropped like a hot potato, just like HAL.
- Wayland can not render strings. You need something external just to render some other text than "hello world". And depending on the library text rendering will look different for each application.
- Wayland can and will block your render loop for arbitrary reasons (like being minimized) potentially indefinitely. In order to make this application useful you have to put everything concerning rendering in it's own thread which complicates things hugely.
- If you want to have basic functionality like capturing the screen (former simple XGetImage() call) you have to talk to dbus and pipwire which pull all kind of dependencies and require loads parallel infrastructure running. And then you still have no guarantee that it works on every compositor.
You are talking about a very rare niche case where one monitor runs with VRR and the other doesn't. Everything else is handled just fine with X.
> screen tearing.
"No screen tearing" just means forced vsync which is easily possible on X11 with a configuration switch or by using a compositor. Actually forced vsync is one of the great disadvantages of Wayland because it always comes at the cost of higher latency.
> Wayland rocks those two challenges.
And it sucks in every other challenge. Most importantly standardization and development. The Wayland API ecosystem is ultra developer unfriendly and complicated and will pose serious harm to the FOSS landscape which thrives on hobbyist and niche applications. It's so bad it wouldn't be far fetched to call it sabotage. (E.g. look at the hello world: https://github.com/emersion/hello-wayland/blob/master/main.c it's a complete mess)