
Originally Posted by
elanthis
Because there doesn't need to be any. You're either missing some bit of information here, have a grotesque misunderstanding of some of the Wayland fundamentals, or are just being obtuse. :/
Let's ignore the network for a moment and just try to understand how Wayland works. That'll make the network bit much easier to understand.
The Wayland protocol lets clients connect to what is essentially just a compositor and input manager. All rendering happens on the client application. The client application posts updated frame buffers to the compositor. Wayland composites all the clients onto the "display." Wayland delivers input signals to the clients. A few other bits are also done, but that's pretty much the gist of it.
The cool bit of Wayland is that the "display" and input event sources do not at all need to actually be a physical display or OS input devices. They can easily be an X11 window. They can be a hidden surface inside a GUI app test harness that sends scripted input to the apps and records and diffs output frames. They can an offscreen buffer used for compositing over X11, which is what KWin is working on doing (so your Wayland native apps run over X11) and what Weston can already do. They can be just about anything you want, because all the protocol does is coordinate framebuffer updates and handle input events and the like. None of these new applications or special configuration require any kind of new protocol changes. The protocol already works for all of these cases, and more.
This is where networking comes in and becomes so easy. There is no need for Wayland support for networking because Wayland already does everything you'd need to support networking. Since the Wayland server/compositor can easily be any random app (which doesn't even need to have a graphical display of any kind) it's _already supported_ to just drop in any possible networked proxy or remote display system you want. Want VNC? Just write a VNC client that's a Wayland server. Want SPICE? SPICE client that's a Wayland server. Want HTML5? HTTP server with streaming WebM and WebSockets that's a Wayland server. Want something specifically optimized for per-window low-latency low-bandwidth WiFi/Internet remoting of desktop applications? Figure out that new protocol, write a client/server for it, and make the client a Wayland server. _None of these_ will require a protocol change or changes to any Wayland-based applications.
No changes to Wayland itself are needed, period. That's why the Wayland folks are saying they'll worry about it later: because they _can_, because the protocol was designed to be separate from the networking half. It does not need -- nor is there any reason to even want -- the networking aspect to be built into the Wayland protocol itself. The network proxy stuff hasn't appeared yet because nobody who actually does anything but whine has bothered to write one. It's not because Wayland needs some future extension or changes that are being ignored.
There is something lost by this approach which X11 offers. That is remote rendering. With X11, remoting is actually very different than what Wayland requires. With Wayland, the networked proxy would only be sending finished frames across the network, while with X11, the drawing commands are sent across the network. The X11 way kinda sorta works better in environments with very low bandwidth and very low latency, but those networks don't really exist in this day and age; just about everything is decently high bandwidth, and the networks that have bandwidth constraints also have latency problems. The other advantage to the X11 model is that thin client setups allow distributing the actual graphics rendering work out to the actual clients while the Wayland model would require the application server to do all rendering (potentially requiring more expensive application servers, albeit allowing even cheaper and "thinner" clients). I have yet to see anybody actually bitch about this, though; instead we just see "I can't SSH into a box and run an app!" which is a very different use case than thin clients, and for which the Wayland approach will work better anyway.
As a final note, a lot of people complain when they hear "VNC-like" by assuming that means remoting an entire desktop rather than individual windows. All VNC-like means is that the network support is effected by frame transmission rather than drawing command transmission. Pretty much everybody agrees that a seamless per-window approach is a better user experience.
What in $DEITY's name makes you think GNOME is in any way, shape, or form following in Windows' footsteps? Half the reason why everyone is bitching about GNOME lately is that they've gone so far off into "WTF, this is nothing like anything else land" that its' barely recognizable as a desktop at all, much less a Windows-like one. One could only _wish_ that GNOME (and the other desktops) tried to look and act more like Win7; then the Linux desktops might not feel quite so unpolished, buggy, and inefficient as it is.