Matthew Garrett ([personal profile] mjg59) wrote,
@ 2011-04-27 12:35 pm UTC
  • Previous Entry
  • Add to Memories
  • Tell someone about this!
  • Next Entry
Entry tags:advogato, fedora
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.


(Read 49 comments) - (Post a new comment)
(Flat) (Top-level comments only)

Re: Bad Science?


[personal profile] mjg59
2011-04-27 06:41 pm UTC (link)
Take an infrastructure project (ie, things like bluez, upower, dbus, gstreamer, udisks, networkmanager, X). Look at the number of active KDE developers involved. Now do the same for active Gnome developers. KDE tends to focus on layers like Solid and Phonon, projects that seek to abstract the underlying infrastructure and which make KDE more platform independent. Since Gnome lacks these kinds of layers, Gnome developers tend to work directly on the underlying infrastructure.

(Reply to this)  (Thread from start)  (Parent)  (Thread


Re: Bad Science?


(Anonymous)
2011-04-27 06:59 pm UTC (link)
Another things I have to wonder about... are other differences between the GNOME and the KDE developers. For example, and I'm just guessing here... are most of the GNOME developers who are doing underlying infrastructure commits also Red Hat employees who are more closely linked to the underlying stuff already? My guess would be yes. If true, that is not a criticism of anyone... just another potential explanation.

Also, from their experience with KDE 1, 2, and 3... they used to have some lower level stuff and then they suffered from having trouble maintaining it. I'm thinking here mainly of their soundserver that I can't seem to remember the name of. One of their ideas with 4.0 was that they wanted to abstract more in the underlying KDE libs so that those developing KDE apps would have a stable, unchanging foundation to develop on... and wouldn't have to worry about if the underlying sound system changed or some other underlying piece changed. KDE decided to manage the damage in their abstraction layer... making it easier for the app developers. There seems to be a certain validity to that. With GNOME, if the underlying stuff changes, as if often does, all of those apps have to be fixed. App developers already have the big task of refactoring for widget set changes (gtk2 to gtk3, qt3 to qt4)... why not make something easier for them?

So, my guess is if you asked the designers of the KDE libs why they aren't doing what some of the GNOME devs are, they'd tell you that they learned from previous mistakes. :)

Again, not criticism of anyone... just an unproven set of assumptions and comments! hehe

Scott Dowdle
dowdle@montanalinux.org

(Reply to this)  (Thread from start)  (Parent)  (Thread


Re: Bad Science?


[personal profile] mjg59
2011-04-27 07:01 pm UTC (link)
I think a lot of that's true. Like I said, I'm not trying to criticise KDE here - just give some insight into why the projects make different decisions.

(Reply to this)  (Thread from start)  (Parent


Re: Bad Science?


[identity profile] misc.id.fedoraproject.org
2011-04-27 07:25 pm UTC (link)
The name you seek is arts. ( ex kde sound server ).

(Reply to this)  (Thread from start)  (Parent


Re: Bad Science?


(Anonymous)
2011-04-27 08:32 pm UTC (link)
KDE also runs on more than one operating system. We have these abstraction layers for that very reason, not because we don't want to work with upstream.
ryan rix

(Reply to this)  (Thread from start)  (Parent)  (Thread


Re: Bad Science?


(Anonymous)
2011-04-27 08:52 pm UTC (link)
What platforms does KDE run on that GNOME doesn't? Not many I'd imagine. With Linux having essentially taken over the world now, the future is architecture support, and I wouldn't think there's a lot between KDE and GNOME there either.

- Chris

(Reply to this)  (Thread from start)  (Parent)  (Thread


Re: Bad Science?


[personal profile] mjg59
2011-04-27 08:55 pm UTC (link)
There's ports to Windows and MacOS, at least. I don't know what level of completion they're at, but one of the purposes of Phonon was to allow abstraction of the platform's native media implementation.

(Of course, we've then ended up with phonon implementations for xine, vlc and gstreamer with varying degrees of leakiness in the abstraction. I'm not sure that one's an amazingly strong argument, but people still seem to be using it so I guess they're happy enough)

(Reply to this)  (Thread from start)  (Parent



(Read 49 comments) - (Post a new comment)
(Flat) (Top-level comments only)