It is with some trepidation that I go to buy my ticket to this year's european GNOME conference, GUADEC.
Decadence \De*ca"dence\, Decadency \De*ca"den*cy\, n.
[LL. decadentia; L. de- + cadere to fall: cf. F. décadence. See Decay.]
A falling away; decay; deterioration; declension. "The old castle, where the family lived in their decadence." --Sir W. Scott.
Take a look at the list of slated talks. What is your general impression?
Mine is of a large project in a state of marginal returns, in which a larger and larger part of the effort goes to maintenance. On the one hand you have the large deployments, the integration with other software projects. On the other hand the new developments that we have are very careful not to bite off too much: a printing dialog;
another revision of ekiga; a new image library. Ed: Ekiga was probably not a good example of this.
The problem, as I see it, is that GNOME is in a state of decadence -- we largely achieved what we set out to achieve, insofar as it was possible. Now our hands are full with dealing with entropic decay. Take, for example, Evolution's random walk to improvement. In most releases it's better, in a few it's worse, but basically it still works fine, and has been that way since about 3 or 4 years ago.
It's like, welcome back to 1984's Macintosh plus interweb. We did it!
Seriously though, it does not seem to me that GNOME is on a healthy evolutionary track. By that I mean to say that there is no way there from here, if "there" is universal use of free software, and "here" is our existing GNOME software stack. The evolutionary thing to do would be to do something web-like, because that's where all of the programmers are these days. But that's not part of our culture. Until recently, with WebKit/GTK, it wasn't part of our software stack either -- all of the new web platform bits were dribbled to us over the wall from Mozilla, or embedded within GNOME as Firefox.
The other side of that is that while the web will be a core part of the computing future, it's not clear that swallowing it wholesale is the best strategy for client development. There are too many things that local computing offers: other software paradigms (emacs, unix, independence), unmediated input (sound, video, alternate input devices), direct access to powerful output devices (control part or the entirety of a screen, access the underused GPU).
But even if we eschew "going with the flow"-style evolution, it's not like GNOME is on a revolutionary track which will win in the end with its compelling UI or programming-linguistic metaphors. The screen is still constructed as a static landing strip on which the mouse pointer might alight, an array of possibilities necessarily constricted by decontextualized space. The metaphors are the same: file, folder, desktop, even as these things cease to exist for many people. And techologically, we don't even have a way of considering how the visual elements of space might be anything other than static, much less have any way of interacting with those elements other than the impoverished point and click. What we're left with is the GUI equivalent of chartjunk.
There are exceptions to this story. There's Clutter, which I expect will be the "way out" both for GTK+ and for GNOME. (I know there are technological differences with other canvas models, but at least they have the hackers and the maintenance resources.) There's Moonlight, which is interesting and hacked by very smart folk, but whose fortunes are too bound to Microsoft. There are heroic retrofix efforts like MPX, not really a part of GNOME. But other than that, we have the decay of slavish adherence to the HIG, the logout dialog, the wallpaper chooser, the last-percent efforts of refining an increasingly irrelevant stack of software.
The GTK+ maintainers are well aware of the decadent state of GTK+, and are moving as much as possible to plug the leaks. But it is no longer a nimble codebase, and will take at least 6 and possibly 12 months before a 3.0 release can come out. And that's just stopping retrograde motion; actual construction must take place outside of the "core" until the core is ready for it.
This disenchantment is personal as well: among other things, I've spent thousands of hours on bindings to GNOME libraries, and just now when I am ready to make an API and ABI stable release, I just don't feel like packing another button into another hbox.
Anyway, I'm buying my ticket, but mostly for the hallway track -- GNOME folks are smart and kind, and I want to see what's going on, what people are really thinking about. Istanbul ho!