Please help me understand how programs are layered

Dotan Cohen dotancohen at
Tue Oct 3 20:00:25 BST 2006

Please excuse the newbie-question, but I'd like to know why certain
apps are "gnome apps" and others are "KDE apps". If I understand
correctly, programs are written in languages (C, perl, mono), using
toolkits (QT, GTK), for certain operating systems (Linux, Windows).
Now, as I understand it, programs written with the QT toolkit are KDE
apps, and those written with the GTK toolkit are Gnome apps. Is this

Now, I understand that changing a program from C to mono is impossible
without rewritting the whole program from scratch. But can a program
be switched from GTK to QT or vice-versa? How involved is that? Can
there be a QT version and a GTK version of the same app?

Also, I understand that programs written in C can work on either linux
or windows, but those written in Java can run on both, because the
Java runtime environment is specific to the OS. How does the toolkit
affect this- are they written in only QT || only GTK || neither?

Thanks for the info. Nothing I've been able to google has explained
this very well, for non-developers like myself.

Dotan Cohen

More information about the kubuntu-users mailing list