All the other guys are not wrong

Sunday, March 13th, 2011

The discussion in blogs and comments on collaboration and standards is really important. It’s also easy to cast as “GNOME vs Canonical vs KDE”, and that would be incorrect. My critique here is not of the body of GNOME developers, it’s of specific decisions and processes, which in my view have let GNOME down.

The reason I care is, to state the obvious, a well-functioning GNOME is important to Ubuntu and Canonical. And I don’t think we’re there. Alternatively, a well-functioning is important, and we’re not there either.

Dave Neary, who to his credit has been trying to understand how matters reached this point, blogged his conclusions to date. They warrant a response.

He summarises: is broken as a standards body

That may be true today, but I think we should fix it. With Meego around, and other efforts that are lower profile, there are now even more reasons to have well specified standards for desktop interoperability. They won’t all work, but they deserve better respect and quality than they have today. So my response to Dave is: let’s fix that, rather than pretending “it’s broke so it don’t matter”.

Mark Shuttleworth doesn’t understand how GNOME works

Fortunately I’m apparently in good company because his next conclusion is GNOME is not easy to understand. Perhaps a more accurate summation would be “Gnome is not self-consistent, or deterministic, so it can often come to two quite contradictory conclusions at the same time, and Mr Shuttleworth didn’t understand the one we’d now like to promote.”

Dave mailed me to say that he’d got a “definitive” perspective on how the appindicator API’s came to be rejected. It includes pointers as to the requirements for submitting external dependencies. These are “make the case for the dependency, which should be a few sentences or so, and wait a short while for people to check it out (e.g. making sure it builds)”. Now, a reading of the correspondence around the API’s suggests that Ted and others did a lot more than the “few sentences and make sure it builds”, yet the proposal was rejected.

In addition, Dave got commentary from two members of the Gnome release team, who make these decisions. The two views disagree with one another.

I’m not sure what to think, then, about Dave’s assertion that I don’t understand Gnome. Seems the follow-on conclusion is closer to the truth.

Dave says:

[…] to get things done in GNOME, you need to talk to the right people. That means, defining your problem, and identifying the stakeholders who are also interested in that problem, and working out a solution with them (am I repeating myself?). Mark seems to want GNOME to behave like a company, so that he can get “his people” to talk to “our people” and make it happen. I think that this misunderstanding of how to wield influence within the GNOME project is a key problem.

But then again, over the years I have heard similar feedback from GNOME Mobile participants, and people in Nokia – so it’s not all Mark’s fault. As Jono says here: GNOME does have a reputation of being hard to work with for companies – no point in denying it (then again, so does the kernel, and they seem to get along fine).

Hold on a sec. There’s been ample documentation of conversations. Dave can’t even point to two stakeholder who agree with each other in the release team!

I also understand that there is an interest in putting on a good face, and not airing your dirty laundry in public (ironic, eh?) – for the past few years, the party line in Canonical has been “We love GNOME, we’re a GNOME shop” while behind the scenes there have been heartfelt conversations about the various problems which exist in GNOME & how to address them. The problem is, because these discussioons happen behind the scenes, they stay there. We never get beyond discussions, agreeing there is a problem, but never working together on a solution.

Yes, the stated line from Canonical has been exactly what Dave describes – we’ve worked hard to stay within the Gnome umbrella, even where we’ve felt that the deck was stacked against us. It’s tiring. After a year or so of being the public whipping boy for cutting commentary from competitors under the Gnome banner, a franker line is needed.

Owen Taylor, desktop lead at Red Hat and the person to whom Jon McCann referred the app indicators API decision, then weighed in. He suggests several things:

Mark argues that GNOME should be a place where we have internal competition. But his idea of internal competition seems to be competition between different end-user experiences. His entrant into the competition is Unity, an environment with a user experience designed completely in isolation from GNOME. The other entrant would, I suppose, be the GNOME 3 desktop that GNOME has created.

This competition doesn’t make sense to me: what would be left of GNOME if Unity “won” that competition? Not even the libraries are left, because every decision that is made about what goes into library should be driven by that same question “what does the user see?” No widget should go into GTK+ unless it makes sense in a GNOME application. GNOME cannot cede the user experience and still work as a project.

This is exactly why we proposed the app indicator API’s as *external* dependencies. They are capabilities which GNOME apps can take advantage of if they are around, but which are not essential if they are not there. Unity could quite easily move to the fore in GNOME, if it won this competition, just like lots of other ideas and pieces of code have started outside the core of GNOME but become essential to it.

