I've warmed up to the idea that X11 needed a replacement after implementing (parts of) the protocol in Ruby (yes, I want to cause myself pain, clearly).
It's obtuse in a way that might have made sense when first invented (e.g. slotting an arbitrary request byte in the request header for some requests because there's a free byte otherwise used for padding so that the request length can be 16-bit aligned) is just pointlessly stingy now. The way length fields and the lists the refer to might not be adjacent in a packet, likewise.
But then I looked at the Render extension, and realised the problem was less the original protocol - it's easily extended after all - but that the people writing the extensions were so steeped in the same thinking of overgeneralising.
E.g. the Render extension very sensibly - given we've mostly settled on a few formats - dictates a set of visuals that must be supported. Surely then they provide an easy way of obtaining it? No. You need to retrieve every single visual supported by the server. Surely the Render extension will just default to force clients to apply some godawful slow path if they want some bizarro format? No. But they'll at least make it easy to get the default formats everyone actually wants? No - you call a function that provides values for all the visual fields, such as depth, mask for red, green and blue bits and many other things, and then checks that mask and a bitfield determining whether you care about those things, against every single visual reported by the server.
After seeing that - dozens of lines of code whose sole purpose is to work around the fact that the server extension written by the same people doesn't tell you the ids of the required visuals - I went looking at the Wayland spec in utter disgust.
You could easily "fix" X in a aggressive but gradual way in a lot less time than Wayland - the biggest argument for Wayland is not technical, but not being mired in that culture, I thought.
Only to find it's pretty much equally obtuse and overwrought, only in different ways...
I expect to have to bite the bullet and move to Wayland eventually, but it feels very much like a lateral move with no upsides I care about and a lot of efforts that'll make me swear (I used bspwm, there's no port, so I'll need to figure out which of the tiling compositors are somewhat close enough, especially given I heavily rely on bspc to change bspwm's behaviour) and I'll resent every part of it.
I really I wish we got a timeline where someone instead aggressively deprecated old functionality from Xorg in several rounds of purges.