4 ms·
Brother, I'm sorry, but your post was very hard to understand, because you touched on many different subjects and linked several different comments from differe
by stelonix 8y ago
Brother, I'm sorry, but your post was very hard to understand, because you touched on many different subjects and linked several different comments from different times.
I'd like to point out my like of X11 over Wayland is not based on "retrocomputing". I'll try to clarify what I meant.
I know of X11's shortcomings, I have my own pet peeves with it, yet my issues with X are very different from the usual complaints you see in the wild. Although I agree X11 is pretty bad, when compared to Wayland it's like comparing a modern smartphone to a Symbian. I have issues with:
- the async way X11 operates; many, many times I've had clicks that lag a few milliseconds and end up pointing to the wrong window
- the whole event propagation model is awful, making it either an insecure system or a pretty cumbersome system to hook into events
- the over-using of the UNIX philosophy everywhere makes X11 feel like a bunch of brittle parts stuck together with cheap glue; none of the systems know much about each other
- the fact the client needs to be trusted on most of the properties it sets is simply stupid; some clients, to this day, still do not set, for example, _NET_WM_PID and for some reason Xorg developers decided it was a good idea to allow such important Atoms to be OPTIONAL. There are MANY simple tasks that are next to impossible under X11, like figuring out which window has the focus. This is RIDICULOUS
- some of its' internals must be so heavily intertwined together that I still get occasional crashes for reasons completely unrelated to window management or the GUI system
- toolkits; here is probably the number one reason there won't be a year of desktop on Linux: no one coming from any other OS understands why widgets look different, be it an user or a programmer who just wants to make a simple GUI app.
With all that said, the issue with Wayland is that it does not fix any of that. Worse, for some of those issues, it makes it even more difficult to work with.
I come from WINAPI/GDI, and before starting with X11 coding, I loathed it. I now see Windows GDI + WINAPI as the best designed GUI system I've coded for. Even with ALL OF ITS' SHORTCOMINGS, I can do everything I could imagine with windows objects: move windows, focus, unfocus, get keyboard input, change colors, change fonts, change text captions, completely hook into how client AND non-client area is drawn, override event procedures... The list goes on, WINAPI+GDI is a complete, consistent system; and because of politics, X11 devs time and time again refuse to make a solid system like it.
And Wayland comes from all those caveats and does not fix them: it maintains the same stupid politics and makes things EVEN HARDER to work with. It's akin to developing for an Android-like OS on a desktop computer. And the REASONS used to explain why Wayland exists are simply propaganda: they say X11 is old and unmaintainable, the code is awful, yadda, yadda.
Those people must have never looked into the X11 codebase, because it's one of the most well-written and well commented pieces of code I've seen in my whole life. Here, take a look:
https://github.com/mirror/xserver/blob/master/dix/events.c https://github.com/mirror/xserver/blob/master/dix/events.c
So, in conclusion, we do not need Wayland, we need X12, to fix the caveats, quit the over-engineered UNIX-everywhere design decisions, have a standard toolkit and event model, have a standard way for IPC and inter-window communication, sane defaults etc. Wayland is not the answer; Wayland is akin to shooting your only cow because it was infested with ticks! You don't kill the cow, you give her medicine so it gets better, because if you kill her, you'll also lose your daily milk supply! That is not smart.