GNOME 3 and its inevitable growth pains lie at the heart of user perceptions and problems with GNOME. Yet, Benjamin Otte hints at a deeper malaise among the developers, of desertions and lack of numbers on key projects, dominance by Red Hat, and a lack of coherent purpose, which he says dates back to 2005. "Back then," he writes, "the GNOME project had essentially achieved what it set out to do: a working Free desktop environment. Since then, nobody has managed to set new goals for the project. In fact, these days GNOME describes itself as a 'community that makes great software', which is as nondescript as you can get for software development."
Otte complains that he is the only significant contributor to GTK, and this is important because GTK underpins a lot of software that matters, including Inkscape, The GIMP and Xfce (although some of these projects are still using GTK 2 and haven't as yet migrated to GTK 3). A project the size of GNOME needs developers and as Alex Diavatis observes: "GNOME Shell has a more than sufficient number of committers while other more important modules like GTK are left behind. An obvious explanation is that GNOME Shell attracts people because [it] is easy to work with it and is also kinda impressive as [a] project. On the other hand GTK (as many other modules) is a nightmare to begin to develop, because of the vast code and C difficulty factor."
Disenchantment and relative boredom are issues that afflict any large software project. At the beginning there are mountains to climb and problems to solve, new horizons and triumphs to be encountered, but after a time the law of diminishing returns sets in. As a project matures there is less to spark the interest and enthusiasm of developers, and the project loses energy and some of its sense of purpose – or other people become involved and the vision slowly changes. This isn't a reason to radically change the direction of a project, but does inform some of the reasons why it happens. For the GNOME developers the search for a vision and the changing nature of the desktop have made the switch to GNOME 3 both necessary and inevitable to suit the changing demands of the user and the hardware.
Jono Bacon, whose interest in GNOME predated his interest in Ubuntu by a good few years, recognises this problem but doesn't agree that GNOME has lost its vision. "There was a long time when it struggled to find a vision," he says, "but they have one now with GNOME 3. The thing they don't have is the celebrity leadership they once had. GNOME 2.0 was led by Miguel de Icaza, Nat Friedman and all those people who spent their time writing cool technology and hanging out at weekends over barbecues. People miss that. I miss that. I used to love reading what those guys were doing, and if you were to talk to those people now they would all agree, every single one of them, that GNOME is still important to them, but writing code for it isn't interesting to them any more. Miguel cares about GNOME. He's just more interested in working on other things. I still care about GNOME. I've cared about GNOME for 12 years now – but am I interested in solving the problems in GNOME? Not really."
A Red Hat project
GNOME has had to find a new energy and purpose. Changing realities have meant that some of the commercial interest in GNOME has fallen away, and companies that once contributed large numbers of developers have devoted their energies elsewhere. Otte complains that "GNOME is a Red Hat project. If you look at the Ohloh statistics..." he suggests "you get 10 Red Hat employees and 5 others... This gives the GNOME project essentially a bus factor of 1."
The size of Red Hat's contribution highlights the decline in participation by other companies, such as IBM, Novell/SUSE, Nokia and Oracle/Sun, who each made significant contributions to GNOME over the years. The argument isn't that Red Hat has undue influence over the direction of the project, but that there aren't enough contributors to the nitty gritty aspects of the code. Indeed, Dave Neary observes that "Red Hat has a great track record of hiring people and liberating them. Setting an agenda in some sense, yes, but allowing their developers to maintain control over the projects that they are developing. Red Hat employees are not, at least consciously, acting as a block to work on some Red Hat corporate agenda."
The companies that do get involved in GNOME development tend to be "working on toolkits or lower level libraries like pulse audio, making hardware work well, or working on system administrator tools" – the less glamorous but vital facets of a project that are essential to its well being, and the parts of the code, such as GTK or glib, are where GNOME is lacking contributors. This is true whether the direction of GNOME is towards GNOME 2 or GNOME 3. It could be argued that the fall away in contributions to GNOME is precisely because GNOME 2 has lost some of its relevance, and GNOME 3 may be the route back to relevance on future devices. Although it remains surprising that companies have not been willing to pick up the slack on GTK, which is key to many other projects that use the Linux stack.