The ways of Wayland
lwn.net
lwn.net
The rendering modes modern applications use (SHM and dri2) are already just swapping image buffers around. The applications(the toolkits mostly) are doing all the rendering. So you if you are accessing X11 remotely you are _already_ sending image buffers over the network. Wayland can will be no worse at that and can potentially be much better.
[1] http://xpra.org/
Any Linux VNC server worth its salt already support tunneling RFB over ssh. To take it a step further, you would just need very little display server support for an ssh server to request the framebuffer of an application it opens and send it via RFB or the vnc server to the client.
And I'd imagine Wayland already has some mechanism for other applications to read somethings frames. If it is generic enough, ssh should be able to use that. My only concern is that Wayland would need to be rendering programs but not displaying them locally, and I don't have any understanding of Wayland's internal implementation enough to know if it supports hidden windows like that.
"We think it's going to be better at remoting than X," Stone said, or at least it cannot be worse than X.
That is encouraging. I was worried that they were going to simply drop support for opening remote windows altogether. It looks like they've learned from the behavior of graphical networking outside of X.
As I understand it, it's going to only support forwarding of the whole desktop (like VNC). And this would be a huge functionality regression.
In my opinion a browser window running Javascript is a much better 'remote window' to an application on a server elsewhere than X ever was.
This is one of the reasons why Wayland is, after 4+ years, still not seriously deployed anywhere. It's easy to sit back and pontificate about how things "should" be. It's a much more involved proposition to actually getting around to breaking people's software. No one wants to pull the trigger with Wayland.
And, I suspect, that's part of the reason Canonical went with Mir (and for the record: I completely agree that the technical justification there is bunk). Wayland is forever-evolving and never quite there. Shuttleworth wants something to ship. If your requirement is to pull a trigger, you at least want to know that you own the gun.
Is that good or bad for Ubuntu or the community? I don't know and won't try to guess. But I will say that at least some of the ire directed at Ubuntu might be better directed at the Freedesktop folks for not getting something ready years earlier.
Basically, if X sucked so much, why wasn't there more urgency directed at replacing it? Crying now because someone else got there first seems counterproductive.
"local X client executable" + "local X server" + "remote server"
or
"local X server" + "remote X client" + "remote server"
Which can't be replaced with:
"local browser" + "remote script" + "remote server"
There just seems to be a wealth of tools to support that.
That said, I am not sure that people using X11 is why Wayland hasn't really been present. There really is a bunch of things that all have to be true and getting all of those things true has always been difficult, and its even more difficult in open source.
My background is from Sun, where we had this cool set of applications and stuff called "SunTools" which were awesome but not widgety. Dave Rosenthal was a big proponent of X11 and after a few years it looked like it might be useful and Sun put a lot of effort around aligning the kernel the user land tools, the libraries, etc. We all worked for the same company and it was still a horribly arduous task. Because of that experience, my feeling is that Wayland's progress has been par for the course for something which changes as much of the underlying stuff as it does. There is a lot of change in there.
We also may disagree on Mir, I think Canonical is backing Mir because they "own" it, and got tired of waiting for negotiations to settle out before moving forward. I don't know of course, I don't have any inside knowledge, but I do think the rate of implementation Shuttleworth has pushed for is antithetical to something that needs as many players in the game as Wayland does and still leave it open to consensus decision making. I been building a Weston based application off and on the PandaBoard for a couple of years and have followed events around there a bit. A lot of strong, correct, and incompatible opinions makes for slow going. Part of the challenge is everyone brings their own requirements which makes their opinion more applicable. It looked to me like Canonical said "We're going to align all decisions on this to the point 'makes Unity Next work well'"
My guess, is that X has survived as long as it has because the pain of replacing it is great. However I predict that once either Mir or Wayland hit the tipping point people will abandon X rapidly and leave it in the dustbin of history. Only time will tell.
> The first important idea is that in Wayland, every
> frame is regarded as "perfect." That is, the client
> application draws it in a completed form [...]
This is interesting, but also seems to run counter to recent work on the importance of very low latency feedback. See John Carmack's recent article on latency mitigation for VR headsets[1][2] for a very detailed example of this issue. Similar ideas also apply to touch[3][4] and even good old keyboard & mouse input schemes. There's a tradeoff between "perfect" frames and latency (see Carmack's post). From the quote, it appears that Wayland's design choice may limit achievable latencies for low-latency applications.[1] http://www.altdevblogaday.com/2013/02/22/latency-mitigation-...
[2] #1 on HN: https://news.ycombinator.com/item?id=5265513
This is one of the reasons people think iOS is so "snappy." It goes to great lengths to never show you a partially-drawn frame. If you compare Safari to say Internet Explorer on Windows RT, you see that IE looks like ass when rendering complex pages, because it'll happily show you frames it's done laying out yet.
Check the last two comments.
This article is about Wayland. Do you have any thoughts on Wayland? Weston? The future? X, even? Maybe some specific question about Mir and how it relates to thing things Wayland wants to do as well? The advantages of one vs the other? No? You don't have anything constructive to add? Greeeeeeeeeaaaaaaaat.
It's times like these I wish I could downvote a comment more than once.
"The most important principle on HN, though, is to make thoughtful comments. Thoughtful in both senses: both civil and substantial."
Or maybe you're agreeing with me? It seems strange to redirect me to the newbie guide then.
The definition of constructive is to serve a purpose, whether negative or positive it doesn't matter.
What the manufacturers decide to do is critical, and I promise you they aren't taking some kind of meritocratic open-source approach to evaluating where to place their resources.
I am worried that the manpower will be divided and that minor decisions now will fuck up cross communal efforts. That's a reasonable belief.
Wayland is already at 1.0, and has support from Valve, Nvidia, and AMD behind it. I don't see it disappearing soon. Especially since the implementation of Mir isn't even usable yet (while Wayland is).
Nvidia http://www.phoronix.com/scan.php?page=news_item&px=MTE5M...
AMD http://www.phoronix.com/scan.php?page=news_item&px=MTE2N...
A great pity.
[1] https://plus.google.com/100409717163242445476/posts/jDq6BAgd...
If so, that's a pretty interesting development.
---
EDIT: Thanks for the update ElliotH!
They've given a specific list of reasons. If you're going to complain about it, at least refute their specific technical reasons if you want your complaint to have any credibility.
Reasons that mean nothing to those of us that don't understand display servers and/or composting.
If you're going to complain about it, at least refute their specific technical reasons if you want your complaint to have any credibility.
I can't, and I don't think any of us meaningfully can unless there are some X, Wayland or Mir developers lurking around HN.
But I think the Wayland dev's google plus post [3] mailing list post [2] and IRC log [1] all give the impression that that list of reasons offered up by Ubuntu is, at least in part, bunk or could be addressed upstream in wayland. An upstream project that Ubuntu was already involved in for years and had the power to shape but never actually voiced their concerns when wayland's architecture didn't meet ubuntu's requirements. Ubuntu is free not to reveal the real reasons behind their decision, but unless they do the whole thing is dripping in Not Invented Here syndrome.
In fact, it seems like from the Wayland community, the problem isn't that Ubuntu is striking it out on their own, its that they're distributing a bunch of miss-understanding about Wayland in the process.
01:16 <RAOF [Ubuntu dev]> We're not forking wayland; that's part of what krh [Wayland lead] is annoyed with?
01:17 <Prf_Jakob> RAOF: he said he was annoyed with you having a wiki page full of missunderstandings of how wayland work.
[1] http://pastebin.com/KjRm3be1[2] http://lists.freedesktop.org/archives/wayland-devel/2013-Mar...
https://plus.google.com/100409717163242445476/posts/jDq6BAgd...
But it seems to me that the main problem Canonical had with Wayland was that they wanted to run their stack on devices that only had Android device drivers. As far as I can tell Wayland relies on things like KMS to function, and at the very least Firefox OS has no plans to use Wayland because they don't think they can get it to use the Android drivers they're planning on using.
Is this a limitation of Wayland or the reference implementation? If I'm not mistaken the server needs a modesetting api, not necessarily KMS.
The server runs on top of a modesetting API (kernel modesetting, OpenWF Display or similar)
This means that the closed-source drivers are tightly coupled with X and can only be made to work with Wayland by the Nvidia and AMD teams themselves.
Now Ubuntu comes along, looks at wayland and decides that it is not good enough for some reasons they _hopefully_ have thought long and hard about and starts working on an alternative.
But Ubuntu actually has enough clout to convince AMD and NVidia to work with them on this new system. This means wayland is effectively shut out and might as well call it quits.
So the awkward thing is that we were promised a clean, fast well architected system for years which after years of development finally reached 1.0 and seems to be quite usable. At that precise point the only company capable of making wayland real-world stuff changes his mind and decides on going all-in on some software we don't know if even exists yet and for some magical reason is better than Wayland.
Everyone is just stunned :P
2/ NIH is a bad reason for parallel projects.
3/ The major reason that nothing has unseated X, despite its very longstanding, well-known problems, is because nothing has had momentum until Wayland. Canonical seem determined to deep-six that momentum with a piece of software that will require other Linux environments to buy into a company-owned replacement. This seems likely to fragment the effort it a toxic way, with two incompatible replacements splitting not just graphics development efforts, but splitting app developers.
GNU GPL v3, GNU LGPL v3, MIT / X / Expat Licence, Other/Open Source (Boost Software License - Version 1.0) Commercial subscription expires 2022-09-24
https://www.gnu.org/licenses/license-list.html :
Boost Software License (#boost) This is a lax, permissive non-copyleft free software license, compatible with the GNU GPL.
The problem with downward compatibility never completely goes away. But the closer it is handled to the base the less people have to care about it.
Now there is on the other hand a point where you could say every application programmer has to do so much extra work because the protocols are outdated and overly complicated that breaking downward compatibility will make the life of the average application developer easier. Not an exactly defined point in time - definitely way less obvious than the moment where compatibility is broken. But I guess that's when the break should (have) happen(ed).