Ubuntu to move to Unity as default desktop for 11.04

6:19 pm community, gnome

At this stage, most people will have heard the news: Ubuntu 11.04 will ship with Unity as the default desktop shell. This raises a few questions: what does this mean for GNOME, and the adoption of GNOME Shell? Will this further affect the relationship between Canonical developers and others working on the same problems?

First things first: what Canonical is doing here is not new, by any means. Novell developed the slab on their own, based on their user testing and to their own design, before proposing it for inclusion in GNOME once it was released in Suse Linux Enterprise Desktop. Nokia have developed custom user interfaces on top of the standard Linux desktop shell for the past 5 years, built with GNOME technologies, and have actively participated in the development of core components through the GNOME project – they are now developing a custom interface based on Qt, for smartphones, using the same standard desktop stack. OpenMoko did the same thing with the Freerunner. Intel built a custom shell for netbooks in the Moblin project, which is now the netbook interface for MeeGo. OLPC built a custom designed user interface for educational computing devices. GNOME allows and enables this kind of work, because of the great platform and infrastructure we have provided over the years to all Linux software developers.

In such illustrious company, forgive me if I think that Canonical’s management has seriously underestimated the difficulty of the task in front of them.

At the time, the slab further damaged the relationship of Novell developers and the GNOME project – Dan Winship wrote a scathing mail to a GNOME list when asked why Novell had not worked in the open on such a significant development, saying in short that it was impossible to work in the open in the project – the logical conclusion of the siege mentality bred by the negativity around Mono development and the numerous acrimonious debates at the time.

Nokia have had repeated issues coming to terms with open development, and reconciling the need to differentiate and the desire to create an open collaborative project. Their conclusion – to increase the openness of their software platform and collaborate in the MeeGo project – bears witness to the difficulties they have had over the past five years developing a high quality, innovative mobile user experience alone.

OpenMoko repeatedly ran into performance and flexibility issues, and frequently changed software strategy, to the point where the project was no longer viable. Their success was in creating a vibrant independent developer community, which has allowed their dream to live on in projects like Hackable Devices, and its distribution Hackable:1.

Intel have followed a similar path to Nokia – creating an independent vendor-let user interface project, having trouble getting a high quality product out the door, and they are now in the process of opening up and collaborating on the netbook user interface through the MeeGo project.

OLPC had many teething problems with the Sugar desktop environment. Bugs, stability and performance issues plagued the project for many months, to the point where they abandoned the development of the stack as the primary target platform for the devices. The project lives on in Sugar Labs, thans to a broad and vibrant developer community.

There is not one out-and-out success story of a company building a great high-quality custom user interface on the standard Linux stack, except Android, which is hardly a model of collaborative software development.

Is this because of problems in out platform? A lack of developer tools? Insufficient documentation? Perhaps – but if that’s the case, don’t all of the aforementioned have a shared interest in improving those raw materials?

There is another possibility which seems to me more plausible: building a rock solid and functional desktop is hard. Really hard.

So why do people do it? Because working with old code is painful. After years of use, and bug fixes, and nasty hacks, the code gets to look ugly. Really ugly. I’ve been in the situation myself – you’re working on crusty, crumbling, slow code from 10 years ago, and you say to yourself “I could write better than this in a weekend”. And you do get to a decent proof-of-concept in a few days. And then you have to harden it. And you spend months and months fixing bugs until finally it does everything the old code did, better, and a few new things, but it took you 2 years of development. And it looks just as hairy as the old code did. As Joel Spolsky wrote: “there is absolutely no reason to believe that you are going to do a better job than you did the first time”.

Astute readers might notice that I did not include Red Hat and GNOME Shell in the list of “custom user interfaces” in my list. That is because of the way this project started, and is being developed. The project grew from the ideas of the Pyro Desktop and the Online Desktop & BigBoard, both show-cased at GUADEC back in 2007 in Birmingham, the core design grew from a User Experience Hackfest in 2008 which happened during the Boston Summit, and has evolved in a public wiki. The source code has been public from the start, with a public mailing list, and a designer who has been openly communicating design thinking, and crying out for outside contributors.

