More From Canonical Employee On: "Why Mir?"
An anonymous reader writes "Canonical Desktop and Mobile Engineer Christopher Halse Rogers explains in more detail the decision for Mir as apposed to Wayland. Although Halse Rogers 'was not involved in the original decision to create Mir,' he's had 'discussions with those who were.' 'We want something like Wayland, but different in almost all the details.' 'The upsides of doing our own thing — we can do exactly and only what we want, we can build an easily-testable codebase, we can use our own infrastructure, we don't have an additional layer of upstream review.' In a separate post Halse Rogers answer the question: Does this fragment the Linux graphics driver space?"
"Does this fragment the Linux graphics driver space?"
No. That's the point of DRM and KMS. X11, Wayland, DirectFB, Mir, Xynth, whatever all share the same kernel drivers and userspace display and graphics libraries.
This is follow-up to this story from a week ago.
Really? Are we not even going to try to pretend to give a shit anymore?
The stories and info posted here are artistic works of fiction and falsehood.
Only fools would take it as fact.
I can think of no context in which a furniture designer engineer, no matter how agile or standards-conforming would have as similarly viable alternatives a former Russian space station and an animated sycophant.
Go to the comments in TFA about details. There is some really juicy repartee between Seigo (OSS developer) and Shuttleworth (guy who funds Ubuntu).
There is a dust up going on between people working on the replacement for X under Ubuntu, and on the merits or lack thereof in choosing the Mir project over Weyland. Seigo and others make some interesting points, especially about the selection criteria.
Because inexperienced, but otherwise intelligent, people often believe that they can do stuff better than everyone before them, there is a trend among hackers to rewrite otherwise perfectly fine code. Since X dates back decades, according to this line of thinking, it must need to be rewritten. "Wayland" is on such attempt (actually, what they are doing isn't nearly as sophisticated as X). Since Cannonical believes they are the shit, they want to be in control of the X successor. Their candidate is "Mir". I know nothing about Mir. The truth of the matter is that neither of these projects is going to go anywhere because it will require redoing lots of hard word (the video drivers, which are for some terrible reason part of X itself). X could use some work, but destroying the decades of compatibility is not the way to do it. The right way to do this would be to try to gather some kind of very broad support (say... from the developers of Qt and GTK) and get the two of these groups to converge on some modern subset of X, and implement the deprecated remainder as a legacy library. Of course, this doesn't let you "own" the end result, and it requires a LOT of work, so that won't ever happen. Also there's a feud between them, so it's probably impossible to do that.
This just proves what everyone was saying last week. This decision was entirely based on NIH (Not in House) Syndrome. Ubuntu is convinced that they have to spend all their development resources on reinventing the wheel because Wayland isn't an internal project (but it could be).
It wasn't 6 months ago that Shuttleworth was complaining that Ubuntu needed to start making money, and here he is wasting development resources on reinventing things. Between Mir, Upstart, Harmony, and all the others he's going to have forked everything but the kernel (hey maybe that's next!, I hear forking the FreeBSD Kernel is common) and his costs only go up while he spends all his time fixing bugs all by himself. The result will be Ubuntu advancement will slow down, or it will become a buggy POS with no long term security.
Either way I think they suffer from NIH disease and maybe they should consider a fork of the FreeBSD kernel. I imagine it won't be long before Mint/Arch or whatever fully replaces all the popularity Ubuntu managed to create. I already see Mint recommended more often than Ubuntu.
We could have had a modern display server years ago with XGL/Xegl. But it was killed off because Red Hat and nVidia didn't like. Mainly because it wasn't their idea. Now it seems all the pissing and moaning is coming from the Red Hat camp. Well karma's a bitch ain't it.
The best education consists in immunizing people against systematic attempts at education. - Paul Feyerabend
"Myrrh was used by the ancient Egyptians, along with natron, for the embalming of mummies."
Your assertion that Wayland will not go anywhere seems to be predicated on the incorrect assumptions that Wayland is born of naïvety (it's not; it's developed by people with a LOT of real experience working on the current X-centric stack), and that it needs to entirely supplant X to succeed (it doesn't; it deliberately does a lot less, and it can host a rootless X server, and indeed this is the only realistic use case for it on regular desktop distributions for the next couple of years).
Yes, there are many projects that are started for the reasons you describe, and go on to fail for those same reasons. But Wayland is not one of them. That is not to say that its success is guaranteed—but rather only that your reasons to assume its failure is inevitable are invalid.
Wayland does not need to destroy decades of compatibility. In fact, its approach is quite the opposite: to maximize compatibility initially (pass almost everything through to a rootless X server with XWayland if you want), and then offer an optional smooth migration path away from X for applications that don't need its complexity, would like to push the complexity into separate components, or would like to take advantage of some of the things that you simply can't achieve with X today, e.g., flicker-free from boot, to playing a game, and then on to playing hardware-accelerated videos.
You concede that the current state of video drivers being too tightly tied to X is terrible, so I assume you agree that the work has to be done to resolve that at some point, whatever path we collectively take. That also happens to be the only thing I'm aware of that's really holding Wayland back from mainstream use today. Everything else is just little bits and pieces that need to be finished or polished up, and then it could be dropped in to real general purpose distros.
Your assertion that Wayland will not go anywhere seems to be predicated on the incorrect assumptions that Wayland is born of naïvety (it's not; it's developed by people with a LOT of real experience working on the current X-centric stack)
His point wasn't that they are inexperienced with X, it's that they are inexperienced with software development in general. It's fairly common for inexperienced (though otherwise skillful) programmers to decide to re-implement a huge chunk of code in the hopes to make it better. It rarely works out very well.
"First they came for the slanderers and i said nothing."
Apple did it and it seems to be working out just fine. They could have tried to use X but probably had the same reasons as Canonical, full control.
Sometimes the only way to get better results is to tear it all down and start over. You learn from the past but let go of the baggage.
A fool throws a stone into a well and a thousand sages can not remove it.
"doing our own thing — we can do exactly and only what we want, we can build an easily-testable codebase, we can use our own infrastructure, we don't have an additional layer of upstream review."
IOW, Fuck GPL and collaboration.
Canonical better find an attitude. This is why they are disliked by the Debian team and others.
This is also why I dislike Shuttleworth and Canonical - the lack of helpful upstream collaboration.
We know what a disaster it was when Canonical tried to adopt PulseAudio in Ubuntu. Basically they broke audio for no good reason. (See http://en.wikipedia.org/wiki/PulseAudio#Problems_during_adoption_phase for more info.)
Mir would seem to be an order of magnitude more difficult to pull off, since it's to be developed in-house by Canonical, and video is *much* more complex than audio.
Over all, it seems extremely unlikely to me that Canonical is competent to succeed in this.
They also don't seem to have learned their lesson from the PulseAudio experience in terms of "if it ain't broke, don't fix it."
Find free books.
'We want something like Wayland, but different in almost all the details.'
If you change all the details then won't it be very unlike Wayland?
The great thing about Linux is... You can simply choose to not use Ubuntu. BAM! Problem solved.
Maybe.
Having worked on the X Server in no way means their choice to create a new server is correct. Whenever someone forks software that's worked fine for nearly 30 years, the default position is, "they're making a mistake."
Maybe you're right and it's a great thing. We'll see.
"First they came for the slanderers and i said nothing."
I'm almost inclined to cut Canonical some slack here. Almost. I don't think NIH is such a horrible thing if the project in question still isn't anywhere near usable. In a situation like this, it's entirely possible that a team of paid, full time, competent programmers could start over from scratch and quickly surpass the original project. Given equal talent and effort, the Cathedral is always more efficient better than the Bazaar.
However, I haven't seen evidence that Ubuntu possesses the talent or the manpower. Time and again, I've either read about or experienced firsthand halfassed, quite unnecessary 'improvements' while watching them neglect the fundamentals.
So, like most every other thing they've done for the past five years, this decision may be fine in theory (I'm not super familiar with the issues surrounding Wayland, so I can't say for sure), but in practice will quickly become a category five disaster.
His point wasn't that they are inexperienced with X, it's that they are inexperienced with software development in general. It's fairly common for inexperienced (though otherwise skillful) programmers to decide to re-implement a huge chunk of code in the hopes to make it better. It rarely works out very well.
That assumes that X11 was universally well-designed in the first place. It also assumes that experienced developers have been maintaining it (they all got laid off in the 1990s and nothing happend for 10 years). And it assumes that X11 is full of stuff that people care about, when much of it is legacy and not used by modern applications.
Eventually someone is going to have to suck it up and do something. Even if it was removing all the crap and making an "X12".
You're just betraying your ignorance of Wayland. Wayland does NOT replace X windows. In fact Wayland was designed from scratch so that an X server can run in wayland WITH NO PERFORMANCE PENALTY.
So with Wayland you can STILL run your old legacy X11 apps and get decent performance too!
Win win all around! What is the downside?
The comments from e.g. Dave Airlie, Kristian Høgsberg, Daniel Stone are even better, IMO, since they are Xorg/Wayland guys. Though Aaron is certainly a graphics guy, just at a higher level on the stack.
Climate Progress - Hell and High Water
Everybody says "ooh noooo don't kill remote X windows! it's the best!"
except for one thing: IT SUCKS.
Have you ever tried to actually USE remote X? It's just beyond horrible.
The failure is that X was designed for low-latency between the display and the application, and that use case is just not very useful.
In reality the display and the application are connected over a high-latency link and X is UNUSABLE in this context.
VNC does not assume a low-latency link and so it remains responsive and pleasant even over a crappy ADSL connection.
Go ahead and TRY to use Firefox remotely over your ISP connection. It's just a pathetic joke and you will kill it out of frustration before even a single page loads.
Try the exact same thing with a VNC connection and it works just fine.
Not many people were bitching when Google went a lot farther than this with every aspect of Android
There's a small difference: Google wasn't a two-bit Linux shop with a chronic lack of cash.
Android was a two-bit Linux shop with a chronic lack of cash UNTIL GOOGLE BOUGHT THEM
one of the few here who knows what they are talking about
First - it's not a fork. Forks are branches of the code. Wayland is a completely new display server.
And I'll just say I'm glad Apple decided NOT to use X by default on OSX. They managed to create a much more efficient display engine by not continuing to base it on the largely obsolete X protocol. Though, guess what, there is also a perfectly usable backwards-compatible optional X-server you can install if you want (which is a goal of Wayland, and I assume Mir, as well).
So what exactly is wrong with X? Please be specific.
"I know I will be modded down for this": where's the option '-1, Asking for it'?
There is a great Slashdot post from one of the developers of Quartz around 2001 about why they chose to reinvent the wheel instead of using X11. The problem is, none of his criticisms applies to X.org circa 2006 or later. It was shown, by counterexample, that it was possible to add all of the missing features that Apple wanted to X11, without breaking backwards compatibility. And, as part of their rewrite, they lost some separation of concerns and they lost compatibility with X11 applications except via an ugly (visually) compatibility layer. The latter wasn't a problem for Apple, because they didn't want to be running X11 apps, they wanted people to write new Cocoa apps. It is a problem for a system attempting to take advantage of the large corpus of existing X11 apps.
I am TheRaven on Soylent News
We could have had a modern display server years ago with XGL/Xegl. But it was killed off because Red Hat and nVidia didn't like.
The disagreement was purely technical.
The XGL approach caused a bunch of peformance problems for various rendering scenarios (stereo3d, overlays like video) - XGL forced everything through a pixmap to be rendered by GL.
No acceleration using the GPU for video / scaling or anything else.
XGL was cool because it was first and everyone got googly eyed at the effects. It probably was a catalyst in getting the right solution (AIGLX), too.
In other words, all you can do is parrot decades old grumbling.
Alex had more sense than you.
"I know I will be modded down for this": where's the option '-1, Asking for it'?
Canonical is behaving very "weird" lately.
This is an interview with Jonathan Riddell, the lead on Kubuntu [1].
Quotes:
"I only had contact with the Linux Mint developer recently when Canonical claimed that they needed a licence to use the compiled packages from Ubuntu. This is a dangerous misunderstanding of copyright licencing from a company which should understand it. I advised Linux Mint to say some rude things to Canonical but I think they're too polite for that."
"Canonical has the trademark of Kubuntu so they had to get a trademark licence from Canonical which took many months of long and slow negotiations. It was very frustracting to have Canonical be the blocker for part of the Ubuntu community since Canonical should be an enabler for the Ubuntu community (at least when we don't compete directly). So we did look at changing the name of Kubuntu but were told by Mark we'd be kicked out the project if we did that which would be a worst case scenario for everyone."
"Since then Canonical has started asking for donations when downloading Ubuntu and one option is to give "Better support for flavours like Kubuntu, Xubuntu, Lubuntu Slider thumb". Kubuntu has never received any of these funds or seen any better support, so this is a disappointing case of fraud."
[1] http://www.muktware.com/5369/how-will-changes-ubuntu-affect-kubuntu-exclusive-interview-jonathan-riddell
I think I am soiling Alex' memory by comparing him to you.
"I know I will be modded down for this": where's the option '-1, Asking for it'?
I mean, NIH is one thing, but this kind of thing goes way past that. Ubuntu is in the full-throttle grip of CADT.
Canonical wants to get into Mobile devices. Most of that hardware has closed source display drivers for Android (and iOS devices are totally off the radar). They want a GFX stack that is compatible with those drivers, to more easily get compatibility. They can't get that with Wayland. Cheers, Nick
the merits or lack thereof in choosing the Mir project over Weyland
Embrace. Extend. Extinguish.
One day Git will be Bzr. One day Gnome will be Unity. One day X will be Mir. One day Linus Torvalds will be a gray-haired beggar on the street, still acting like an immature teenager, implying that people on the LKML would do better spending more of their time sucking cocks; and Canonical will be running the new, improved, coded-from-scratch, Linux-compatible Ubrik kernel.
Support my political activism on Patreon.
OS X is certified Unix. It's not X, but X isn't Unix.
The UI has a lineage going back to the 1984 Mac (and Lisa) but everything else is NeXT/OpenStep.
Do you even lift?
These aren't the 'roids you're looking for.
Yes, InternAtom requires a round trip, but only a newbie would use it often. If you have a lot of atoms (and any nontrivial X11 application does), you use the XInternAtoms call, which will stream all the requests into a single round trip. You can also use libXcb and do that to all the other calls as well. With proper design you only need 3-4 roundtrips to get your app fully loaded.
What features are missing from OS X's display system that were present in OS 9?
The OS9 Finder' which was powerful
Use of Fitt's law in design
Interface consistency
First controls differ in location and in tone
Symbols consistent with actions.
Clickable action and light up zone matching
Variable spacing for controls as a preference
Control of justification and spacing on the menu bar
etc...
This cult of Apple admirers would be amusing if they weren't potentially so destructive. They seem to blindly follow Apple without actually having any real experience with the product. They just swallow the usual media hype wholesale and then go on to replicate Apple's mistakes.
They also don't understand how an X server relates to the rest of MacOS.
Broad generalizations and assumptions never helps your point. I have worked on kernel and userspace graphics and video overlay drivers for Linux/X11, so I know plenty about how X11 and display servers in general work.
I do have a Mac. I also have a PC running Windows, and one running Linux (and honestly at this point VMs on these machines running more than one OS at a time - with fairly good unity/coherence modes, as long as we are talking display servers and window managers).
Some of us use computers as tools for accomplishing what we want at work, home, entertainment, etc and have no interest in blind Apple admirers OR blind Apple detractors (or Microsoft, or Linux, or any other software for that matter). Why does technology have to be like politics to some people?
(oh, and to your other comment, MacOS is more "UNIX" than Linux is, and is certified SUSv3 (for what that's worth, but it's worth more than your opinion on the matter).
Apparently you have never programmed with X11 , because that is one of the most stupid comments I have ever heard and bears no relation to reality.
The X protocol contains various graphics primatives, facilities for dealing with fonts, setting colors, color managment facilities, and so on. There are extensions for non-rectangular windows, for faster video, shared memory buffers, and other things that have become desired over the years. There is really nothing in X11 that an application could not use to render its user interface. Nothing really useless. It is concievable that an application could use all of the features the X server provides and use them well and many still do. So the feature are there because applications may need to use them and to make sure applications continue to be supported.
What has happened is that some x11 extensions have been offered that offer an alternative way to do things, such as with handling fonts. This added some capability, but the additional capability is not necessarily needed by all apps. Programs can still use the old way and things will be perfectly fine and functional.
The way you talk about things you make it sound like X is bloated. This is an old canard that goes back to the days when 1 MB was a lot of RAM. X is only bloated if your computer has 1 MB of RAM. X itself is lean, in fact, esp. in comparison to modern software like Firefox, taking only a few megabytes for the core protocol code. So basically, you want to remove what would amount some fraction of a megabyte of protocol code and break compatability with hundreds of applications. You sir are an idiot that no one ought to ever listen to.