Owen’s argument reinforces the idea (which is in my view broken) that the only idea that matter are the ones generated internally to the GNOME project (defined very tightly by folks who maintain core modules or have core responsibilities). It’s precisely this inward view that I think is leading GNOME astray.

Owen’s point that “no widget should go into Gtk if it is not needed by a GNOME application” is unlikely to be comforting to the XFCE folk, or other desktop environments which build on GNOME. If anything, it will make them feel that things in “core GNOME” are likely to be difficult to adopt and collaborate with, because their needs, apparently don’t matter.

He also says “But I’ve never seen Canonical make the leap and realize that they could actually dive in and make GNOME itself better.”.. which is rather insulting to all the people from Canonical who spend a lot of their day doing exactly that.

He talks about App Indicators, saying that “They didn’t even propose changes to core GNOME components to support application indicators.” Actually, we did, and those changes required App Indicators to be an external dependency. So we proposed that, and it was rejected. Repeat ad absurdum.

In the end, in comments, Owen says that “[It] is a common misperception [that Gnome Shell and Gnome 3 can be separated]. That somehow the work we’ve done on GNOME Shell is somehow separable from the rest of GNOME 3. The work on the GTK+ theme and the window manager theme is done on together. The work on GNOME Shell is done together work work on System Settings and on the internal gnome-settings-daemon and gnome-session components.” Well, that’s convenient. Define one piece – your piece – as critical, therefor making it above competition. I expect that Ubuntu will ship Gnome 3 perfectly well with Unity.

Also in comments, Owen points out that the work Shell developers did around messaging was done as an update to an FD.o spec. An update that AFAICT was not discussed, just amended and pushed. He says, in a triumph of understatement, “We certainly haven’t done a good job discussing the small additions to the specification we needed”.

Finally, Owen concludes that having Unity and Gnome Shell as separate desktops may be the only way forward. Seems like he’s worked hard to ensure that’s the case.

Next up, Jeff Waugh is writing a set of related blog posts. One of them walks through the app indicators timeline, and is relatively comprehensive in doing so.

Jeff draws a conclusion that we’re mistaken in feeling that App Indicators were deliberately blocked because Unity presented a risk of competition with Gnome Shell; but he draws that purely based on the timing of the conversation proposing App Indicators as an external dependency, which was four days *before* the name Unity was introduced.

Yes, that’s true. But Unity was simply the new name for work which has been ongoing since 2007: The Ubuntu Netbook Remix interface. That work was very much in the frame throughout, and it’s been suggested that it was that work which catalysed Gnome Shell in the first place.

So even though Jeff is right on the claim that app indicators were discussed *before* the Unity name was revealed, that’s not in any way material to a discussion of the motives of those who rejected app indicators. This was an API from Canonical, related to work in the Ubuntu Netbook interface, and it got rejected for reasons which are unlike any other response to a proposed external dependency.

Perhaps, in the light of changed circumstances, Jeff will change his opinion. Good commentators do.

Jeff also goes on to talk about Ted and Aurelien, who were proposing the app indicators work in GNOME and KDE respectively. KDE apps worked smoothly, Gnome rejected Ted’s proposal. Jeff says “I don’t believe the key difference here is between GNOME and KDE, it is in Canonical’s approach to engagement, and its commitment of developers to the task.” It’s worth pointing out that Ted and Aurelien were both working for the same manager under the same guidance with the same goals. Jeff draws the conclusion that Canonical could have done things differently. I would have drawn the conclusion that Gnome was less open to collaboration than KDE.

Finally, Jeff looks at the requirements for dependencies, and notes that Canonical didn’t need to engage at all, though he (and we recognised the same) says that would have caused other problems. He concludes:

Canonical barely made an effort to have libappindicator “accepted into GNOME” (which, in the context of his criticism, Mark believed was important or necessary)

As I’ve shown above, the stated requirements are a very low bar. We did that, and more, yet the App Indicator API’s were rejected. As I’ve said before, it’s bizarre that such a different standard was applied to this API, and not other API’s. The only rational explanation is that the decision is nothing to do with the API’s, and everything to do with politics. Those politics are bad for Gnome in the long run. I want Gnome to be healthy in the long run, ergo, my critique.

It did not even need to go through this process anyway, because it did not need to be an “external dependency” in order to achieve Mark’s stated goals (ie. application adoption of the API)

Unfortunately for Jeff, we’d been told in no uncertain terms that module owners and core apps were under pressure about these API’s. They wanted to see the external dependency blessed. So we proposed it. Owen says we “didn’t try to propose changes to core apps”… we did, and the external dependency was the blocker.

