The release of GNOME 3.0, the popular desktop's first major release in eight years, promises to be the major free software event in autumn 2010. Where is GNOME now? What can we expect of GNOME 3.0? Of GNOME 3 as a series of releases?
When I asked Stormy Peters, the executive director of the GNOME Foundation, where to go for answers, she directed me to Vincent Untz. A director of the GNOME Foundation and one of the senior members of the GNOME Release Team, Untz is better positioned than almost anyone to offer an overview of the project from both a general and a technical perspective.
The release last March of GNOME 2.30 marks the end of a series of releases that dates back to June 2002. Asked to characterize the GNOME 2 series, Untz described it as "an evolution rather than a revolution. If you compare GNOME 2.30 to GNOME 2.28, for example, you'll see small differences. But if you compare GNOME 2.30 to 2.12, say, there's a huge world of difference between the two, and that's what most people don't see."
The Priorities of GNOME 3.0
According to Untz, GNOME 3.0 will have three main directions for the desktop. First, much as KDE redefined itself as a community rather than a desktop, GNOME will emphasize its ecosystem of applications more, rather than just the desktop.
"People think of GNOME as one big thing, but we think that's wrong," Untz says. "So what we're trying to do is define GNOME as two different things: the core, which is all those programs that the user should not really care about, and then the applications, which is what the users should care about. By doing this, we think we will bring more value and interest to the users. They will have a better experience."
Partly, this new emphasis will be a matter of marketing and of raising awareness. However, Untz emphasizes that it will also include "trying to be more inclusive throughout the general GNOME community" and making the process of of becoming a GNOME application easier on both the technical and the administrative level within the project.
The second priority is accessibility -- tools like the Orca screen reader for the visually impaired. Part of the reason for this priority, Untz says, "is that we are doing a great job of that, and accessibility is important for a lot of markets. If you look at all the desktops -- not just the free ones, but all the desktops -- GNOME is one of the most accessible out of the box. For example, Windows is lacking some tools that we have out of the box."
Another reason for the priority is that GNOME's accessibility stack is switching from using Corba and moving to D-Bus. Although this change is largely invisible to users, it represents a major transition from a programming perspective -- so much so that the change, which was supposed to happen in GNOME 2.30, was delayed until GNOME 3.0 to ensure its stability. It is further delayed by the need to develop a new integration library called Cally for Clutter, an interface library that key aspects of GNOME 3.0 depend upon.
The advantage of these behind-the-scenes alterations is that, in GNOME 3.0, the accessibility tools will work with applications from KDE and other desktops. "As of today," Untz explains, "if you open a KDE application in GNOME, it won't be accessible. Or, if you open a GNOME application in KDE, it won't be accessible. By working on this, the GNOME community is trying to open new doors to other projects. Actually, it was designed with people from other projects."
However, by far the most obvious change in GNOME 3.0 is a move from the 2.x series' emphasis on usability, as embodied in the Human Interface Guides that GNOME applications are supposed to follow to a higher-level perspective that Untz calls the user experience.
Untz explains the difference by saying, "Usability is a sub-set of the user experience. So the user experience is not just about usability. It's about the whole feeling of the desktop."
The most obvious sign of this emphasis on user experience will be the transition from the current desktop to the radically different GNOME Shell.
"The shell is the part of the desktop that people are interacting with when they are not using a specific application," Untz says. "And, for most people, this shouldn't be something they have to care about. It should be transparent. So that's what we're trying to do with the GNOME Shell."
Probably the most important change in the GNOME Shell is a new emphasis on virtual work spaces. In the GNOME 2 series, workspaces are a "preference" that users are left to discover for themselves. When a new user encounters them, the result is often confusion.
"When you look at a non-experienced user using a desktop with workspaces," Untz says, they don't know how to deal with them. Often, they change their workspaces by accident, and they feel that they've lost their windows. So they don't feel that [workspaces] are something that they can use. They don't feel comfortable."
By contrast, in the GNOME Shell, "it's easy to create a new workspace when you launch an application, because this new application is a new task for you. We're trying to push this kind of stuff to make it easy for users to discover what is useful to them, instead of forcing them to [deliberately] learn." The GNOME team anticipates that this new ease of use will make users more comfortable with adding multiple workspaces to their work flow, particularly since workspaces can be more prominently displayed in GNOME 3.0 than in earlier releases.
Other GNOME Issues and Evolutionary Paths
When GNOME 3.0 was first announced just over a year ago, one new feature that was prominently mentioned was Zeitgeist, a calendar-based file browser. Now, however, its inclusion is less certain, and will be decided upon shortly. "The issue today is that Zeitgeist and GNOME Shell don't integrate with each other," Untz explains. "They feel like two different things, and that's not the way we want to do it." Possibly, the idea of Zeitgeist will be implemented with new code; equally possibly, the integration of Zeitgeist -- or GNOME Activity Journal, as it is being called now -- will be delayed until the GNOME 3.2 release."
Similarly, the notification subsystem introduced by Canonical Software in Ubuntu's version of GNOME in the 2.x series will almost certainly not be a part of GNOME 3.0 because of the difficulties of integrating it into GNOME Shell.
According to Untz, the GNOME Shell has its own notification system, and, although its daemon is similar to Canonical's, it is not based on the same code. "The results will look very similar, but, from a design point of view, [GNOME Shell's notification system] is not going to work in the same way." Possibly, the Canonical system "may be accepted as an external dependency" at some point, but almost certainly not in GNOME 3.0.
Untz also touched upon the role in GNOME 3.0 of Mono, the highly controversial GNU/Linux implementation of Microsoft's .NET (C#). Although Untz notes that, because he is an employee of Novell, Mono's chief corporate champion, anything he says will be perceived as biased, he says that "I don't work on Mono, and I have never worked on Mono. I care more about GNOME than about Mono."
Untz goes on to emphasize that the important point about Mono is that it "is used for applications, and it is not used for the platform itself. If you don't want to use Mono, you don't have to use its applications."
True, some Mono applications are included in many default installations of GNOME, but Untz points out that the most common, the Tomboy note system, is being re-classified as an application rather than a panel applet in GNOME 3.0. Should Tomboy or any other Mono applications be excluded, Untz notes, their removal is relatively trivial. "But it's not work that should be done by GNOME," he states flatly. ""It's a job that should be done by distributions. You have some distributions that are trying to do that, and we're fine with them."
At the same time, Untz add, "I believe -- and I think this is the consensus within the GNOME community -- that people working on applications should be free to use what language they want. That's why we have bindings for C#. That being said, the project doesn't say that you should write applications in Mono. Actually, we are language-agnostic. We want people to be able to write applications in a language they are comfortable in. Because we want is applications. We don't want languages, we want applications for users. People feel strongly about Mono, and I do understand why they care, but my understanding is that how we are using Mono is perfectly fine."
The GNOME release and beyond
When KDE released its last major version, the result was almost a user revolt. Could the same thing happen with GNOME 3.0? Untz doesn't think so.
"Of course, we're always afraid that might happen," Untz says. "But the issue with KDE 4 was that it was not stable. There was also the fact that the interface was different, but stability was the real issue. We don't expect a stability issue for GNOME 3.0. We've been doing the six month [release] cycle for eight years, so we know how to blend stability and features, and we will always make stability the first choice.
"What could be an issue is that GNOME Shell and the user experience in GNOME 3 is different from what we have in GNOME 2, and some people might get confused by that. My take is that actually behind GNOME Shell there is nothing really new -- it's just the way that we are organizing all that. If you start using GNOME Shell, you quickly get used to it and start to enjoy it. I think most people will be okay with that.
"That being said, there will always be people who prefer the old look and feel, and, for people like that, we will still provide the old GNOME look and feel with GNOME panel and Metacity [the default window manager in the GNOME 2 series]. We don't know what the exact name will be, but it will be something like GNOME 3 Legacy, or something like that, a name to make clear that it's the old look and feel. From a technical point of view, they will be using all the GNOME 3 stuff except GNOME Shell, so they will still benefit from all the other changes."
Understandably, the GNOME project is currently focused largely on GNOME 3.0. However, project leaders like Untz are already starting to think about the directions in the next releases in the GNOME 3 series. He expects that two directions are likely to be geolocation and integration with social applications.
"Then there's the question of when we will do GNOME 4," Untz says. "But I probably wouldn't ant to wait another eight years to do GNOME 4. One of the reasons that we've been doing GNOME 3 is that after four or five years, the six month development cycle is ice, but you start to forget how to innovate. You still have new features, but it's all going in the same direction, and sometimes you need to change."
Looking back at the GNOME 2 series, Untz concludes, "Eight years was really long. We were waiting too long, and, personally, I wouldn't want to wait that long again."
Oh, and one more: 75 Open Source Tools to Replace Apps You Use Every Day