20 Years of GNOME - Federico Mena Quintero, Jonathan Blandford

Pictures for this article at https://github.com/federicomenaquintero/guadec-2012-keynote

Nearly twenty years ago, on August 15, 1997, we announced the GNOME desktop project. That announcement was the result of three things which combined to launch GNOME. First, Miguel de Icaza and Elliot Lee had been working on a library of tools for writing applications - tools for things like being able to store configuration data in a common format, instead of having each application reinvent the wheel. Second, Federico Mena was working on the GIMP (GNU Image Manipulation Program), and within the GIMP's contributors there was a pool of experience in writing end-user applications with GTK+. Finally, the KDE project had been announced almost a year before, but it was based on the Qt toolkit, which then had a non-free license.

Ten years ago, in 2007, I wrote the following on my blog:

"It's amazing what we have done in 10 years. Ten years ago, GNU/Linux distributions did not boot to a graphical login screen. Ten years ago, using only free software, you could not do graphic design and illustration, you could not balance your checkbook, you could not download pictures from your camera to the computer, you could not do phone calls over the Internet, you could not create a spreadsheet with pie charts, and you could not plug an external hard drive to your computer and expect its icon show up on your desktop."

Now that ten more years have passed, let me add a few things to the list!

Ten years ago, it was very unlikely that you could plug a projector or a second monitor into your computer, and have it Just Work. Ten years ago, you couldn't plug a printer into your network and have it show up automatically when you hit "Add Printer". Ten years ago, there were many halfway-connected components that made up the desktop; now we have a unifying gnome-shell. We’ve added support for various hardware: Bluetooth, fingerprint and smartcard readers, color managed displays and printers, touch screens, Wacom tablets.

This is not everything that has happened, of course. Instead of huge, infrastructural additions, we have been working on a refinement of the basic desktop, and a variety of new applications.

What happened before GNOME and right at its start? A quick timeline:

  • 1984, the X Window System is created at MIT.
  • 1985, the GNU Manifesto is published, and the GNU Project starts.
  • 1991, GNU GPL version 2
  • 1991, initial Linux release
  • 1991-1996, python, samba, apache, mysql, postresql
  • 1995, Windows 95
  • 1996, KDE
  • 1997, GNOME
  • 1998, Mozilla gets freed

We started as a project run by volunteers. Red Hat, with its Advanced Development Labs, was the first company to invest in GNOME development. After it, a bunch of companies joined in.

1997 to 1999 was the period of the desktop wars. Free software developers were unfortunately forced to choose between GNOME and KDE for their applications. There were horrible flame wars and lots of duplicated work. In the end TrollTech, makers of Qt, were forced to release it under a free software license, which was a definite win for free software.

We released GNOME 1.0 in 1999. Everything was terrible and crashed constantly. But we were in the spotlight! Helix Code, later renamed to Ximian, developed Evolution and much of the infrastructure work on the desktop. Eazel developed Nautilus and gnome-vfs, the precursor to our current GIO. Over time, other companies were formed to take care of different pieces of GNOME.

We had our first GUADEC in 2000, in Paris, and we have had it every year since then in a different European city. On the other side of the world, GNOME.Asia started in 2008 in Beijing, and has been running steadily year after year. In the Americas, the Boston Summit has been circulating between Boston and Montréal since 2004. Additionally, hackfests have been held around the world since 2008.

Around 2000 we had the first rounds of formal usability testing done at MIT and Sun Microsystems. We discovered non-technical people found our software very hard to use: we were giving them a box of ill-fitting parts, not a finished product. But we learned, and in GNOME 2.0 we had a much more usable desktop.

In 2001 the dotcom bubble burst. Eazel had to close. Novell acquired Ximian and Suse. Apple released Mac OS X, and many technical people who wanted a usable Unix, but who were willing to put up with free software's technical problems, moved to MacOS.

During the GNOME 2 cycle we started "draining the swamp" in various places. Hardware wasn't plug-and-play, so we started Project Utopia, HAL and all the *Kit libraries so that the kernel could inform userspace about changes in the hardware configuration.

Sun Microsystems started the work on Accessibility in GNOME. We now have a screen reader, accessible themes and icons for visual impairments, sticky keys, bounce keys, and support for Braille devices.

Canonical came along with Ubuntu, and spread GNOME desktops far and wide.

It is possible to dissect GNOME's history in terms of various technologies:

  • The graphics stack. The X Window system is being replaced with Wayland. We went from having no antialiased fonts, text shaping, or support for right-to-left languages, to fully antialiased fonts and support for international text with complex shaping. We went from palette-based, pixelated displays to fully hardware-accelerated OpenGL, with alpha-composited and scalable graphics.
  • The hardware support stack. We started with a more or less traditional Unix kernel in which userspace programs asked the kernel to do things, but the kernel itself didn't notify programs about anything. We now have a kernel that can notify userspace when hardware gets plugged in, removed, or reconfigured, and many modules in userspace that respond to those events.
  • We started without support for accessibility, then had accessibility as an add-on, and finally moved to accessibility by default, at the core of our GUI toolkit.
  • We grew from little programs for a calendar and a contacts list to Evolution, and now back to Evolution's storage backend plus small client programs.
  • We went from saving configuration data in .ini-like text files, to a model-view representation with GConf, to an efficient model with DConf.
  • We've grown from disparate, traditional Unix init systems to systemd and cleanly-separated D-Bus services.
  • Once, we only supported Western languages with Latin scripts, to now supporting all of the world’s major languages, and a good number of minority ones. All of free software has ended up using the infrastructural pieces for multi-language support that started in GNOME.

We have made it possible for people of different skills to contribute to GNOME. We have teams for accessibility, accounts, design, documentation, diversity, engagement, membership & elections, maintainers, moderators, outreach, QA/bugsquad, Release Team, safety, sysadmins, translations, and user groups. GNOME could not and would not exist without all of you.

One of our next big steps is to make it possible for all of GNOMEs contributors to be compensated for their efforts, not just the ones that are employed by GNOME development companies. Flatpak and an "app store" could help. Perhaps you are interested in helping with that?

Thank you for 20 years of being awesome. The free software and free culture communities could not have happened without you!

Engagement/AnnualReport/2016/Feature (last edited 2017-07-12 00:37:02 by EmilyGonyer)