web analytics

GUI Framework: GTK vs Qt, qualche delucidazione

Qt vs GTK framework - logo

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.

Qt Framework -1

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 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.

gtk framework -1

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]