[personal profile] mjg59
At some stage the seminal KDE vs Gnome paper vanished from its original home, and while it's still available in a few places (such as here) it set me thinking. What are the fundamental differences between Gnome and KDE development? There's lots of little differences (2006: Gnome parties on a beach. Akademy has melted ice cream in the rain) but they're both basically communities made up of people who are interested in developing a functional and interesting desktop experience. So why do the end results have so little in common?

Then I read this and something that had been floating around in my mind began to solidify. KDE assumes a platform and attempts to work around its shortcomings. Gnome helps define the platform and works on fixing its shortcomings.

It's pretty easy to see this across the platform. The developer of the Gnome Bluetooth support has multiple commits to the underlying Bluetooth stack, while nobody who's committed to bluedevil appears to. The main developer of the Gnome Networkmanager support is Networkmanager upstream, with the same applying to the Gnome power management infrastructure. And when Gnome developers find limitations in graphics drivers, those tend to be fixed in the graphics drivers rather than worked around in the UI code. KDE builds on top of what's already there, while Gnome is happy to flatten some mountains first.

I should emphasise that I'm not criticising KDE here[1]. These are both rational development models. One optimises for making things work and will compromise on functionality in order to be more portable to different underlying operating systems. The other optimises for additional functionality at the cost of being tied to a much smaller number of underlying operating systems that have to be completely up to date. But understanding that this distinction exists is key to understanding fundamental differences between the projects, and any argument about which is better or about how there should be more collaboration has to take these fundamentally different approaches into consideration. My personal belief is that a tightly integrated platform is going to produce a more compelling product in the long run than one built on top a series of abstraction layers, but we'll see what happens in the long run.

And then, of course, there's Unity and Canonical's gradual effort to turn Ubuntu into a platform distinct from either Gnome or KDE. But that's a separate post.

[1] Well, except for the melted ice cream at Akademy 2006. But I think that's fair.

Re: Meh

Date: 2011-04-28 09:33 am (UTC)
From: [identity profile] mgraesslin.myopenid.com
Sorry, but I have to disagree. Of course working with the driver developers is the better choice, but that would not have fixed our problems we had at the release of 4.5. We need to support the drivers our users are using. We had no other option than to workaround - we really evaluated the options and not shipping the features would not have solved our problems, but even more would have taken away features for users on working platforms such as NVIDIA.

If you want to fully understand the situation around 4.5 please read my lengthy mail to the mesa developer list. It is that long as it explains the situation and is required to understand each other which I think is a prerequisite to work together in the end.

Re: Meh

Date: 2011-04-28 02:56 pm (UTC)
From: [identity profile] mgraesslin.myopenid.com
No, it isn't. We also require working drivers. When we developed 4.5 the drivers (Mesa 7.6/7.7) were working. When we released 4.5 the drivers (Mesa 7.8) were partially not working. This was completely unknown to us during development and it seems like also for the driver developers. Of course we could have said we need working drivers requiring the distributions to either not upgrade the drivers or to disable features which worked before. Both is unlikely to succeed.

Gnome has so far not been in such a situation with the graphics drivers as they were able to develop Gnome Shell against future driver releases. I wish Gnome to never face such a situation. But really it is not like "we require working drivers and will work with the driver developers", reality might differ from the ideal world. I really think that it is difficult to judge this without having ever been in such a situation and maintaining an OpenGL compositor.

All this "platform thinking" you derive from my decisions, is just a wrong conclusion. We did not have an easy decision on how to handle the situation and in the end decided for an approach we believed as the most suitable for KDE, the drivers and most important our users.

Profile

Matthew Garrett

About Matthew

Power management, mobile and firmware developer on Linux. Security developer at Nebula. Ex-biologist. @mjg59 on Twitter. Content here should not be interpreted as the opinion of my employer.

Expand Cut Tags

No cut tags