Sunday, November 7, 2010

Why Wayland is good for the future of Ubuntu, Canonical, etc.

History
 
The recent announce at UDS about the fact that the venerable X server & protocols will not be the default choice for Unity and as a consequence Ubuntu was a shock for some, it is clearly a relief for me.

In my precedent post about Unity, (before the UDS/Wayland announcement) I said "In this context, Ubuntu/Canonical is more conservative than Apple and Google that decided to dump X altogether. I'm not sure the X environment is fitted for next millennium challenges : once again, time will tell."

Obviously, the X server and protocol are great tools, very mature and with numerous capabilities. For a long time, evolution was slow, some would say "frozen" but then X.org did a great job and things started to evolve again.

However, being in the field, deploying X-based thin-clients since 2003 and designing larger scale and user friendly open source thin client solution (LTSP-Cluster) made me wonder if this was a protocol fitted for the future.

Why not X ?
Without being a X expert, some of the issues that were critical in the (announced) move from X server to Wayland

Hardware support : I strongly recommend to run Linux only on hardware with a well supported video driver : without a well supported driver, the experience can be daunting, especially on a thin-client. X was supposed to be hardware independent, lightweight and provide great performance.

However these fights had been lost long ago : I've learned the hard way that not all X drivers are equals : open-source or not, how many XV channels are supported, 3D (what version exactly, etc.). In fact, selecting good quality desktop or thin-client hardware is a service we sold to our customers !

Size matters : a default X.org server, on my desktop where I wrote this blog is 64Mb (without cache), 180Mb (with cache) on a Ubuntu 10.10, 64 bit with regular 3D effects. Well, on a phone with 256Mb or RAM or on an ARM based thin client with 64Mb, this is not good. I can imagine it also has an impact on battery life on the mobile devices.

A toolbox instead of a simple tool : Without being "bloated", it is certain that X has evolved, along the year, to support a huge number of hardware, protocols and has a long history and has a load of quirks and "this is not a bug, it is a feature" type of functionality.

Crispiness : X is not very crisp. Without being a usability expert, I can guarantee that, in my experience on iPad, Mac, Android device, those devices are much more responsive graphically than your average Linux desktop. Why ? I'm no X expert but I will propose the hypothesis that this is because of the legacy of the project.

3D : Without discussing the time it took to obtain 3D support at the X level, remember the Compiz/Beryl/Looking Glass and the time it took for them to mature while most of the X user where despising the efforts ? How well is 3D integrated into your desktop environment ?

Why Wayland ?

Most of the reasons don't have anything to do with Wayland and are consequences of the present IT competitive environment, the current state of X as well as business needs.  In this context, we will see that Wayland happened to be exactly what was needed : instead of starting from scratch a start-up project, hosted by freedesktop.org, an existing proof of concept and prototype, an already existing but small community with the goal to improve user experience.

