Notes on the Future of GNOME: The Great Achievements

I promissed myself to write this series of blog posts a long time ago but now that Andy talked about GNOME’s decadence just before GUADEC, I thought it’s the right time to write this. :-)

I totally agree with Federico when he wrote on our Annual Report 2007 that GNOME has achieved its original goal. We reached a point where we have a desktop environment that “Just Works” for most of common tasks on a personal computer. However, it’s been some time already that having a desktop environment that just works is not being “enough” for our community and GNOME as a project. The symptoms of this collective “agony” show up every now and then in form of a bunch of random ideas about how to re-think the whole interaction model of GNOME, endless discussions about our 6-month development cycles, the urge to deprecate certain jurassic libraries, long conversations about the definition of GNOME itself, harsh comments about GNOME not having a clear direction, lack of leadership inside the community, and many many others. Those topics have been around for a long time (just Google them and you’ll find quite a lot of old threads on GNOME mailing lists) but we haven’t been able to translate them into a clear direction for the project. In my opinion, this has a strong relation with how we’ve been organizing ourselves since GNOME 2 release and the more fundamental goals of the project.

So, is GNOME in a state of decadence? Yes! Is it a bad thing? Not necessarely. It depends on how we react to this situation from now on. Why? Because what is in decadence is not GNOME itself (we are a great project with the coolest community!) but the current form of GNOME. Before going straight to the nasty problems and some of the core aspects of the current situation,  I’d like to first talk about the most important achievements of our community so far which, in my opinion, we should be really proud of and try to keep in some way. Those achievements are beyond the more obvious one of having developed a great desktop environment and development platform. They have more to do with the way we do things.  They might be obvious for a lot of people in GNOME but I think it’s important to mention them anyway.

The first and more important achievement of GNOME is our community. We managed to agregate, through the more than 10 years of project, hundreds of extremely talented and generous contributors. Not only that, we have also consolidated a very positive and welcoming atmosphere inside the community which makes it a very nice group to belong, have fun and hack on cool software. Another important aspect of our community is its diversity. We have volunteers, employed developers, companies and non-profit organizations from all around the world, working together in the same ecosystem. Additionaly, we have a relatively large user base which helps us to improve our software everyday. We gained trust from highly relevant stakeholders who use, develop, extend and deploy our software stack in contexts ranging from social inclusion projects to large public/private corporations. From my perspective, our community managed to grow and mature so much through the years because of our development process and the some fundamental principles that tacitly (and sometimes explicitly) defines GNOME software. That brings me to the next two important achievements of GNOME: development process and usability culture.

Even though I wasn’t there (I started to contribute to GNOME in 2004), it’s pretty clear that the GNOME 2 release was a moment of important changes in the community and the development process itself. The release team was founded to coordinate the development process and turn the collective work inside GNOME into a saner thing. Since then, we’ve learnt a lot. The general guidelines have evolved in such a way that nowadays we have a mature, stable and predictable development process which is relatively easy to understandefficient on the coordination of contributors with different levels of engagement and availability and scalable enough to deal with hundreds of software components. The efficiency and scalability doesn’t come from nowhere: they come from the fact that we develop software in a distributed way. GNOME developers dedicate their time to improve specific domains inside the project. Our collaboration dynamics is set in such way that individuals can have a lot of influence in GNOME in relatively short time. Unfortunately, the same development process and collaboration dynamics that bring so many benefits to GNOME also have some serious drawbacks (which I’ll talk about later).

Lastly, in my opinion, the usability culture inside GNOME is one of the most important assets of our community. We care about the users. There’s an implicit urge (explicitly expressed in our UI guidelines) among contributors that every piece of user interface should be as much intuitive as possible. We can easily recognize what has been done in a GNOMEy way or not. There’s a relatively clear understanding inside the community of how things should be done that is passed forward to new contributors everyday. Considering the distributed nature of our development process, having stabilished such a culture in GNOME is a great achievement! Even though this usability culture is something that strongly defines the way we do things everyday in GNOME, I think we haven’t taken full advantage of that as a way to re-define the direction of the project. Again, more on that later. :-)