I have been telling people for a while that transparency does not equal democracy, that it is possible to have a coherent design in a community-developed project – all you need is a designer that the developers trust who can communicate what is important about his design, who is not afraid to adapt his design based on feedback, but who has the last word on what gets written.

Canonical, and other vendors, do this by appointing a designer, and basically forcing developers to implement what he comes up with. But there’s no reason it can’t be done in the community – as it has been in the past (Seth Nickell’s design of the desktop file chooser, mostly implemented by Federico Mena Quintero, comes to mind).

I fear, however, that this is just another step in a pattern which has been coming for a while. Jeff Waugh said it well today on Twitter: “Unity as default shell == brand before community, differentiation before collaboration.” Canonical values the Ubuntu brand, as they should – but in recent times there has been a move to favour that brand over a better core product that all can share. Unity and Ayatana are merely the most recent in a chain of projects pointing in that direction. Canonical has long had to defend a relatively low contribution level to upstream projects, preferring to position themselves as an integrator, adding fit & finish. Even for public projects like 100 paper cuts, I have been told that there has been limited success in getting patches integrated upstream – I have heard anecdotal accounts of patches that were “evil hacks”, or fixes which were expeditiously made to Ubuntu or worked around a symptom without fixing the root cause. I can’t attest to this – a spot check of 5 paper cuts showed me one Ubuntu-specific fix, one “CLOSED INVALID”, one fix which was rejected, and two fixes integrated upstream.

Back in July, when the GNOME census came out, I commented on Jono Bacon’s blog entry on the subject:

Canonical’s strategy is to develop new features for the desktop, which have not (yet) been included in GNOME.

This is a strategy which has back-fired on a couple of people in the past – it’s not enough to work on something and then propose it for GNOME as a “take it or leave it” choice – the GNOME developers often have feedback on design decisions and request some changes which you mighht not be prepared to make in developed software, but which might be OK to make in a spec […]

One thing I really want to avoid is the creation of a siege mentality of “Canonical vs Rest of the World”, which is counter-productive to the goal of increasing the contribution of Canonical to core GNOME. It’s good to be aware that Canonical are not maintaining core modules, and look for easy ways we can help that happen. Proposing new modules is one path toward that, and contributing to the maintenance of some modules which need it is another.

Unfortunately, this choice of Unity as the desktop user interface, instead of supporting the steadily progressing GNOME Shell project and trying to influence the direction of that project, is another step on the path to the siege mentality. This move will inevitably garner some support from within Ubuntu, and much criticism from the rest of the GNOME ecosystem, further isolating Canonical and the Ubuntu community from the rest of the free desktop development community.

The best possible outcome I can see is that one of the two projects will become an obvious choice within a year or so – and at that point either GNOME will adopt Unity (if Canonical drop the copyright assignment requirement) or Canonical will adopt GNOME Shell (if, as I expect, Canonical struggle to get Unity to the quality standard their users expect). A worst case scenario would see both projects suffer from the competition, putting the free software desktop another two years behind in its quest to beat Apple & Microsoft on features & functionality.