My first reason is a practical one : I think that in order to make X evolves to a state suited for Mobile Internet Devices (MID) it request a deep technical knowledge of X as well as a long time to really convince all the X shareholders to agree to a change. Will the market wait for this change : I'm sure it will not ! Will everyone agree to the need to change : not certain either. Can a company accept this level of risk for what is their future ? According to Wikipedia, X11 dates back to 1984. Is it possible and wise to compete in this space with a technology that is 26 years old : I really don't think so (I'm saying this with a profound respect to everybody that contributed to the X11 project : the fact that it was great for 20+ years, in IT, is clearly a tribute to the design and the project itself).

Another way to look at this is the "disruptive innovation" or "disruptive technology" model. Mobile Internet Devices are changing the IT world ... big time. Major players are on the verge of becoming irrelevant in a new market that is growing faster than any other market in IT. Think about the position of RIM, Blackberry, PalmOS, Microsoft, etc. in this market space ? Others are sizing (creating?) the opportunity and went from losers/non-existent to key players (Apple with the iPod, iPhone, iPad and, of course, Google with Android). In order to compete in this space, legacy has to be left behind : your average MID does not share a lot in common with your desktop : UI of every single application has to be re-designed in order to take into account : screen size, touch screen, multi-touch, no mouse/keyboard, battery consumption, etc.

Wayland goals are the following (according to Wikipedia) "every frame is perfect, by which I mean that applications will be able to control the rendering enough that we'll never see tearing, lag, redrawing or flicker".

Well, in term of goal, it really puts the user in the center of things : a display manager that provide a great user experience. Ubuntu is popular on the desktop because it really put efforts into design and decided to place the user in the center of things.

Conclusion

Well, it is always interesting when a decision you were expecting happens. In a sense, I'm pleased and excited because it is the only way to compete and provide an open-source solution in the MID market and, why not, somehow piggybacking on the desktop market.

While Android could have been a possible choice, choosing Android will have constraint Ubuntu/Canonical to ... follow innovation, not to drive innovation. Also, Android has some issue, especially if you value the open-source development model where all the doors are open for the community to join and participate.


All in all, my only reserve is with the timing : if Wayland is ready in one year from now, it means a 2-4 years of delay compared to, let's say, Google and Android. More than this with Apple. In this context, the question is : Is it too late ?

Evolution and revolution are and will be needed in order for Open Source to continue to be relevant. This is particularly true in a disruptive market like the MID market. The announce was certainly a great way to launch one. History will tell if will succeed : I really hope it will and I really encourage the Open Source community to see the big picture out there, regroup and, ultimately, to contribute as much as possible to Wayland & Unity in order to make it a first class open source citizen able to run on any MID device and on any desktop.

15 comments:

  1. Won't the fact that Wayland's design doesn't include any way of streaming applications over the network be a small problem for LTSP/LTSP-Cluster ?

    That's a very important aspect of X that's not included in Wayland and will be a bit of a problem for these who want to work with thin clients.

    ReplyDelete
  2. Yes, that is completely true.

    However, challenges can become some type of opportunity. I think the X way of streaming can be perfected and, why not, natively include multimedia streaming and 3D experience.

    At this stage, nothing is done and I understand that it can represent a lot of work but maybe we can learn from the past and offer an even better solution than the existing one.

    ReplyDelete
  3. I cannot cite any source, but I remember clearly reading that the X memory usage was a result of mapping video memory and/or other memory mapping.

    "top" is not the right tool to check X memory usage; "xrestop" does a better job.

    ReplyDelete
  4. Benoit,

    With all due respect, you make several comments that show your lack of understanding of the X environment as well as the way good, stable design and programming occurs.

    First off, the driver issue. X is not the problem with drivers, the problem is that there is not much time or thought put in by the actual hardware creators when creating the drivers for their hardware. The programming of the driver is bad, not X. The problem you refer to is the fact that Linux developers are having to re-engineer drivers to work with a ton of hardware while not fully understanding all of the capabilities of the hardware. This is not a job of the X devs, it is the job of the manufacturer of the device itself. Think Windows on this one. As much as I am not a Windows person, every manufacturer of video devices create their drivers to work well with Windows, what needs to happen is they need to start doing the same for Linux/X.

    Second, you should not expect desktop/laptop/netbook distro to work on the smallest of devices like you are talking about unless you are willing to give up on functionality such as most gaming, 3D graphics, or really anything other than for basic necessities (here I am not referring to small games made for mobile phones). You have to understand the tradeoffs.

    Third, where are you getting your "crispness" comparison from? Was it similar hardware? Are you sure it wasn't your video driver? Linux has come a long way recently to support more and more video drivers. This has nothing to do with X, rather it all has to do with the fact that drivers have been created that support much broader devices. I am not sure you can give a good comparison between Android, Apple, and X. Android and Apple both have a limited set of hardware that they have to run on. The developers working on Android and Apple devices can focus on stabilizing these drivers rather than having to move on to the next driver.

    Fourth, 3D is implemented very well in my environment. You can't even draw a comparison here. If Ubuntu goes with Wayland, they will have to reinvent the wheel in this area and we will have to go through the same ugly process we went through with compiz.

    ReplyDelete
  5. Fifth, on their site under the build page, this is the first sentence: "The instructions below assume some familiarity with git and building and running experimental software. And be prepared that this project isn't at all useful right now, it's still very much a prototype." This is still an infant compared to X. X has 26 years of active development. This means that X is a stable architecture to build on top of. 26 years of development does not mean that it is old, rather it means that it is mature. Its developers are still adding functionality to it but they are adding it to an already stable infrastructure. By switching to Wayland, you lose that stable infrastructure.

    Sixth, while MIDs are coming out, why not develop actively X to support them rather than switching away from it. The shareholders want to change to where the need is. If the demand for MIDs is increasing, it would make sense for X to start supporting them. That is the nature of open-source development. This splitting of the display environment is detrimental rather than helpful to the open-source community.

    Seventh, while you do make a good point that MIDs are changing the face of technology, they are not replacing the full desktop/laptop. The UI on them shows this. Apple is not breaking into the enterprise with their iPad nor are netbooks making inroads into this area. Full desktops and laptops are still being purchased at the same quantity as they have always been. This idea that all desktops and laptops should have the same interface as cell phones is idiotic and unusuable especially for the enterprise user.

    Eighth, you make reference to the wikipedia statement that says "every frame is perfect, by which I mean that applications will be able to control the rendering enough that we'll never see tearing, lag, redrawing or flicker". Your comment regarding this is that it "really puts the user in the center of things". That is by no means what they are saying in this comment. The user does not control what is happening with the rendering. What they are saying is that each application now has another level of complexity in that the application developer now has to control how their application renders. This adds another level of complexity to an already difficult design process as well as makes it harder for the application designer to port their apps to another OS.

    Finally, this decision by Canonical/Ubuntu to go with Wayland really shows some very poor decision making on their part. The MID is only one part of the Linux user base. Their decision to move their entire distro over to Wayland and Unity is a strong indicator that they will cease to be one of the best Linux desktop/laptop distros out there and will make them into more of a MID only OS. I for one will not be switching over to them any time soon nor will I be moving my organization's Linux environment there either (500+ Linux desktops/laptops). Sad because they were starting to get some of our attention...

    ReplyDelete
  6. Why Wayland is not: nVidia. nVidia has said it has no plans to support Wayland. That means, you're stuck with OSS drivers, and that means no or poor 3D support. Goodbye compositing features...

    Canonical,and Shuttleworth have gotten seriously arrogant, and blazed a path on their own, without any support from any other distro. This is bad because everyone outside the Linux community will ignore it.

    ReplyDelete
  7. @Jonathan :
    * 1st point/driver : I agree with you and I don't blame X developers or anyone else for that matter. My point is that today, Linux with X only provide a good user interface with well define video card and well define video driver. In other words : the performance of the Linux desktop if very video adapter and driver dependant.

    * 2nd point : Yes, I agree. And that's why I conclude with this sentence "and, why not, somehow piggybacking on the desktop market." The original plan is to be able to run X.org as a wayland client : in this context you will not loose the 20 years+ X applications and desktop development.

    * 3d point : I completely agree with you here : Apple and Android only support a subset of the hardware that X support and for this specific hardware, performance is superior. Back to my first point then : X only offer good performance (with the complete set of extension) on select hardware : you need a great video-driver and video-adapter to really enjoy it. Maybe Wayland will be a bit more "extreme" and impose more restriction at the hardware level : instead of fall-backing to a type of degraded mode (example : calculating 3D with your CPU : in most of the cases, it simply not work !) it will simply not work. Once again, from a user point of view : when Wayland will be supported, you can be certain that the experience will be great. The user at the center...

    *4th point : Well, Wayland use the same 3D engine as Apple, Nokia, Samsung, BlackBerry, Android namely Open GL ES (for Embedded Systems) so I think this is a proven solution. It is only a matter of UI design and interface design for the window manager.

    ReplyDelete
  8. @Jonathan :
    * 5th point : is Wayland ready, no way ! This is experimental stuff for sure ;-) Not production ready by any means. I think one year will be necessary to have something ready depending on resources affected to this project. See also my previous comment : I really think X will be able to run as wayland client so you will still be able to use your X applications AFAIK.

    * 6th : Well, I think I disagree on this one. Netbook clearly cannibalized laptop sales for a time and now tablet sales are cannibalizing netbook sales. See for instance http://www.pcworld.com/article/209622/apple_ipads_cannibalizing_netbook_sales.html

    So I really don't think that X will be fast enough to play now : given the legacy and the fact that all the major players (RIM, Apple, Google, Meego) decided not to use it. I don't see any kind of industry or consortium interested in doing this and in a few years it will be too late. In fact, I think this is because X did not make this move that all the major players decided to use/develop another technology...

    * 7th : Well, it is clearly the fastest growing market these days and, as any technological wave, it clearly means that power is shifting from fixed devices to MID devices, the laptop/netbook clearly being a type of transition device. I'm not saying that today's device will replace today's desktop/laptop but clearly, in a few years, they will be much more powerful with better UI and input devices and our laptop/desktop/netbook will somehow be legacy stuff. If you don't position yourself now, you will never be one of the last three major players...

    * 8th : Well, what I meant was that it will be _possible_ for UI designer and developers to control the user experience sot that it does not display any "tearing, lag, redrawing or flicker". This is clearly impossible/not the case today with a complete and complex X environment. It don't have to be complex for the developers : it is a matter of UI and interface design choices.

    I think this is sad that you decide not to look at Ubuntu because of this announce : whatever the announce is, you can be certain that the Ubuntu community will not ship low quality software without any support for the existing desktop applications. Given the user base and the well define community development process, I trust the community and I think this is not going to happen.

    Ubuntu is, as of today, the best distribution on the desktop and I'm convinced that the technological choice, while challenging, will allow Ubuntu to continue to innovate and provide the best Linux user experience.

    ReplyDelete
  9. @Anonymous : well, it happens I have a nvidia card on my desktop and even with jockey, selecting the good driver is always tricky. Anyway, I think this is an early announce from nVidia as this is an early announce from Canonical : if the market size justify it, I'm pretty certain that nVidia will support it.

    As of the arrogance of Shuttelworth, I do not subscribe to your point. I really think that this is not an easy choice and it certainly is a risky one : time only will tell if this is arrogance or ... genius ;-)

    ReplyDelete
  10. My Nokia N900 runs X-windows on a 600 Mhz CPU.
    So X CAN be trimmed down if neccessary.
    I won't mind a change towards Wayland, but if it doesn't support the network layer, I will stay with X.
    This is one of the big advantages of Linux over Windows - being able to execute a program on one machine, and displaying it on another (without having a full window and taskbar)
    I am concerned about older application that use X. Will all of them require porting to wayland?

    ReplyDelete
  11. Acer One netbook running full compiz:

    Size: Xorg resident memory: 14MB Compiz resident memory: 38M

    Crisp: Ive used many phones and have a mac here. Sorry, ALL phones are pathetic in responsiveness and OSX cant even compare with a linux Xorg desktop with Compiz. I really tire of the blatant lies about OSX. Its just funny. Its like a placebo effect. Give people something they have been made to think is cool and it could cause both their legs to spontaneously fall off and it would STILL be the greatest thing on earth.

    Hardware: It wont matter what you pick. Going with something newer more than likely means even less support not more even if its easier to make drivers which it wont because 90% of Xorg's problem is the proprietary nature of video drivers. Wayland doesnt fix anything here. Open drivers will which X etc have been pushing for over a decade.

    Simple: Even more subjective than the rest. Its 6s. Nothing useful here.

    3D integration: My 3D desktop works great. I love being able to trans windows to see behind, or negative a window for certain lighting, screen shot small areas, grouping windows for auto actions and oh yes impressing the windows 7 (jealously is funny) admins with the tiny weak laptop spinning a cube around and transparency all over the place all the while both firefox browses and chrome watches a youtube video and I IM and irc in a shell.

    X11 isnt perfect. Having and alternative is good. New ideas are fantastic. To try and claim Wayland is somehow going to be or already is superior largely based on subjective statements (yes mine are too largely but only in response) is down right dumb.

    peace.

    ReplyDelete
  12. @Anonymous : well, I had a N900 as well and you have a good point that demonstrate that X can run on it and be trimmed down for MID.

    However, and that's a great point I would like to make : most/every of the applications designed for a regular desktop are barely usable on a device like the N900 even with X. For instance, OpenOffice on the N900 (even remotely executed on a more powerful computer) is almost not usable at this time due to UI choices, no mouse, shortcuts, etc. Same thing for most of the current desktop applications.

    What X-based application are you using on a daily basis on your N900 with and X server ?

    Today, MID have application stores with hundred of thousands of (very simple, not necessarily useful, etc.) applications instead of a bunch of recompiled desktops apps. The main reason is that the UI of existing desktop apps are not "compatible" with the MID market. The N900 has a distinct advantage (keyboard) but still, the screen size and the lack of mouse is very limiting.

    Network connectivity is another concern : most/all of the MID applications are designed to operate in disconnected and to synchronize their data with servers. There is no need to maintain as established connection with, say, an X server. Bandwidth on those device can vary from a few Mb/s to zero and, once again, every application has to be modify to take this into account.

    ReplyDelete
  13. @Anonymous : Crispiness depend on the number of software/engineering layers needed to use a technology. In this case, I can not see how an infrastructure using directly a kernel module (Wayland) can be slower/less crisp that an infrastructure using both kernel modules and a large display server designed for lot of usage, including network usage. So yes, it depend a lot on the hardware but with an equal hardware, interacting more closely with the hardware will give better results.

    Simple vs Complex is a matter of technological architecture, software engineering and history. X is a (very?) complex piece of software, Wayland is not. OK, Wayland is not a full-fledge replacement of X and I think that this is exactly the point...

    Subjectivity is all over the place (blogosphere as well) and I'm glad we agree at the end : choice is good, as is competition. Exciting new (crazy) ideas are our (the FLOSS community) best guarantee for the future...

    ReplyDelete
  14. You have wonderful points on protocols, thanks for sharing the updated information.. I hope to see more articles from you..

    ReplyDelete
  15. We are really pleased to know your interest in writing about Ubuntu. Thanks For shearing .



    Thin Client Software & Zero Clients

    ReplyDelete