No it's exactly the point. You have to program for X.org if you want a GUI in Linux because X.org is the only GUI in Linux.Arguing over Xlib vs Wayland or whatever other insanity is entirely besides the point.
The problem is, is that the X11 legacy crap is hurtin X.org in thousands of ways and people just want to abandon the extreme latency of X.org by removing Xlib and having their shit run directly from widget toolkits. Try to resize a Window and then... aha!
But then people like to have X11 around and think that Wayland is screwing with their desires, while it's perfectly possible and needed to approach stuff in a different way than the X11 way.
Wayland has its own networking API. The 'problem' is that it's not stable and changing all the time, so no networkeable apps can be made for it.You X server is just a 'browser' for X11 nework protocol. Ideally, Wayland can support X11 or X12 or whatever pretty much as well as your XServer can. (and it already supports X11)
I don't do networking, so I don't care. Therefore I'm wondering why it is that when I resize my windows it's a total lag fest. Meanwhile, I'm being angered by the fact that the Wine project can't even fix a stupid mouse bug related to X.org, because X11 is not supporting it >.< And how about fullscreen.
Everytime I read something about X.org; it isn't pretty. That doesn't mean we don't like to have network transparency, we just don't like X.org network transparency.
It's great to run a GUI program on a server from my notebook, then turn off the notebook, go home and then reattach to the same session and continue as if nothing has happened. That's something that X hasn't ever been able to do without hacks (like a proxy display server).
X could win if it used a slightly different protocol for non-local connections. I don't mean in terms of TCP vs. unix domain sockets, I mean that if a client detected that the server it was talking to was on another machine, it would encode the X requests differently (with compression) and make use of caching (the server would have to play along here). XCB would make this a lot more feasible, but XCB has seen little uptake outside of being used as a backend for libX11 and mesa. Regardless, the X protocol as it is just isn't efficient for remote display.
That said, Wayland won't be efficient either. It seems to me that the best we could do with Wayland is buffer-scraping, which is about the least efficient way to do remote desktop. To make RD possible on Wayland would require that the client libraries be hookable and send their drawing requests to some sort of proxy that then sends the graphics stream over the network in an efficient way. Does the architecture allow for this? If not, then we're better off fixing up the X protocol and tweaking XCB than moving over to Wayland.
I took a look at the RDP spec and it appears that it tunnels GDI commands through the protocol, but since compression and caching are part of the protocol, it can do a better job of utilizing bandwidth than X can.
Bandwidth is the least of X11's problems. People have come up with schemes for compressing stuff on X11, but it only usually makes things worse.
Because latency is the problem, not bandwidth. No amount of compression is ever going to help it. The protocol is just obsolete and the applications that use it are mostly very poorly designed.
X11 is just shitty and outdated. It was pretty cool, but the world is moved on. Even though RDP is superior for desktop applications then X11, RDP itself has been outclassed massively by competitors.
The NT goons at work use Citrix virtualized desktops that provide remote GUI desktops to datacenters that are housed well over 1/3 of the world away. That is, quite literally, we have WAN connections on entirely different continents that provide Windows desktops remotely. I couldn't even dream of doing that with X11. It's a total friggen nightmare in comparison.
People who cheerlead X11 as some sort of remote GUI feature are so far out of touch of reality it's not even funny. Remote desktop and remote GUI applications are now mainstream. People regularly use 'Goto Meeting', Citrix virtual desktops, and all sorts of other stuff. People work from home or on business trips using remote GUI applications all the time. NOT A SINGLE ONE OF THEM USES X11.
I can run X11 on Windows. I can run X11 on OS X. They work perfectly fine. Just as well as they do on Linux. But you know why nobody actually uses it besides some sys admins? Because it sucks and there are far better remote GUI solutions out there.
If X12 can solve this then this would be fantastic. But in terms of network remote GUI access Linux is at least 10 years behind Microsoft. And Microsoft is years behind Citrix. If I am working on a document and my network drops out then I lose the application and what I was working on... I wouldn't have to put up with that shit if I was using Windows. I just reconnect and the application would still be running just fine. That is, very simply, the reality and no amount of compression is ever going to fix fundamentally obsolete designs.
Not only is this approach more efficient, it is also more logical. Wayland is a display server and a compositor and, as such, it composes and displays. It's not a renderer, nor a sound server and definitely not a network server.
Remember the Unix philosophy? "Write programs that do one thing and do it well." Too bad that most people seem to forget it these days.
I also like how he wraps it up: "This window system design isn’t particularly radical: it’s more just pointing out that this is the way that X is going already, given the increasing predominance of application-side rendering libraries. Once you accept that fact and admit that it’s actually the right way to go, the design falls out, simply by stripping away legacy stuff that isn’t needed any more."