I’m sure people will have different opinions about those achievements, what’s more relevant, what’s irrelevant, etc. That’s great. The bottom line here is to recognize that we’ve been doing a great job. Really. Those are achievements that we should try to maintain, improve and adapt depending on our needs. There are big challenges ahead though. Next post: the nasty problems and the urgent need to change.

Published by

lucasr

Lucas Rocha is just a brazilian guy who loves hacking and music. He lives in the frozen lands of Finland with his lovely wife Carol. He works for Nokia in the development of Hildon and Maemo. In his free time, he's a happy GNOME contributor. He has a mustache, a beard and big smile in his face.

9 thoughts on “Notes on the Future of GNOME: The Great Achievements”

  1. Hi,

    I fully agree with you, especially about the strength of GNOME (happy, open, usable, etc.). Maybe did you just forgot i18n ;) which can be included in usability. Same for a11y.

    Decadence is by far too negative to explain the current situation. I agree that all that work on rewriting parts of GNOME could look like a loopback not very productive. But that’s actually wrong, and not all the work on GNOME. First, GIO, new gnome-session, epiphany-webkit, etc. allow us to fix limitation of 2.X. Second, GNOME also has great innovation : Empathy, GNOME Scan, vala, etc. are all just promising and very exciting projects.

    However, GNOME do have some issue, and i’m pretty sure you will expose clearly most of them. I’m a bit afraid of the decision that will be taken. Will we break everything and restart from scratch ? I’m sure not. But how to solve issues without throwing the baby with the water ?

    I guess that Gtk+ is, one more time, a good starting point. Gtk+ 3.0 hackfest exposes this amazing migration plan. May GNOME follow a similar way, ever evolving, taking the opportunity to drop jurassic code while keeping migration smooth.

    For the best for developers and users, as usual ;)

    Best regards,
    Étienne.

  2. Lucas, you’re definitely one of my favourite persons. It’s a pleasure to read you.

  3. Hi Lucas,

    I agree with your opinions and others on the desktop. I don’t believe there’s a massive game changing change we can make to the desktop to improve it, at least not at the moment. I think evolution of the desktop is the way to go. The average user and especially corporations aren’t huge fans of massive changes as it costs them too much in productivity loss and re-education. One of the reasons I believe we’ll do very well over the next couple of years on the desktop is due to consistency. Just look at the corporate response to Vista, which while it looks a little different to XP, I don’t think its a massive change.

    I think the areas that GNOME can make the revolution happen is on the new styles of devices that are coming out. Look at things like the openMoko phone, Nokia Internet Tablets, eeePC and the NetBooks, iPhone/iPod touch, Intel MID devices, OLPC, etc etc….

    The issue that I see is that gnome seems to be quickly losing these devices… the gnome mobile effort seems to be moving slowly, the performance may as well be dead with no posts since Oct 2007. OpenMoko is moving from the gnome mobile stack to qtopia and efl, nokia is reviewing their use of gnome…

    I think that we’re losing the areas we could be innovating most, the desktop is a done deal, there are gains to be made but the massive gains will be in the small innovative devices. Just look at the impact the eeePC has had on the consumer market running linux. A lot of consumers don’t care overly about the OS. This device proves it… but try and run evolution on it or any other device that uses 800×480…

    I think also the cleanup and deprecation of ancient libraries will help the speed and mobile in a lot of deployment things…. things like libgnomeprintui and bonobo are still hanging around a couple of releases after there replacements… at this rate it will be 2010 and we’ll still be aiming for the big 10 and we’ll still depend on bonobo!

  4. The original aim of the Gnome project was not a desktop that just works. It was to create a network-aware component model that supported compound documents. Building the desktop was a side-track: it had to be done to have somewhere to edit the compound documents.

    Somewhere along the way, the original goal was discarded and the temporary side-track became the new goal.

Leave a Reply

Your email address will not be published. Required fields are marked *

Attribution-NonCommercial 3.0
This work is licensed under a Attribution-NonCommercial 3.0.