It seems like just yesterday that the GNOME Project got its start, but actually it was a decade ago that Miguel de Icaza got the ball rolling. While de Icaza has largely focused his time on Mono recently, the GNOME community has kept making progress. To get some perspective on GNOME's history, I spoke to de Icaza and longtime GNOME contributor and GNOME Foundation board member Jeff Waugh.
GNOME got started on August 15, 1997, when de Icaza announced the GNU Network Object Model Environment (GNOME). According to de Icaza, GNOME would be "a free and complete set of user friendly applications and desktop tools, similar to CDE and KDE but based entirely on free software."
De Icaza says that today, GNOME has more than met his expectations. "It definitely achieved the goals that we set for ourselves back then: to create a desktop and a suite of applications that would enable free software to be a viable alternative.
"But there have been a few twists, some good ones, and some challenging ones (and luckily, no bad ones).... One of the good ones is that the project has branched into many new directions that we had not originally planned for and were just great side effects of the software being open source.
"The challenging component is that personal computers became ubiquitous, and with this ubiquity came many new developments and improvements that end users expected to have: better usability, more functionality, accessibility support, polished applications, consistent applications, good-looking applications, better interoperability, special requirements for the different classes of users (home, small businesses, governments, education, enterprise).
"In my opinion the community has been able to adapt both to the new needs and also has been able to integrate well with other third-party pieces of software to package all the pieces together that make up a complete system."
However, de Icaza says he is disappointed that Gtk+ has not lured more third-party developers. "Sadly neither [Gtk+ nor Qt] has managed to create a very large ecosystem of third-party component vendors that distribute plug-and-play components that are ready to use. This is something that Microsoft has really excelled at and to a lesser extent Java. This is probably something that could have improved."
He does say that the toolkits "have aged well," citing the addition of Cairo in Gtk+, which gives "developers many tools to create a whole new series of better looking applications, and it lowered the barrier for creating stunning applications."
In addition, de Icaza says that efforts are afoot to improve Gtk+ so it can "cope with things that are starting to become commonplace, like built-in support for storylines and animations."
What GNOME has achieved
Despite a lack of third-party developers, GNOME has solidified into a mature desktop environment with lots of usable applications over the past 10 years. However, Waugh says that GNOME has gone beyond a usable desktop.
First, Waugh says that GNOME has embraced the idea that "software freedom is not just for geeks." According to Waugh, GNOME "changed the game on FLOSS usability" and listened to the non-geek users "we knew we were failing with complicated, unhelpful software, and made GNOME better for everyone in the process.
"Since GNOME 2.0, we've put user experience at the top of our agenda, focusing on usability, accessibility, and internationalization. I believe the successes we're seeing with Ubuntu's growth and appearance on Dell hardware, Novell's desktop shipping on Lenovo laptops, and Red Hat's commitment to OLPC and their upcoming Global Desktop project are a direct result of the underlying user experience platform -- GNOME -- taking usability seriously."
Not only is GNOME more usable, it's more predictable. Waugh says that GNOME has proved that "FLOSS release management can be predictable and reliable, even more so than proprietary software: GNOME ships every six months, and we've done it for years."
This may not seem like a big deal to folks who've followed GNOME and FOSS development, but Waugh says it has had a major impact for GNOME and other projects.
"Firstly, it means we can deliver worthwhile, iterative features on a regular schedule, without having huge feature drops that take forever to test and ship, and put the burden of training and refamiliarisation on our users. It means developers know when they can do new development, and when they need to focus hard on bug fixing and testing -- a clear window for the 'fun stuff' and making sure it's good enough for our users. It means our partners who distribute GNOME in products can plan ahead, knowing that we will deliver. Projects such as Ubuntu and Fedora have even built their release schedules around ours. Finally, it has been inspiration for many other FLOSS projects to adopt a similar release strategy and process -- and that has had a huge impact on the entire FLOSS ecosystem."
Waugh also lauds the scope of contributors to GNOME. "GNOME is not just a bunch of people making a desktop. We have people from every layer in the software stack participating to make the entire user experience better, from kernel developers working on performance and power management, to infrastructure and platform developers making X and our toolkits do magical things with hardware and bling, to accessibility and interface engineers growing our audience, through to application developers creating great tools for our users."
Greater than the sum of its parts
The project has also brought with it infrastructure that benefits not just GNOME, but the entire desktop stack on Linux. For instance, de Icaza points out that "some components reached out into other areas that were not even related to the desktop (the system libraries for instance were useful also for non-desktop-related activities) and the desktop and desktop components were repurposed for many interesting scenarios, from embedded devices to the OLPC effort."
Waugh credits GNOME with building "much of the infrastructure beneath modern FLOSS desktop systems. GNOME developers spearheaded efforts such as D-Bus, HAL, NetworkManager, Cairo, and GStreamer, crucial technologies that allow us to deliver rocking software to our users."
And GNOME isn't just a desktop these days. Waugh notes that GNOME has also moved beyond the desktop to mobile and embedded systems.
Where's GNOME going?
It's interesting to look back at where GNOME came from, and what's been accomplished since its humble beginnings in 1997 -- but most users are more interested in where GNOME will be going.
Though de Icaza is no longer directly involved with GNOME development, he says his work on Mono, and that of the rest of his team at Novell, "pretty much revolves around the goals from 10 years ago." He says he keeps in touch with GNOME developers, but "mostly with those who are using the APIs and tools that we are creating, like the Banshee Media Music Player, the F-Spot manager, and the Bater collaboration tool."
Mono, he says, "has a strong story to support Gtk+-based development" through the Gtk# bindings and the MonoDevelop IDE. "MonoDevelop today has superb support for GNOME application developers. We tried to add support for creating full products with it: from allowing developers to create applications, libraries, design their user interfaces with it, maintain the metadata for the applications (.desktop file editing, schemas) to internationalization, all in an integrated IDE."
From inside the project, Waugh predicts "massive, incremental modernisation" of the GNOME platform in the near term. "It has served us very well over the last five years, but we are starting to hit some walls, and beginning the process of smashing them down."
He also says that the GNOME user experience will be seeing "substantial changes" thanks to infrastructure work done over the last few years on X.org, compositing management, the Cairo 2-D graphics library, and other components.
Waugh predicts that the GNOME Mobile platform is going to see "increasing adoption," and go toe to toe with Symbian and Microsoft. "Millions will be using GNOME without necessarily knowing it, and the already very healthy commercial ecosystem around the GNOME Mobile platform will grow even faster as a result."
On the desktop side, Waugh says growth will continue for GNOME, but uptake will be greater "where Microsoft doesn't monopolize the desktop market, and where there is greater appreciation for software freedom, such as developing nations." He says GNOME will flourish in markets where Microsoft dominates, but "it will take more time to hit critical mass."
Though GNOME's "birthday" has passed, the celebration will continue. Waugh says that GNOME contributors are working on a "scrapbook wiki" to document GNOME's history (with the "usual irreverence and energy") and "a commemorative cookbook of 'open source' recipes from GNOME folks around the world.
"We're hoping it will express the culture, freedom, artistry, and worldwide scope of the GNOME project, and go some way toward explaining the process and value of software freedom to people who aren't deeply into computing."
Ultimately, Waugh says that GNOME's path will be "an evolution of the vision we had 10 years ago: software freedom.
"Not just for geeks. Not just for laptops or desktops. Not just for the physically able. Not just for those who can read English. not just for those in the 'First World.' The GNOME community aims to create the user experience platform that delivers software freedom to everyone."