At the recent GNOME User and Developer European Conference (GUADEC), the GNOME release team announced a proposal for developing the next major iteration of the open source desktop environment. The plan offers a long-term strategy for moving GNOME development forward and defining future goals for the desktop.

The long road towards the first step



The path the GNOME community took to this proposal is somewhat complex. When the prospect of GNOME 3 was first discussed by developers in 2005, the concept took on a life of its own among the users who imagined that it would be an audacious reinvention of the desktop with completely new interaction paradigms and a new kind of user interface. This pie-in-the-sky vision was referred to as ToPaZ, word play on the phrase three-point-zero.

Although the ToPaZ meme was not widely embraced by the developer community, it gained an enormous amount of traction with Linux enthusiasts who wanted to see more innovation on the desktop. For instance, it spawned extensive discussion in the GNOME wiki and a whole new section at the GNOME-Look theming web site, devoted to mockups and brainstorming.

The basic idea behind ToPaZ, however, was fundamentally out of step with the underlying philosophy of the GNOME development community. Incrementalism is among GNOME's defining values and is one of the major factors that has contributed to GNOME's popularity with commercial Linux distributors. GNOME's developers concluded that a radical departure from conventional desktop idioms was ultimately not in the best interest of end users. The consensus was that their goals for the future could be reached one step at a time through minor releases on a consistent schedule—there would be no GNOME 3.0.

Major changes are incubated in parallel to GNOME development and are usually not integrated into the environment itself until they are proven. Most new GNOME technologies have already been adopted by at least one or two major distributors before becoming an official part of the desktop stack. Distributor uptake is, in fact, one of the factors that is evaluated when new modules are proposed for inclusion into GNOME. The process is always undertaken with utmost care in order to minimize disruptions to the end user experience and inconveniences to third-party software developers.

The success of this strategy has been demonstrated by the large number of impressive infrastructure elements that have been streamlined into GNOME through incremental development. A good example is the transition from the anachronistic Bonobo component framework to the new D-Bus interprocess communication system. This major transition was achieved over the course of several releases without a major desktop-wide rewrite.

Going from three-point-no to three-point-oh



Although the GNOME development community is still strongly committed to maintaining its incremental development strategy for the desktop, the rules are different for GTK+, the underlying toolkit used to build the platform. Developers have grown increasingly frustrated with the limitations of GTK+ and have started to evaluate proposals for remedying its weaknesses and adding more modern capabilities.

We looked at some of those plans in depth back in April. Imendio, a software company that builds applications with GTK+, has called for clean API/ABI breaks at predetermined intervals and an overhaul with the aim of improving portability, simplifying theming and widget creation, and creating architecture that will make language bindings easier to maintain.

GNOME developer Havoc Pennington also published a proposal that called for an integrated scene graph system that would bring richer graphical capabilities to the toolkit. The first steps towards achieving Pennington's goals have already been fulfilled by Clutter, a powerful GObject-based graphics framework built by OpenedHand. The call for a toolkit overhaul was the first major acknowledgment in the GNOME community of the need for change.

In the months leading up to the GUADEC event this year, some GNOME developers began to express a bit of discontent with the general state of the desktop. This movement started in developer blog entries and gained momentum as other developers picked up on it by reading the Planet GNOME aggregator. It was given a name by Andy Wingo, who wrote that GNOME had fallen into a state of decadence.

"The problem, as I see it, is that GNOME is in a state of decadence—we largely achieved what we set out to achieve, insofar as it was possible. Now our hands are full with dealing with entropic decay," Wingo wrote in a blog entry. "It does not seem to me that GNOME is on a healthy evolutionary track. By that I mean to say that there is no way there from here, if 'there' is universal use of free software, and 'here' is our existing GNOME software stack."

The sentiment was echoed by others and eventually spilled over onto the GNOME desktop developer mailing list, where it became a discussion thread about the need for leadership and direction.

The new plan



All of the ennui and frustration eventually took a positive turn and culminated in the plan that was proposed by the GNOME release team at GUADEC. The GNOME development community will reach 3.0 but will do so without disturbing the users and without discarding the long-standing philosophy of incrementalism. There will be a GNOME 3.0, but it will not be what so many envisioned for ToPaZ.

"There are still lots of details to discuss but the important thing is that our proposed mindset for 3.0 is in place for discussion now. It involves a relatively smooth transition from 2.x to 3.x, a more focused and inclusive development process, long-term development cycles, and more," wrote GNOME contributor Lucas Rocha in a blog entry.

The GNOME 2.30 release, which will be about a year and a half from now based on GNOME's standard six-month release cycle, is what the developers have decided to call GNOME 3.0. During that time, the GTK+ toolkit will undergo its transformation and much of the desktop infrastructure that has been under heavy development will be more mature—this includes Clutter, Vala, PolicyKit, PackageKit, GVFS, D-Conf, and the GTK+ WebKit port.

Some have speculated that the GNOME 3.0 transition will be like the somewhat controversial development KDE 4, but such speculation isn't consistent with the details available about the release plan. Unlike KDE 4.0, which produced impressive innovation and accelerated development at the cost of user trust and overall desktop stability, the GNOME 3.0 plan is less ambitious, largely builds on the GNOME desktop environment's current strategy, and avoids significant user-visible changes or disruption to basic desktop usability.