GUI Framework: GTK vs Qt, qualche delucidazione
Sicuramente chi utilizza un sistema operativo GNU/Linux, ma anche chi programma, avrà sicuramente sentito parlare dei GUI framework GTK e Qt, nati e sviluppati per permettere la creazione, in modo più o meno semplice, di interfacce grafiche per utilizzare programmi di qualsiasi natura. Chi non li ha mai utilizzati o non bazzica questo ambiente da tanto tempo potrebbe però non conoscere le reali differenze tra l’uno e l’altro framework, dopo essermi documentato un po’ ho deciso quindi di fare un piccolo articolo per fare un po’ di luce sulle differenze fra i due ambienti.
Un po’ di storia:
Volendo parlare brevemente della storia di questi framework, il primo a vedere la luce è stato Qt nel Maggio 1995, mentre GTK è nato nell’Aprile 1998. Per quanto riguarda lo sviluppo, quello di Qt è passato per le mani di ben 5 gruppi diversi (Trolltech è quello originale), addirittura negli ultimi 8 anni ci sono state ben 4 compagnie che hanno cercato di mettere le mani su Qt, e se nessuno può mettere in dubbio la maturità e stabilità del prodotto, non altrettanto si può dire della sua proprietà, comunque la compagnia che attualmente lo possiede, la Qt Company (che è community driven), pare aver portato un po’ d’ordine in questo caos. Per quanto riguarda GTK invece, esso è stato sviluppato sempre e soltanto dal progetto GNOME.
Struttura, applicazioni e desktop environment:
Volendo parlare di struttura e realizzazione, Qt è un framework completo ed è scritto in C++ mentre GTK è solamente un GUI toolkit scritto in C che si appoggia sul library stack di base GObject. Per quel che riguarda le performance non ci sono dati che palesano risultati migliori di uno rispetto all’altro: lanciare un’applicazione Qt in un’ambiente desktop GTK richiederà parecchio tempo (questo a causa del “caricamento a freddo” di tutte le librerie) e la stessa cosa vale al contrario.
Per quanto riguarda la loro diffusione nel campo dei desktop environment sicuramente GTK gode di una maggior presenza, sono infatti moltissimi i DE che si appoggiano su tale framework, mentre quelli Qt-based sono soltanto KDE Frameworks (ma non tutto quello che riguarda il mondo KDE è basato su Qt) ed LXQt.
Passando al numero di applicazioni che sfruttano i due ambienti, anche qui GTK vince nettamente sulla sua controparte, principalmente a causa del fatto che i DE Qt-based sono arrivati dopo. Le cose però stanno cambiando velocemente. Ogni giorno sono infatti sempre di più le applicazioni che passano a Qt (per esempio Dropbox, Wireshark ed OpenShot) mentre casi di migrazione nell’altro senso sono quasi inesistenti e ciò probabilmente è dovuto al fatto che GTK tende ad essere completamente “GNOME-centrico” e che il mercato desktop si trova in una fase di evidente stallo, mentre Qt sta spianando la strada per poterlo utilizzare anche con Android ed iOS.
Conclusioni:
Per quanto riguarda le piattaforme di utilizzo, Qt cerca sempre di più di conformarsi come un ambiente multi-piattaforma mentre ciò non accade per GTK (anche se in realtà entrambi possono girare su sistemi operativi diversi), cosa del tutto comprensibile dato che GTK è legato in un modo o nell’altro a GNOME. Volendo metterci in un’ottica volta a cercare di prevedere cosa ci riserverà il prossimo futuro possiamo sicuramente dire che Qt sta percorrendo una strada che lo porterà a sbarcare su dispositivi di qualsiasi forma mentre non è altrettanto facile capire come si muoverà GTK dato che molti DE lo supportano di default ma che è molto difficile portarlo al di fuori dei desktop senza delle pesanti modifiche.
Qui si conclude la mia breve panoramica sui GUI Toolkit framework. E voi che ne pensate di questi due ambienti? Quale preferite? Condividete con noi le vostre impressioni!
[Fonte]