So the rejection of libappindicator, for all the sturm und drang, is essentially meaningless — it had no bearing on the opportunity for collaboration between Canonical and GNOME

In fact, it’s what’s left that collaboration in limbo. What to do with all the patches produced for GNOME apps that make them work with app indicators? Hmm… that would be collaboration, but the uncertainty created by the rejection as an external dependency creates a barrier to that collaboration. As Jeff says, those patches can land without any problems. But to land such a patch, after the refusal, takes some guts on the part of the maintainer. Lots have done it (thank you!) but some have said they are concerned they will be criticised for doing so.

Unity did not exist in the public sphere when libappindicator was declared irrelevant to GNOME Shell, and was not ever the reason why: (a) there wasn’t much interest in libappindicator, or (b) GNOME Shell developers decided they were on a different path

Correct, *Unity* was not the public name of the work at the time, Ubuntu Netbook Remix was.

Not proven in this part of the series, but worth noting: the person Mark specifically chose to attack, Jon McCann, did not decide to exclude libappindicator because — being a design contributor to GNOME Shell — he felt threatened by Unity. In fact, he had no part in the decision, and didn’t know Unity existed!

Jon certainly knew a great deal of work on interfaces was being done. That became branded Unity later, but the timing of the change in name is irrelevant.


There are good faith efforts being made to bridge divides all over the show, for which I’m grateful and to which we’re contributing. My comments here are to address what I see as convenient papering over, which will not stand the test of time. It’s important – to me, to the members of the community working on Unity and Ubuntu (and there are substantial communities in both) that simplistic accusations against us are not left to stand unchallenged.

The goal – for everyone, I think – is great free software. I know we’re committed to that, and doing what we think is needed to achieve it.

