GNOME is much more than just a desktop environment for Linux. It has emerged as a standard around which many traditional Unix vendors have begun to coalesce and has become a shining example of how the open source community can work together with commercial vendors.
San Jose’s McEnery Convention Center is not a particularly attractive place to spend a sunny August day in California. The pressroom in the convention center’s basement has all of the style of a parking garage, with none of the charm. Nevertheless, the McEnery’s pressroom was filled to capacity this past August with a mix of hackers, reporters, and courtiers of some of the biggest names in enterprise computing. Sun Microsystems, Hewlett-Packard, Compaq, and IBM were all in attendance; all were clamoring to take part in what would be the most significant announcement at this summer’s LinuxWorld Conference and Expo.
The man leading the press conference was Miguel de Icaza, a charismatic young hacker and entrepreneur with the manic intensity of the Tasmanian Devil cartoon character. He announced that the dozen or so technology companies participating in the press conference were joining the software project he had worked so hard on: GNOME.
Though Sun Microsystems, Red Hat, Eazel, and de Icaza’s own company, Helix Code, are the main backers of GNOME today, two other unlikely vendors — a Norwegian software vendor named Trolltech and an American firm called Microsoft — played pivotal roles in the creation of the GNOME project.
In the summer of 1997, Trolltech AS decided to use a proprietary license for their Qt programming libraries. Those Qt libraries would eventually become the backbone of the emerging standard Linux desktop environment, KDE (the K Desktop Environment). It was dissatisfaction with this proprietary license that would, in August of 1997, prompt Federico Mena and his university mentor, Miguel de Icaza, to launch the alternative GNOME project. GNOME (GNU Network Object Model Environment) would be based on the GTK+ libraries that were available under the GPL (GNU General Public License), a free software license.
Mark Ewing, Red Hat
There had been an ongoing discussion at Red Hat…but the analysis was always, “This is a lot of freaking work!”
But the seeds of the GNOME project had been sewn even before August of 1997; ironically, they were sewn by none other than the mighty Microsoft Corporation.
In true Linux fashion, GNOME was inspired by a clandestine mission. In the summer of 1997, de Icaza flew up to Microsoft’s Redmond, WA campus for a job interview with the Internet Explorer team. But, de Icaza was doing more than simply looking for a job. He was looking to do some free software advocacy. “I went there trying to convince them to use open source,” he remembers. De Icaza also wanted to have dinner with his friend and future business partner, Nat Friedman, who was interning at Microsoft.
However, by the end of the day it was Microsoft, and not de Icaza, that had done the influencing. IE would remain proprietary software, but de Icaza had seen the future — and the future was all about components.
“I had thought ActiveX was a security hole designed by Microsoft because they had no clue,” remembers de Icaza. His day at Microsoft quickly dispelled that impression. Internet Explorer wasn’t so much a single piece of software but rather a group of about 50 components that were maintained by completely different development teams.
For the young hacker, it was an eye-opening experience to see how Microsoft cobbled together this one product utilizing diverse development teams. Using Microsoft’s COM and ActiveX technologies, developers were mixing and matching the various parts of Internet Explorer to create customized browsers. And, they were doing all of this without wasting inordinate amounts of time communicating with each other. “The teams didn’t even have to talk to each other; they just had to talk to the interfaces,” says de Icaza. “What I had seen at Microsoft was pretty amazing.”
Looking to replicate what had been observed at Microsoft, de Icaza and Mena began work on their own component model, which they called GNOME. When the Qt licensing issue flared up a few months later, GNOME suddenly became a cause.
The problem with Qt’s license was that it gave too much control to Trolltech. If developers wanted to make changes to the Qt libraries, they were not allowed to redistribute that software without first getting permission from Trolltech. For Miguel de Icaza and Federico Mena, this was not simply a hassle; it was antithetical to the basic principles of free software.
It was also a problem for companies (like Red Hat) that didn’t much like the idea of being beholden to another software company. Red Hat had been contemplating the idea of creating a Linux desktop since 1994 but had been reluctant to embark on such a large project by itself. “There had been an ongoing discussion at Red Hat,” remembers company co-founder Mark Ewing, but “the analysis was always, ‘This is a lot of freaking work!’”
Andy Hertzfeld, Eazel
GNOME has a better architecture [than KDE] when it comes to the component model.
However, GNOME appeared to have the backing of a serious cadre of high-level developers, including de Icaza, the Free Software Foundation’s Richard Stallman, and noted kernel hacker Alan Cox. A few months after the GNOME project was launched, the Red Hat Development Labs sprang into existence and began contributing software development, testing, hosting, and documentation to the fledgling project. GNOME had found a sugar daddy.
The Red Hat Labs was a significant step not just for GNOME, but for open source software in general. “This was supposed to be a little bit of an experiment with commercial participation in an open source project,” says Ewing. “Until that time, there really hadn’t been a concerted effort by any company to participate in an open source project.” Five months later, Netscape would rock the industry by announcing plans to open source its Navigator browser.
Though it’s tempting to compare de Icaza to Linus Torvalds (certainly no other developer associated with the GNOME project has de Icaza’s stature in the open source community), GNOME developers see him in quite a different light. For one thing, while Torvalds dutifully turned down job offers from Linux vendors in the interest of maintaining his impartiality, de Icaza co-founded a company called Helix Code (whose first product, Helix GNOME, is a commercial distribution of about 90 of the most popular GNOME projects). For another, GNOME is too diverse a federation of projects to have any one leader.
“I don’t think it makes any sense to say there’s any one leader of the project,” notes respected GNOME hacker Havoc Pennington.
Though GNOME is generally thought of as a desktop environment for Linux, the desktop is really only one aspect of the project, and Linux is only one of the many flavors of Unix that the software runs on. GNOME’s hundreds of pieces of software fit roughly into three main categories: Developer tools, the applications that are built with these tools, and the GNOME desktop itself.
Adding to the complexity is the fact that many parts of GNOME were designed to be redundant. For example, there are 14 different window managers available for your GNOME desktop; and if you’re looking for a mail client, you have 17 contenders to choose from.
“GNOME as a project is pretty much bigger than any other open source effort. It’s actually this massive umbrella project. Even the Linux kernel is smaller right now,” says Helix Code President Nat Friedman.
Turning this diversity into strength has, in a way, been de Icaza’s driving mission since GNOME’s conception. In order to accomplish that goal, de Icaza’s has invested much of his effort in projects that tie all of the diversity together — projects such as Bonobo and Helix Code.
|1990||After being kicked out of his home at age 17, Miguel de Icaza turns to writing code to make a living.|
|Summer 1997||On a visit to Microsoft, Miguel de Icaza gets his first exposure to the Microsoft component model.|
|August 1997||Unhappy with Trolltech’s proprietary Qt license, Federico Mena & de Icaza launch the GNOME project.|
|Fall 1997||Red Hat Labs formed to spur GNOME development.|
|November 1998||Trolltech releases Qt under an Open Source license.|
|December 1998||Eazel’s Andy Hertzfeld chooses GNOME over KDE as foundation for his company’s Nautilus file manager.|
|January 1999||After having been left on the back-burner for 18 months, de Icaza begins work in earnest on GNOME’s Bonobo component model.|
|Summer 1999||Sun and HP begin exploring alternatives to CDE.|
|April 2000||Sun invites de Icaza and Nat Friedman for a meeting after selecting GNOME as its next desktop. Discussions begin on the creation of the GNOME foundation.|
|August 2000||GNOME foundation announced.|
|September 2000||Qt released under GPL.|
THIS YEAR’S MODEL
By early 1999, Andy Hertzfeld (best known as one of the designers of the Macintosh) had spent close to a year studying Linux and its two most popular desktop environments, KDE and GNOME. While Hertzfeld says that the Qt licensing issue was the most important factor in his decision to base Eazel’s first product (the Nautilus file manager) on GNOME, the actual technical architecture of GNOME was also a major factor. “GNOME has a better architecture when it comes to the component model,” he says.
The component model that Hertzfeld and other developers rave about is the product of de Icaza’s and Mena’s Microsoft-inspired worldview. It includes a number of technologies built around the Object Management Group’s CORBA (Common Object Request Broker Architecture) standard. Part of the magic of CORBA is that it allows any CORBA-enabled application to talk to any other CORBA-enabled application, regardless of where those applications are physically located and regardless of the programming language that was used to write the programs.
For example, two CORBA-enabled applications might be located on the same standalone system or they might be running on two different machines located on different parts of a network. One application may have been written in C++, and another may have been written in Java. Regardless of these issues, the CORBA-enabled applications will be able to communicate with each other by using a piece of middleware called an ORB (Object Request Broker).
If CORBA defines how applications talk to each other, Bonobo builds upon and creates the next few layers above that. Bonobo defines how graphical components work together to do things like embed a spreadsheet or play a video in a word processing document. In this sense, it’s like Microsoft’s OLE (Object Linking and Embedding) technology. Instead of running a word processor, a video player, and a spreadsheet as three different applications, the video player and spreadsheet can be run as components within the word processor.
de Icaza says that Bonobo offers a lot more than these graphical bells and whistles though. In keeping with the Unix tradition of piping together various commands to create sophisticated operations, Bonobo creates standard ways for different GNOME components to communicate and seamlessly work together.
Today, the bulk of GNOME applications do not employ the Bonobo component architecture, but the next-generation products from Eazel and Helix Code will. By year’s end, Helix Code is promising to release the 1.0 version of its Evolution personal information manager, which will include a mail client, a calendar, and an address book — all composed of Bonobo components. Helix Code says that Evolution will let users index and search through their entire mailbox, schedule meetings, and find addresses over the Internet.
|© GARY WAGNER|
Birthplace: Mexico City, Mexico
Occupation: CTO, Helix Code
Miguel has this incredible energy and charisma. Almost like a larger than life character. But for crediting GNOME’s success, I would not limit it to Miguel. I don’t think of GNOME as Miguel and the Seven Dwarves or anything. -Andy Hertzfeld, Eazel
The first 15 minutes of his talk last year at Comdex was about how the English language is broken because we use the same word — free — for “no price,” as well as “freedom.” That’s always been the best thing about Miguel. He just lets you have it. -Dave Mason, Red Hat
As a hacker, I think he is one of the most talented software developers I’ve seen. Just watching him work makes me go cold. -John Heard, Sun Microsystems
He’s got his own forcefield, for God’s sake. And I don’t mean that in a bad way. -Chris Dibona, VA Linux
A MATTER OF MOMENTUM
In April, de Icaza got a surprise e-mail from an engineer at Sun Microsystems named John Heard. The e-mail was unexpected because Sun has traditionally had a tense relationship with open source. Sun’s lukewarm acceptance of Linux, its reluctance to open up Java, and its continued release of not-quite-open-source licenses had led to some chilly relations between Sun and the open source community. Nevertheless, here was a Sun employee asking if de Icaza would be willing to fly to California to discuss GNOME. De Icaza immediately knew this was a chance to do something really big — sell Sun on GNOME.
A few days later, de Icaza was on a plane to California with Nat Friedman. Three years after his fateful visit to Microsoft, he was flying across the continent again to evangelize open source to a major computer company. But, this time the results would be different.
Once at Sun, it took only a few minutes for the GNOME hackers to realize what was really going on; Sun had already decided to support GNOME. They just wanted some reassurance that they would actually be able to work productively with the GNOME team. de Icaza and Friedman had come there to educate, but that was unnecessary. “I was impressed by the amount of research they had done,” says de Icaza. “They knew a lot more than many of our developers.”
It turned out that both Sun Microsystems and Hewlett-Packard had seen the writing on the wall about a year earlier. “We actually had a lot of demand from customers that we evolve the Solaris desktop environment,” recalls John Heard, the group technologist for WebTop and application software at Sun. “I think the industry had realized that CDE [Unix's Common Desktop Environment] was coming to the end of its life.”
While other Unix vendors, like IBM and Compaq, would eventually be willing to lend their cautious support to the GNOME Foundation, Sun was prepared to jump in whole hog –announcing that GNOME would become the default desktop for Solaris and committing its Dublin-based team of 60 CDE engineers to the GNOME project. In addition, Sun –whose executives had publicly disparaged the GPL in the past — was preparing to release its StarOffice personal productivity suite under the GPL. This software (which Sun had bought for over $70 million a year earlier) would provide a commercial-quality office suite to the still immature GNOME application portfolio.
However, there was a catch. Sun was encouraged by GNOME’s history of working with vendors like Red Hat and Eazel, but it needed some structured way of interfacing with the various development teams. This was the real impetus behind the creation of the GNOME Foundation.
From the GNOME community’s perspective, Sun’s involvement made the creation of the foundation important as well. They wanted to ensure that GNOME wouldn’t be taken over — or worse — rent asunder by corporate interests. With the help of Collab.net’s Brian Behlendorf (whose Apache Foundation would serve as a template for its GNOME counterpart), the hackers and vendors got together and created an institution that would provide a public face for GNOME, serve as arbiter in conflicts, and help define GNOME’s technical standards. GNOME participants would vote in an 11-person board of directors, and for a $10,000 annual fee, vendors could join an advisory board (ensuring that companies like Sun and HP would be able to at least get the attention of the board of directors).
Today, the foundation appears as a shining example of mutually beneficial corporate-hacker cooperation. In October, Sun open-sourced StarOffice (calling it OpenOffice) as promised, In November, the GNOME Foundation elected its first board of directors the day after the US presidential elections. However, in candid moments, GNOME hackers still express trepidation over the sudden influx of potentially competing commercial interests and, in particular, whether or not Sun — a veteran of the decade-old wars to standardize Unix — will be able to play nice in the open source world. “The question is, can guys who’ve been working in this closed society join in the open source world,” says Red Hat Development Labs Manager Dave Mason. “They’re a little quiet right now. We’re sitting around asking them what they’re doing, and they don’t want to say.”
From its inception, GNOME’s success has seemed to flow from the project’s ability to identify and pursue all that the corporate software world has to offer, while at the same time remaining true to the principles that make free software great — keeping the code open and free. “We should treat software as a commodity,” says de Icaza. “If we manage to get OpenOffice up to the quality of Microsoft Office, then Microsoft is not going to be able to charge $700 for an Office suite…or even $500. It’s going to become a commodity. It’s going to be like the copy command.”
Commodity or not, it’s clear that GNOME is changing every aspect of the software landscape that it touches. The funny thing is, the more Miguel talks the more it seems like this is only the beginning…
GNOME has everything you can find in Windows, but some applications are more mature than others
|GNOME App||Description||Windows Equivalent|
|GNU||Cash money manager||Quicken|
|OpenOffice||Sun’s newly-GPL’d office suite||Office|
|GNOME-Pilot||For syncing up your PalmPilot||PalmPilot Desktop|
|GNOME-PIM||A personal information manager||Outlook|
|GIMP||The classic Web artist’s tool||Photoshop|
|Balsa||One of GNOME’s 14 mail clients||Eudora|
|Nautilus||Eazel’s user-friendly file manager||Explorer|
Robert McMillan is executive editor of Linux Magazine. He can be reached at firstname.lastname@example.org.