59 Responses

  1. Ubuntu and the price of UnityNetbook | Netbook Says:

    […] Dave Neary recalls that the GNOME Shell “grew from the ideas of the Pyro Desktop and the Online Desktop & BigBoard, both show-cased at GUADEC back in 2007 in Birmingham. The core design grew from a User Experience Hackfest in 2008 which happened during the Boston Summit, and has evolved in a public wiki. The source code has been public from the start, with a public mailing list, and a designer who has been openly communicating design thinking, and crying out for outside contributors.” […]

  2. Kiernan Holland Says:

    I’m willing to bet that 9 out of 10 linux users have never used a iPad before..

    Use it, for a month, and see if you still agree with your pre-iPad self.

    This is the wave of change that is hitting the world right now.

    And this is why Canonical is pushing for this.

    I have an iPad, and I am not a Apple fanboy. I fucking hate Steve Jobs, that SOB. But this is the first thing they’ve done right. And I don’t feel like a hypocrite for supporting this direction.

    Also much of the push for Wayland is to push the device drivers into the Kernel and out of the UI abstraction.

    BTW, everyone knows you can’t have more than 5 core coders on a project, without chaos. Canonical is trying to get away from that for good reason. The iPad gets away from that by preventing direct collaboration between technologies, and moving back to a time when people hacked apps quickly on Commodore 64’s.. It going back to the one app does all.. And you know what?


    Only in a commercial constrained environment doe you get this creative freedom and excitement. In open source, you get random code contributions, and excitement, but where does it go? What can it do? Who controls it? How can it continue? Is it really working?
    What apps can you point at and say “these have a consistency of experience”.

    How many apps make full use of the hardware available to them?

    What the iPad will do to the app developement environment is force developers to consider developing for completely detailed and simplified computing environment, without the confusing/complexity of a hovering window interface where things can get messy and lost. “Out of sight, out of mind” can be a bad thing.

    You may think that is gay.. But again, get a iPad and use it as much as possible for a month and see if your old self agrees with your new.


    PS- Are you democrats or conservatives? Open source conservatives? Is that a oxymoron?

  3. Kiernan Holland Says:

    BTW Gnome was a knee-jerk response to Windows COM environment.. I understand the concern for reinventing the past, but consider CORBA has been dumped and that was GNOME’s COM environment, where is it now?

    I think GNOME is a speed bump, and the future needs to be about making a better working environment. By getting away from distracting interfaces.

    It’s a necessary change..

    And for the conservative christians (I know a lot of you claim to be atheists and agnostics, but deep down you got some Christian past)..

    As it says in the bible, recall what the pharisees said about the Christians, paraphrasing

    “if these guys aren’t real, it will fall apart. But if they don’t fall apart, God’s on their side”.

  4. Kiernan Holland Says:

    All one needs to do is look at the iPad sales.. And see who is buying them. I had heard 40-something men!! Let me see, that’s the Commodore 64 generation!!

  5. Dave Neary Says:

    > PS- Are you democrats or conservatives? Open source conservatives? Is that a oxymoron?

    What does being democratic have to do with being conservative? Conservative = attached to the past, resistant to change even? Democrat = supporter of democratic (or representational democratic) electoral systems. And what does the availability or not of source code have to do with conservatism? Have you forgotten that Linux is a clone of a 40 year old operating system?


  6. Ubuntu: Kill your Darlings « 2 Cents for the World Says:

    […] Future In the near future Gnome will be replaced by Unity and the truly bloated X-Window-System (about 20 years old) will make way for a newly developed […]

  7. Safe as Milk » Blog Archive » Where do we go from here? Says:

    […] – on a par with abandoning the GTK+ work which had been done before moblin 2 to move to Qt. Rewriting user interfaces is hard and I don’t think that Intel are ready to run the market risk of dropping Qt – which […]

  8. Where do we go from here? | Maemo Nokia N900 Says:

    […] – on a par with abandoning the GTK+ work which had been done before moblin 2 to move to Qt. Rewriting user interfaces is hard and I don’t think that Intel are ready to run the market risk of dropping Qt – which […]

  9. Canonical Vs Gnome: Já foi longe demais | Cleiton Lima Says:

    […] processo de distanciação do Gnome de uma forma geral. O ponto alto de tudo foi o anuncio de que a versão 11.04 do Ubuntu não viria com o Gnome-Shell e sim com o Unity. Enquanto o restante do mundo livre se preparava para o Gnome 3 de uma forma geral, a Canonical […]