Matthew Garrett ([personal profile] mjg59) wrote2011-04-27 12:35
Entry tags:

On platforms

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.

(Anonymous) 2011-04-27 20:25 (UTC)(link)
I think looking at this problem only from the desktops doesn't look far enough. Every "big" software project has to answer the question about how much time to spend on integration vs just working with the surrounding software. And you will find a lot of projects that do it the "work with" way, such as Mozilla, LibreOffice or Inkscape. And you'd have avoided singling out the KDE developers.

In fact, the "fix shortcomings" approach is a very rare approach and in my opinion it's one of the great success stories of the GNOME community[1]. Though I'm not entirely sure how much of this can be attributed to GNOME and how much of it should be attributed to the corporate sponsors (read: Red Hat).
But I suppose you'd have to think hard to find another project that participates in the development of surrounding software as much as GNOME does. Maybe around the kernel there's a bunch of projects that do?

[1]: another big success story is i10n.

(Anonymous) 2011-04-27 23:51 (UTC)(link)
I guess the cross-platformness also counts for KDE to some extent (at least for Qt), although I guess it's not as important for them as for the projects I listed.

But I'm not a fan of the cross-platform argument. If you want to be cross-platform, the same argument applies, just that there's more platforms you should cooperate with. (Which then leads to the question of why GNOME only targets/integrates with one platform. But I guess that's a different topic and the answer is the same as the one or Xorg.)

Sponsoring issues

(Anonymous) 2011-04-27 20:44 (UTC)(link)
I fully agree with the point mentioned above. Many times the low-level stuff was done by GNOME people because Red Hat sponsored them for doing exactly that.
reddragdiva: (Default)

[personal profile] reddragdiva 2011-04-28 14:38 (UTC)(link)
Don't forget the influence of "Not Invented Here" and "Not Invented Yet". Mozilla invented its own damn toolkit (XUL) because there was nothing usable and cross-platform, though they later made the Unix backend of XUL just GTK. OpenOffice did much the same, though I suspect more from NIH, given that NIH was an ongoing theme of OOo core development (which is what first led to the Ximian, later Novell, patchset which became the base for LibreOffice).