Samstag, 24. April 2021

GTK und Qt

Wer sich mit Linux auseinandersetzt hört und liest immer wieder von GTK und Qt aber wer weiß schon genau was das ist, was es kann und was das alles mit Linux zu tun hat. An dieser Stelle ein grober Überblick. Gerichtet, wie immer, an Anfänger und solche die es werden wollen, verzeiht oberflächliche Vergleiche oder das "weglassen" von ach so wichtigen Dingen, das ist hier nicht das Telekolleg:

 

Frameworks

GTK und Qt sind Frameworks welche dazu verwendet werden Software zu entwickeln. Ganz gut mit einer Spieleengine zu vergleichen. So eine Software kann dann ganz rudimentäre Funktionen übernehmen wie beispielsweise mein Tumbleweed Noob Tool, welches GTK-Meldefenster verwendet um ganz einfache Konsolenbefehle in einer vom Nutzer festgelegten Reihenfolge abzufertigen.
Es kann aber auch deutlich komplexere Aufgaben bewältigen wie beispielsweise Kdenlive oder Gimp, wobei sowohl GTK als auch Qt im 'Grunde genommen' nur für die Bebilderung von untergelagertem Code verantwortlich sind.
Grob umrissen kann man in so einem Engine-Editor wie Glade, für GTK Anwendungen, eine Schaltfläche in einem Fenster definieren und mit einem Code festlegen was passieren soll, wenn jemand auf die Schaltfläche drückt.

 

GTK

Das "Gimp Tool Kit" wurde eigens dafür erfunden dem heute sehr beliebtem Programm Gimp eine grafische Oberfläche zu verpassen und ist fortan durch sehr einfache Handhabung eine Instanz wenn es um freie Software und dessen Entwicklung geht.
So basieren ganze Oberflächen wie MATE, GNOME, Cinnamon und XFCE samt Softwarepool rein aus GTK'ware - nicht zuletzt weil es im Gegensatz zu QT von vornherein ein komplett freies Anwendungsframework anbot und daher in der Linuxwelt lieber verwendet wurde als QT, was seinerseits wiederum mit Kommerz- und Lizenzen verknotet war/ist.

GTK hat vor allem im Verlauf der Version 3 viel Kritik einstecken müssen da neue Updates nicht sehr mit Abwärtskompatibilität geglänzt haben. Vor allem im Theming-Bereich machte regelmäßiger Frust die Runde und nach Versionsänderungen funktionierten viele Theme-Pakete gar nicht mehr oder nicht mehr richtig und mussten von den Entwicklern ständig hochgerüstet werden.

Aktuell wird GTK wegen Lückenhafter Dokumentation und nach wie vor schwieriges umsetzen von GTK Anwendungen auf andere Platformen kritisiert. Vor allem wenn es um das portieren auf andere Betriebssysteme geht, muss das wohl ein sehr intensiver Prozess sein der von vielen Entwicklern erst gar nicht in Betracht gezogen wird. Daher gilt GTK generell auch als ein Toolkit rein für Linux / Unixoide Systeme.  

Ein weiterer Kritikpunkt ist der Einfluss der Gnome-Foundation auf die Entwicklung von GTK. Die Gnome Entwickler tragen nämlich den Bärenanteil an der Weiterentwicklung und ihnen wird vorgeworfen, GTK exklusiv für Gnome zu entwickeln anstatt andersrum.

GTK gilt trotzdem eher als straight forward und 'made for linux', ihm wird eine glasklare Struktur und leichter Umgang attestiert, sowie die unumstößliche Haltung zu opensource, was letztenendes bei vielen das KO Argument für GTK darstellt, sowohl für die Nutzung als auch die Entwicklung.

 

Qt

Qt ist ebenfalls ein Anwendungsframework und wird von vielen Entwicklern als vollständiger und vielseitiger beschrieben. Qt ist grundsätzlich, wie auch GTK freie Software (...gewesen), geht allerdings mit einer Kommerziellen Nutzung und Lizenzpolitik einher. 

Qt wird vor allem durch die Kompatibilität zu anderen Betriebssystemen hoch gelobt, nicht nur mühelos portierbar, vielseitiger und nahtloser in allen Belangen, sondern dadurch auch für jeden Entwickler die zukunftssichere Wahl. Auch der kommerzielle Aspekt ist für einige die Versicherung für stabile, getestete und LTS'sche Software. Der kommerzielle Ansatz missfällt allerdings vielen Entwicklern und Benutzern. Das führt aktuell zu viel Diskussionen, denn mit der Veröffentlichung von Qt6 werden kommerzielle Kunden bei Aktualisierungen und Support bevorzugt - edit: Es ist sogar noch etwas schlimmer als befürchtet, denn der opensource Zweig ab Qt6 bekommt von offizieller Seite überhaupt keine Patches mehr.

Das wäre _grundsätzlich_ kaum ein Problem denn der opensource Fluch wird dann ganz automatisch für einen Fork sorgen der dann openQt oder so heißt und sich die Entwicklercommunity dann irgendwann so sehr zerstreitet, dass  noch mehr Forks hervorgebracht werden (kleine Übertreibung).

In Wahrheit haben sich die KDE Verantwortlichen bereits ausführlich darüber unterhalten und schließen einen Fork von Qt _erstmal_ aus - schließlich wäre die Pflege von KDE _und_ dessen kompletten Unterbaus aufwändig ohne Ende. Stattdessen wollen die KDE Entwickler eigene Patches in Qt einbringen und hoffen dass diese Maßnahme ausreichend ist.
Alle anderen Qt Entwickler die opensource Software bereitstellen wollen, schauen ganz schön in die Röhre und auch KDE wird sich auf lange Sicht noch ganz schön umschauen müssen.

 

Und?

Sowohl Qt als auch GTK sind im Grunde das selbe und doch so anders - Sie sind grund solide, erfüllen zuverlässig ihre Aufgaben und sind eher politisch als technisch diskutabel, zumal beide keine Unschuldslämmchen sind wenn es darum geht die Kundschaft zu verärgern. 

Wenn man mich fragen würde, würde ich im Moment auf GTK setzen. KDE und generell freie Qt Anwendungen werden sich noch ganz schön umschauen müssen wenn keine Sicherheits-, Updates von offizieller Seite mehr reinkommen.
Ich prophezeie in den nächsten zwei Jahren den ersten Qt Fork der aus den zahlreichen Patches der KDE Entwickler hervorgehen wird und je nach dem wer sich um diesen Fork kümmert, wird Qt zurück ins Rampenlicht in der opensource Welt rücken - Schließlich wird die Gnome foundation weiterhin GTK für seine Zwecke entwickeln bis es kaum für anderes mehr taugt als für Gnome selbst. Alle verprellten werden dann dankbar auf das "neue" KDE umsteigen. 

 

 


Zum nachlesen und fühlen (teilweise veraltet aber trotzdem schön):

Über kaputte Abwärtskompatibilität in GTK3

Mehr über kaputte Abwärtskompatibilität in GTK3

Schöne Zusammenfassung über den Zustand um GTK / Gnome 3 aus 2012

Reddit Diskussion über das Kritikverhalten der Gnome Entwickler

Änderung der Qt Lizenz und open source drop

KDE pflegt eigene Patches für Qt