This article is supposed to be a comparison of the GTK and Qt GUI frameworks. GTK had its first release in April, 1998 and Qt in May, 1995. Though Qt is 3 years elder, it has been developed in the hands of 5 different groups (Trolltech being the original one) till date whereas GTK is being developed by the The GNOME Project since its inception.
Qt is a complete framework while GTK is a GUI toolkit. GTK sits on top of the GObject base library stack, again from GNOME.
HIn the past 8 years, 4 companies have tried its hands with Qt. While there’s no doubt about the stability of the product, the ownership has really been unstable, bringing its roadmap and direction into question. however, the current org, The Qt Company, seems to have brought order in that chaos, and is community driven.
Coming to desktop environments, GNOME and numerous other DEs use GTK while KDE Frameworks (not complete KDE) uses Qt. LXQt is another Qt-based DE under development.
Going by the number of apps, GTK outnumbers Qt, mostly because a complete Qt-based DE came n late. However, that is changing fast. More and more apps have already moved or are moving to Qt (e.g. Dropbox, Wireshark, OpenShot). The reverse trend is almost NIL. Also GTK tends to be completely GNOME-centric while Qt has its options open (and in-progress) with Android and iOS. The problem with GTK is – the desktop market is at a standstill.
GTK is written in C and Qt is written in C++. There is no data to substantiate which one delivers better performance. On a GTK based DE, starting a Qt app will take a hit (because of cold-loading all libraries) and the reverse is also true.
Qt strives to project itself as multi-platform but that’s not the case with GTK (though both of them can run of different OSes). This is also inline with the fact that GTK is somewhat tied to GNOME.
Going by the trends and the project aspirations, Qt clearly is the way going forward and has enough potential to land on devices of any form-factor. GTK might not be going anywhere soon because of the number of DEs that support it as default, but it’s difficult for it to scale beyond the desktop without a major shakedown.