Sat 18 Aug 2007
10 Years Of GNOME
Posted at 17:25 +1000
There's no doubt going to be a lot written about this (has been already): the GNOME desktop turns 10 this month. Like so many others, my thoughts on reading this were along the lines of "wow! has it been that long?" Reminisces follow...
I was vaguely aware of the early GNOME announcements. At the time I was doing some experimenting with both an early version of Qt and wxWidgets and was enjoying both the similarities and differences when compared to Microsoft's MFC toolkit and Borland's OWL collection (both C++ GUI libraries for Windows). Looking at GTK as it was developed, I liked the sort of object oriented C they were doing. It somehow felt less hacky than the preprocessor stuff in both Qt and, to a lesser extent, wxWidgets. These days, such techniques are almost de rigeur, but it felt like C++ hackery at the time.
The first time I installed GNOME (via building from source, as was my typical behaviour) was after 1.0 but before October GNOME (which was more or less released in October, 1999). I was a user before I was a contributor. Other random moments:
- Being impressed with Ximian's desktop packaging of GNOME that was released in late 1999 (coincidentally, also the first time I met Jeff Waugh in person — we were both volunteering at an installfest run by the Sydney Linux Users Group).
- First patch accepted (for gnorpm) in mid-2000. Commit access to GNOME CVS very soon afterwards.
- The highs and very depressing lows of an enthusiastic but unfocused group trying to settle on GNOME 2 features through early 2001.
- First experience with the feedback from writing a really popular open source document. I still remember reading through almost every header file in GNOME 1.4 and working out the differences in the proto-GNOME 2 headers. This experience encouraged me to write other documentation for GNOME which turned out to be useful for readers and author alike. Seeing some of these eventually translated into other languages was a kick, too.
- Learning more about autoconf, automake and libtool than I ever thought I wanted to know. I don't actually hate them, since they solve a bunch of important and difficult problems (portability is hard).
Really what bubbles to the surface when I think of the period from 2000 to 2004 — the period when I was heavily involved in GNOME — is just how much I learnt. I wasn't a neophyte developer when I started out, but there is always more to learn. Group dynamics, letting go of code ownership (pretty much every patch would be posted to a public list and reviewed in full view), logistical issues (managing bug reports by the thousands), design ups and downs... the list is endless. Things I learnt about internationalisation and accessibility in those years are helpful to me now. I really liked buzzing around the edges and helping out with infrastructure issues — build problems, tools that needed improving, developer docs that needed writing, debugging heisenbugs — and it is an area which I still think is under-populated by open source contributors.
Without being actively involved, it's hard to imagine just how professionally useful open source development is. Having to continually defend your ideas and participate; nothing being taken on assumption. Learning to communicate with people in different timezones, with different agendas and different native languages. Crazy rushes to fix critical bugs prior to release, where fixing a single problem might extend for more than 24 hours with people working shifts on IRC. It improved my technique and management skills immensely.
The other side, of course, is the personal one. I met so many people in those years, at least electronically. Some of them are people I correspond with regularly even today (by the way, Dave's recollections of the early days are worth reading). Others are people I'll bump into at conferences and have a common point of contact with. All of them have my deepest respect. Building a network of like-minded, talented people is another one of those hidden benefits of participating. It's not just GNOME, of course, but that was the first place where I threw myself at a project for a reasonably extended period.
Interestingly, if I think about it, the lessons learnt from GNOME drove me a lot in my commercial job, to the point that the latter left me with no time for the former. So it was almost self-defeating in a sense (not solely, but I wasn't going to learn everything I did in those years by just being a routine corporate programmer).
I still observe GNOME keenly from the outside. I am much more of a pure user these days, than a developer. I still have a copy of the source checked out, though, and I update it from time to time to see what's going on and track down the odd annoyance. GNOME isn't the only desktop and not always the best one in all areas, but it's the one I helped build. I use it because it doesn't suck and it's something to be proud of. I am.
Topics: software/GNOME