123 Responses to “All the other guys are not wrong”

  1. nowardev Says:

    use kde no? and integrate canonical software no? bah

  2. salemboot Says:

    Well at least when you are generating this much conflict, you know you’re popular..

    Mankind hates change. But he’ll keep hammering his thumbs instead of buying a better hammer.

    Me, I’d just buy one of those 22 caliber nail-guns.

  3. Ryan Sharp Says:

    I know it’s an unrealistic idea but I would love to see Unity stacked on top of KDE. KDE has long been a superior product under the hood and is built with the far superior Qt framework. The only thing stopping me from adopting it, is that the front-end looks awful. Since you are taking a new direction from both projects now anyway – you may as well build you idea on the best foundations. Who knows – maybe KDE will actually co-operate and remove the need for forking.

  4. henry Says:

    I have one question, don’t know where to ask.

    Since Gnome 2 will cease to exist, “fallback” mode of Gnome 3 / gnome-shell shows this pretty well.
    When you go to “fallback” mode of Gnome 3 / gnome-shell, it surely isn’t the Gnome we used to have, it’s something different.

    AFAIR, Ubuntu Unity relies on Gnome 2 / gtk2, so what is going to happen?
    Ubuntu will fork Gnome 2 / gtk2 for Unity, or Unity can also be made to work with Gnome 3 / gtk3 in 11.10 perhaps?

    Mark, please answer.

    Thank you.

  5. Ubuntu Michigan Jam and Unity | Ben Rousch's Cluster of Bleep Says:

    […] instead of defaulting to the upcoming Gnome3.  I’m not going to bore you with the details – Mark Shuttleworth’s recent blog post is as good a place as any to catch up if you’re […]

  6. Srinath Madhavan Says:

    Fine, Let us be objective. So far, both Unity and GNOME Shell have been literally trumped by the familiar GNOME 2 or other DEs/WMs. Here is the voice of the community:

  7. Vadim P. Says:

    According to that poll of a fraction of Ubuntu’s forum-going and voting population, they haven’t been.

  8. @tiempo3000 Says:

    Hola Mark. Soy usuario de Ubuntu desde hace un tiempo. Lo disfruto, mientras trabajo y en el ocio. Espero que toda esta discusión sea un problema de crecimiento del proyecto. Los usuarios miramos atentos los pasos que se dan. Lo que venga después de Gnome 2 tiene que ser mucho mejor porque Ubuntu los obliga. No estoy en condiciones de decir qué será, eso queda a cargo de los responsables. Espero que no se equivoquen y pongan su energía en mejorar a Ubuntu y acercarlo a su espíritu naciente. Saludos. C.G.

  9. Bill Cox Says:

    Hi, Mark. In the off chance you read this far down comments, I’ve got a dumb idea that you may be in a position to pull off. I think you’re beginning to realize that innovation in FOSS land has gotten mired down. The Gnome team is a leading example, but there are many others. I see Ubuntu trying to make the desktop great, and trying to have an answer to the App Store, which would encourage developers to go nuts and write all kinds of great applications. I also see great progress with, which does aid in making new stuff easily accessible to users. However, it’s not enough.

    If you could adopt an Android-like model for sharing applications and software libraries, I think we might see a strong improvement in the rate GNU/Linux progress. Developers like me need the ability to write any old crummy app or library and post it to Ubuntu users and developers the next week, without any major review process, just like Android. The PPA stuff is great, but we need to be able to publish apps that show up in Software Center. We also need to be able to patch existing libraries and share our new versions easily in a way that linking against them is just as easy as the using default versions. It would also be nice to have a way to sell paid apps in the App Store, to attract developers out who want to make a few bucks.

    Part of the key to Android’s success is the app-jails. Each app has permissions limited to what the user agrees to allow it, and they only have access to their own files in most cases, under a single directory. Updates never change the version of libraries any app is using, so bugs are never introduced due to an upgrade. This model of not trusting the app is what makes it possible to publish them so rapidly, without all the red tape.

    Forking a project (Gnome perhaps?) should be as simple as git clone. Developers should be able to use your fork as easily as the original, and without waiting for it to be adopted by Debian, or any other gate keeper. With app-jails, and by providing each app with the exact version of every library they were built with, this is all doable. Teams like Gnome should not be allowed to restrict innovation. Instead of submitting patch requests and praying that they are adopted, developers should simply fork upstream. Upstream is free to pull patches at their convenience. The rest of the community should not suffer just because upstream is slow to do so.

  10. Friedrich Says:

    BITCH FIGHT!!! Love it! This is what drives innovation forward. I’m serious.

  11. Vincent O'Neil Says:

    Isn’t Ubuntu based on GNOME? What happens to Ubuntu after the GNOME project ceases active development on GNOME 2.x? Will Ubuntu continue to use the “old” GNOME? or will they adopt GNOME 3? If so, then would they need to adopt GNOME Shell wouldn’t they? I’m genuinely interested in knowing the future of Ubuntu if this is the case. Will Unity be adopted to replace Gnome Shell in GNOME 3 if Ubuntu eventually adopts it?

  12. darkone778 Says:

    As a Linux user I find these type of debates to be about as useful as which came first chicken, or the egg. This is FOSS, FLOSS, OSS call it whatever you want. If for example Red Hat makes 91 percent of the code for Gnome congrats. Here’s a big old pat on the back for Red Hat. If most people or companies have issues with what X company does with Y companies code. Here is a brilliant idea change the license. This is FOSS, FLOSS, OSS every developer or company has an itch for their own way of coding or doing things. If you do not like the way it is being done take your ball, in this case code, and go home.

    You can call these types of debates constructive or whatever you want. In the end these arguments are mainly about stroking developers or a companies be it ego or bottome line. All these arguments are nothing more than semantics. So to all the devs and companies complaining about this a company made a choice. They said the UI the community developed (most done by Red Hat) was not the direction they want to go. So the company exercised their freedom of choice the Linux community preaches about. This company (Canonical) decided to develop what they felt was the vision for the UI they had. So to the Gnome devs if they (Canonical) had taken the Gnome Shell and Gnome 3 base and changed it to unity would you still be complaining about that to? Why because they are being good OSS citizen. Maybe looking at yourselves first would help. Problem 1 the license. Problem 2 how many maintainers do you employ in this project? Not every maintainer is going to unbiased about what code they let into their project.

    So is it about freedom of choice or not? You can not preach about choice if when or something makes a choice you do not like and condemn them for it. Can not have the cake and eat it to. Because right now s tounds like certain individuals want the whole cake to themselves. Who that maybe well that whole truth thing would have to determine. For me, I personally think the truth is in the middle of all this. So everyone has a POV, can twist facts to suit their needs or POV. So can we truly really have an unbiased discussion of someone not pushing their own agenda in the Linux community? It would be nice, but not realistic

  13. Srinath Madhavan Says:

    This “Unity” shell business is totally misguided. Not that Gnome shell rules or anything though. It sucks all the same. But that’s another matter. The question I have is simply, what Mark and Canonical plan to do when most of the GNOME applications (like Gthumb, Banshee, Shotwell etc.) start incorporating code that is specific for inter-operation/integration with GNOME shell, which will happen for sure. Perhaps not now, but in the coming years, sure. This will undeniably force many a dependency on packages not really required to run Unity, and in some cases can even cause conflicts with Unity’s dependencies. To get out of this, Ubuntu will have to fork GNOME 3 too?

  14. Diego Viola Says:

    Please make Wayland a reality, Mark.

  15. T.Sturm Says:

    Unity ist rein bedienphilosophisch eine Katastrophe… Zähle mal die Klicks, bis du das Programm gefunden hast, welches du verwenden möchtest… im vergleich zu Gnome 2. Wer sucht der findet. Wer dienstlich nichts mit Linux zu tun hat, sondern vor eine Windows-Maschine gezwungen wird, wird an Unity nur kurzfristig Spaß haben, wenn überhaut… Unity ist noch nicht einmal schick… Das können Andere weitaus besser. Wenn auch Gnome 3 nicht der bedienphilosophische Hit der Zukunft ist und sich auch dort bei einigen Anwender (und vor allem Neulingen) die Haare sträuben. Man muss sich bei solchen Aktionen der Entwickler mal fragen, wa sie eigentlich so den ganzen Tag machen. Statt ein Linux-System auf die Beine zu stellen, dass endlich mal vernünftig und stabil läuft, daß daß System einen ordentlichen Treibersupport bekommt – wird eine Bedienoberfläche zusammen geschustert, an derer die Zielgruppe Mensch verzweifelt und alle Meinungen auseinandergehen. Ich habe Unity installiert und versucht meine Arbeiten wie bisher auszuführen. Der typische Microzoff…-Effekt tritt ein: Zeitverschwendung beim Ausführen alltäglicher Dinge am Computer, statt sich auf die wesentlichen Dinge konzentrieren zu können. Computer sollen dem Menschen die Arbeit erleichtern und Zeit für wichtigere Dinge freimachen… hat Microsft mal versprochen (vor ca 20 Jahren?) aber bis heute hatte ausschließlich Windows das Privileg dem Menschen seine (begrenzte) Lebenszeit zu stehlen… Unity ist auf dem besten Weg Windows dieses Privileg streitig zu machen.

  16. Ubuntu 11.10 将搭载 GNOME 3 + Unity_Ubuntu新闻资讯 | UbuntuSoft Says:

    […] GNOME 3 核心开发者之一 Dave Neary 的这篇文章和 Mark Shuttleworth 的回应。这在 GNOME Shell 和 Unity 之争中算是一个代表性的事件,Unity 团队和 GNOME […]

  17. Ubuntu 11.10 将搭载 GNOME 3 + Unity : OSMSG Says:

    […] GNOME 3 核心开发者之一 Dave Neary 的这篇文章和 Mark Shuttleworth 的回应。这在 GNOME Shell 和 Unity 之争中算是一个代表性的事件,Unity 团队和 GNOME […]

  18. Natty and Unity at WMLUG | Ben Rousch's Cluster of Bleep Says:

    […] it all here because I covered some of this in a previous blog post, Mark Shuttleworth has several good blog posts about it, and a Google search for Unity will get you more than you could ever […]

  19. Joe Linux Says:

    What I care about most is an easy to use configurable desktop environment. At the moment that seems to be Gnome 2.30.2. Unity is a total loser for me and Gnome Shell doesn’t seem to be an actual offering. All the he said, she said makes little difference until one or the the other actually comes up with a user friendly desktop.

  20. Peter Levine Says:

    Today I saw a long review of Unity on Tom’s Hardware and it looks fairly positive. Only let down is that not all users can try it (due to hardware, myself included) but the future looks nice. At times breaking the status-quo is equally important..

  21. Tom Collins Says:

    Give it a break, Shutleworth. You are starting to sound a lot like Steve Ballmer.

    All your recent posts and talks have been mostly focused around how individual free software contributers should be increasing your bank balance, which is quite frankly disgusting. Perhaps it’s not transparent enough for most people to see but I can assure you, an ever-increasing number of people are becoming sick of it.

    The reason that people percieve you as being at war with Gnome is because most of the folks there are (fortunately) smart enough to see through your backhanded “generosity” and are actively trying to avoid your tainted “suggestions”.

    Canonical is probably a bigger threat to Free Software than any proprietary software company is right now. Without trying to sound like the proverbial conspiracy theorist – I wouldn’t be at all suprised to learn that you’re actually a Microsoft shill. I bet you and Ballmer have a big laugh about it down at the strip club.

  22. N.K. McDougall Says:

    Hi there would you mind sharing which blog platform you’re using? I’m planning to start my own blog soon but I’m having a tough time making a decision between BlogEngine/Wordpress/B2evolution and Drupal. The reason I ask is because your design and style seems different then most blogs and I’m looking for something unique. P.S My apologies for getting off-topic but I had to ask!

  23. mark Says:

    Hiya NK – it’s WordPress.