Canonical's announcement that it would not adopt GNOME Shell for Ubuntu 11.04 has not been universally loved. But is Unity divisive or just a typical development decision being given too much weight?
Last week, Mark Shuttleworth announced that the default desktop for Ubuntu 11.04 would be the Canonical-developed Unity desktop. It’s not a fork, but it does raise a number of issues about Canonical’s direction and the future of GNOME.
The issue in a nutshell? GNOME 3.0 is on the horizon and with it comes a new interface called GNOME Shell. Canonical have been on the fence with GNOME Shell, and have been developing a UI called Unity for their netbook remix. At the Ubuntu Developer Summit (UDS) last week, they formally announced what quite a few people suspected — that they’d not be taking up GNOME Shell and would instead use Unity.
First, a disclaimer: I’m a member of the GNOME Project and help with PR for the project on occasion.
As expected, this move ruffled quite a few feathers — but why? Ubuntu is not the first distribution to ship a customized GNOME. Canonical is not the first company to take huge chunks of the GNOME platform, but leave behind the GNOME shell. Moblin, and now MeeGo, based a lot of technology on GNOME but decided to ship their own interface.
The Fedora Project and Red Hat have rejected components of GNOME that require Mono. People did get upset at Novell for its Slab menu (which I still hold is better than the default GNOME menus), which was hardly an Earth-shattering change. What gives?
It’s really all about perception. Red Hat, rightly or wrongly, gets a pass for stripping out Mono because Mono has been painted as “evil” by many parties in the FOSS community — and Red Hat has maintained a strong “good guy” image in the community by dint of its enormous contributions to just about everything Linux-related.
Novell got slammed because, well, it’s Novell. And it was going against the flow with the GNOME community by doing its work away from upstream and in its own little sandbox. This is a guaranteed way to annoy developers. So imagine just how annoyed the GNOME camp is at Unity already, and then to have it announced without any warning at UDS as the default 11.04 desktop when GNOME Shell is just on the cusp of release. I say “without warning,” because as far as I know not a single GNOME contributor outside of Canonical was given the courtesy of knowing about the announcement ahead of time — not even the developers attending UDS. Not exactly a way to assuage any concerns about taking a divergent direction from GNOME.
Ubuntu has, for many years, been the GNOME showcase. The flagship for the GNOME community — Ubuntu far and away enjoys more desktop users than any other distribution, and probably (though reliable stats are hard to come by) as many users as Fedora, openSUSE, Debian, and Linux Mint combined. More on this in a moment.
Copyright assignment and Canonical direction
Another reason that Canonical’s taking heat for this is its copyright assignment policy and the way Unity is being developed. The perception, if not reality, is that GNOME Shell is community developed and Unity is Canonical developed. The reality is that Unity is 100% Canonical right now, and GNOME Shell is heavy on Red Hat contributors but contributions from other individuals or companies.
So Unity, in its present state with current Canonical policies, can never be part of upstream GNOME. Other projects can ship it and use it if it turns out to be successful, but it seems likely that outside contributors will not significantly influence Unity without adhering to Canonical’s vision for the project or forking it.
Don’t call it a fork…
A couple of people have been calling this a fork of GNOME. Earlier this year Canonical addressed the “fork” issue and said “no, we’re not forking GNOME.” And they’re not, they’re diverging.
Canonical are leaving most of the GNOME platform untouched, and simply swapping out the desktop shell and some other bits. But they’re not trying to push their own project based on GNOME code in a different direction. If Unity constitutes a fork, then just about every distro “forks” GNOME. Fedora chooses not to ship Mono and Mono apps by default. Linux Mint and openSUSE have their own custom additions to GNOME, such as custom menus.
Most distributions ship non-GNOME default apps. Who ships with Epiphany by default as the Web browser? Answer: None of the major distros. For good reason. But shipping Firefox isn’t considered a fork, it’s considered good practice to meet user expectations.
What does this mean for GNOME? I think Dave Neary was ahead of the pack when he predicted GNOME becoming a platform rather than strictly a desktop.
GNOME has to evolve. The free desktop is rapidly evolving, and standard desktop applications aren’t the be-all and end-all of computing. People are using Web applications more, for example, and I’m glad to see GNOME taking tentative steps towards Web services. Well, I’m glad to see GNOME taking steps towards Web services — not so much glad that they’re so tentative.
I’d like to see a much larger crop of applications out of GNOME that focus on Free Software, Web-based applications. And I’d love to see the GNOME Project follow in Mozilla’s footsteps in finding ways to make money off those services to fund more and faster development, and not be quite so dependent on companies for their funding.
It’s not just Ubuntu that’s not going to default to GNOME Shell with the release of 3.0. I’ve talked to the project lead for Linux Mint, Clement Lefebvre, and he’s indicated that they’re unlikely to switch to GNOME Shell either. Nor do they plan to switch to Unity, and will probably stay with “classic” GNOME.
Now would be a good time for the GNOME Project to have a good think about its role with regards to its consumers and audience. The move to Unity shows that there’s simply not, ahem, unity on the direction of GNOME going forward. The fact that the largest consumer of GNOME, the Ubuntu community, is not aligned with the development direction of GNOME Shell shows there’s a bit of a disconnect. One hopes that the GNOME Project, including Canonical, will use this event as an opportunity to figure out how to better work together. For that to happen, the GNOME developers need to see Canonical and Ubuntu as a more important part of the community — size of code contributions aside. And Canonical and Ubuntu need to see themselves as part of the GNOME and Linux community, which I am not entirely sure they do.
Community: Which community?
Ubuntu Community Manager Jono Bacon said something interesting on Identi.ca, which I don’t want to over-emphasize, but I think sums up the situation: “Canonical doesn’t really go it’s [sic] own way, it is the way of what is best for the Ubuntu community.” The original comment to which Bacon replied was “People see Canonical going their own way sometimes. Not always part of the community.”
Simply put, Ubuntu community is not the same as the Linux community that many have imagined. Canonical have consistently moved to stand slightly apart from the rest of the Linux community. Its code of conduct was the first to really emphasize being nice to new users, something that set it far apart from other distros in 2004.
The company fostered “LoCo” teams when Linux User Groups already existed in many areas. Launchpad could have been developed in concert with other projects, but the company pursued a singular collaboration tool around its own community.
Ubuntu’s largest contribution, which unfortunately is rarely recognized as such, may be marketing. When I say “marketing,” I don’t mean simply advertising. I mean actually listening to its users and trying to provide what non-technical end users want instead of what developers feel like providing. In an ideal situation, this would work out well for everyone involved — the problem is that marketing and reaching end users is not seen as a valid contribution by many developers who only count contributions in bugs squashed and code generated. There’s also the very real consideration that Canonical needs to acknowledge which is gaining users for Ubuntu does nothing to help companies that fund much Linux development. In other words, both sides need to move a bit more to the middle. Canonical should keep doing what it does well, but it would be nice if they also contributed in more ways that benefit all the contributors and not just Canonical or Ubuntu — at least if they want the respect and cooperation of other development-oriented companies.
Recently, the Ubuntu community pushed for its own StackExchange, which was not entirely well-received by other Linux proponents who would have liked to see a unified Linux forum instead. (Go to LinuxQuestions.org.)
Look at the Ubuntu.com site and you’ll notice — there’s nary a mention of Linux or GNOME on the front page or on several of the “About” pages. The company and project are pursuing branding that doesn’t even mention the Linux heritage of the project. That might be a good strategy, considering the perception of Linux for many users is “something just for geeks, not for me.” But at the same time, some of the rest of the community are a bit — dare I say — jealous of Ubuntu’s success and wishing the project were more effusive with its acknowledgment of its heritage.
My purpose in writing this isn’t to point fingers, but simply to assess how we arrived at a situation where the largest consumer of GNOME is going in a different direction as the GNOME Project. Also, to try to clarify why it’s raising tempers in some circles. Simply put: Ubuntu is the most visible GNOME consumer, and its move away from GNOME Shell is something of a rebuke of the GNOME Project’s direction and development processes. More simply: Ubuntu isn’t being a team player here.
Whether it should be is another question entirely. The rest of the team hasn’t always been particularly receptive to Canonical either. If the powers that be at Canonical think there’s a greater chance of making Linux succeed on the desktop with Unity, then they should pursue that. It’s not Canonical’s responsibility to adopt GNOME lock, stock, and barrel if they don’t feel it’s best for their user base.
On a technical level, I think Canonical are biting off more than they should with this. Having used current iterations of Unity, I don’t think it’s ready for prime time on netbooks — and suspect that six months of development are going to be insufficient to get it ready for standard desktops. If Unity is unready, it’s going to backfire in a large way. I’m also unconvinced that Unity is a great interface for desktop systems. Luckily this is an issue that will be settled with code — when the rubber hits the road, either Unity will or won’t be the right technical choice will be settled when 11.04 ships.
What do you think? I’d be curious to hear how the linuxdlsazine audience feels about the switch, and whether it’s a good or bad move on Canonical’s part.