April 18, 2019

.comment: Heigh-Ho, Heigh-Ho, It's Off to War We Go - page 2

A New Skirmish in the Semi-Annual KDE-Gnome Dispute

  • August 23, 2000
  • By Dennis E. Powell

Gnome is written, mostly, in C. KDE is written in C++. Yes, C is the language of Linux. That scarcely imparts any qualitative benefit. Gnome advocates point out that their favorite is not utterly tied to any particular language. True. And, as was recently pointed out to me, users don't care, with just this much information, what language something is written in. But with each additional language joining the fray a whole lot of code must be loaded to make the application run. It can be as if the apps were statically linked. Goodbye, efficient use of memory. Goodbye, object orientation (which, for those who know "object oriented" only as a buzzword, is reuse of code by many applications, not the existence of desktop "objects"). Goodbye, easy portability to other platforms. KDE, on the other hand, has reuse of code as a goal, which is why KDE2, though far more powerful, often has a smaller memory footprint than do earlier versions.

But even sticking to C, I'm told by programmers fluent in both, Gnome faces a world of technical issues to overcome before it is on par with a project, just starting out, in C++. An example was provided by a participant:

"If gnome-hackers [a mailing list] was archived, you could have a whole debate about a very classical problem of C programming : when a function returns a char*, who owns the char*? Does the caller have to free it? This is just about the most basic problem you can find with C programming. And they're thinking about it just now, after 3 years of development. KDE doesn't have such a problem, it has QString.

"This is only an example of a more general trend: their C base puts them in front of a lot of problems which KDE doesn't even face. Of course, KDE has C++-specific problems, but nothing as fundamental as this."

Gnome is written to the venerable and venerated GTK+, while KDE is written to the technically excellent but politically reviled QT. (Technically excellent? Youbetcha. I still have here a copy of QT Mozilla, in which Netscape Navigator was ported to QT in one man month.) Compare the documentation of the two. Look at the new QT Designer integrated development environment. Look at the documentation and tools in GTK+. Which would you rather write to? Likewise, the specific documentation for the developer heavily favors KDE.

While we're making comparisons on a developer level, it might be a good idea to look at kdelibs v. gnome-libs. The KDE libraries are so well understood that a bug is often fixed almost instantly. Gnome (and GTK+) are another story, according to a very highly respected Gnome and GTK+ expert who knows KDE and QT as well.

"The gnome-libs are a serious mess, with a lot of obsolete, unused, or broken stuff," he recently wrote me. "Compare QT on one side vs. glib+gdk+gtk+gdk-pixbuf on the other. They have just taken care of correcting something as fundamental as loading and displaying pixmaps."

It gets worse. GTK+ offers one way to make menus. Gnome libraries offer another. Bonobo yet another. KDE is straightforward in this regard.

As my friend who knows both has put it, the KDE developer is more productive.

Most Popular LinuxPlanet Stories