Sunday, November 7, 2010

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

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 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 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, 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.


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.