Seems like a good moment to throw out the ideas about how to do real innovation on GNOME, while I think Andy’s post was a little bit pessimistic, I think is good it has started the discussion inside the community, and I do think that I have some points into it so here’s my 2 cents on the topic. I´ll do a few post with different points to not bore everyone.
The Desktop is the OS
I think it’s time to break loads of assumptions and to risk some "backwards compatibility", not in terms of API/ABI, but in terms of how do we think about our desktop. We must start thinking about the desktop as something more similar to an OS rather than something on top of the OS in favor of a better user experience. I will try to show what I mean with an example.
We sometimes have a hard time developing good UIs to manage basic OS services such as sharing a folder or configuring the network. I encourage you to create a bridge interface and add your Ethernet and your Wi-Fi card into it under XP and compare then doing that on few Linux distribution. The first thing you’ll notice is, typing ifconfig / brctl won’t store the configuration, and modifying the text files won’t change the current configuration until you restart some machine, the second thing you’ll notice is that each distribution will have it’s own configuration format, and in some cases its own tools.
That’s why projects like NetworkManager and GNOME System Tools have a hard time to succeed, the first one tries to solve only the obvious and simple problems, but it ignores totally ignores the stored configuration and the specific services of the distribution, and the second one tries to support every distribution, which leads to a huge maintaining effort.
Instead, the GNOME community could say, see, this is how you’re going to store network configuration (interfaces, proxy, vpn, gprs, ppp…) if you want an unified user experience and this is the UI and the command line tools for it. If the right tools and the right APIs are there, I don’t see any reason for distributions not adopting it after a few releases. Let’s stop delivering half arsed solutions.
This is just an example of what can be achieved, other examples could be the current directory layout (I can’t sleep thinking about the screams of users browsing / from the file chooser), software installation (go PackageKit go!) and (put your favorite legacy weirdness here).
The landscape has changed a lot over the latest 10 years, and we have showed that we can offer a predictable release that’s API/ABI stable, we’re the desktop and the development platform of choice for all the major opensource desktop vendors (RedHat, Canonical, Sun Microsystems, Novell…) and they’ve showed they’re willing to work closely with us (see the GIO port success!) to achieve reasonable goals, we have not only the power, but also the responsibility to boost changes to improve the whole situation. Yes, we can! 😉