vineri, 9 noiembrie 2012

GTK 3: încotro?

Pentru cei străini de programare (şi mai ales de Linux) termenul GTK nu spune prea multe. O explicaţie "mai din topor" pentru aceştia ar fi că GTK e un set de funcţionalităţi puse la dispoziţie programatorului (API) pentru a-l ajuta la creearea interfeţelor grafice pentru programe. Practic e componenta care se ocupă de afişarea butoanelor, textului şi a restului de elemente vizibile dintr-o aplicaţie şi totodată de manipularea informaţiilor venite de la dispozitivele de intrare (tastatură, mouse, etc.). Desigur, şi GTK şi Qt (acesta din urmă fiind un alt set de funcţionalităţi pentru interfeţe grafice) au cam "sărit calul" şi oferă mult mai mult decât simple instrumente pentru interfeţe grafice, printre care API-uri pentru redarea de fişiere media şi accesarea de fişiere de pe calculatoare aflate la distanţă (prin intermediul reţelelor de date).

Gnome 3 şi GTK: păreri obiective (pe cât posibil)


Sus: GTK 2, jos: GTK 3
Acelaşi widget, aceeaşi funcţionalitate.
Doar că cel din GTK 3 ocupă mult mai mult spaţiu pe orizontală
GTK este important pentru mediul Linux deoarece mare parte din programele cu interfaţă grafică pentru acest sistem de operare sunt scrie folosit acest API, inclusiv Pymaxe şi TV-Maxe. Recent (adică aproximativ 2 ani) GTK a trecut la o nouă versiune majoră, odată cu mediul desktop Gnome (care se ocupă de dezvoltarea acestui toolkit). Odată cu această nouă versiune majoră Gnome a luat-o pe o direcţie orientată spre dispozitivele mobile cu touch-screen iar acest lucru se reflectă şi în GTK care primeşte, cu fiecare nou release, tot soiul de widget-uri (pentru necunoscători: un element grafic = un widget; butonul este un widget, de exemplu) "prietenoase" mai mult cu degetul decât cu cursorul de mouse. Problema e că această direcţie adoptată de dezvoltatorii Gnome calcă în picioare doleanţele utilizatorilor, majoritatea preferând o paradigmă clasică a unei interfeţe grafice decât una orientată spre touchscreen-uri (unde, din câte cunosc, Gnome nu a fost implementat pe nicio platformă în mod oficial).

Butonul de ON/OFF: copiat cu nesimţire din iOS
şi gândit mai degrabă pentru touchscren-uri
Lăsând la o parte Gnome (care a cam început a pierde dezvoltatori), GTK 3 este şi el problematic deoarece suferă de acelaşi management prost de care se bucură şi mediul grafic la baza căruia se află acesta. Ba mai mult, dezvoltatorii acestuia obişnuiesc să schimbe API-uri de la o versiune (minoră) la alta, mai ales din punctul de vedere al temelor grafice (skin-urilor), lucru supărător pentru designeri care pierd ore bune adaptându-şi temele la noile versiuni ale acestui toolkit. De fapt dezvoltatorii Gnome şi GTK par să aibă chiar o opinie contrară conceptului de personalizare a interfeţei web cu teme grafice, citez: "I’m particularly surprised by the inclusion of themes.". Oricum, pe scurt spus, problema cu GTK din perspectiva programatorului de rând este că Gnome par a vrea să-l ţină doar pentru ei, fără a le păsa de restul proiectelor ce nu fac parte din Gnome ce utilizează acest toolkit.


Gnome 3 şi GTK: păreri subiective

Personal nu agreez deloc acest curent de unificare a interfeţelor pentru tablete cu cele de pe desktop, curent adoptat atât de Gnome, cât şi de Microsoft (în Windows 8) sau Apple (proces care la ei este încă în curs, pe OS X). Mă aştept ca acest boom al tabletelor să fie doar ceva temporar şi tocmai din acest motiv consider că aruncarea la gunoi a peste 25 de ani de research în domeniul utilizabilităţii interfeţelor grafice doar pentru adoptarea unui curent la modă e pierdere de vreme şi se va solda cu pierderi pentru oricine aderă la acesta.

GTK 3 este atât de grotesc cu butoanele sale de ON/OFF, cu widget-urile mari şi theme engine-ul ce fac ca programele să pară a rula într-un browser web încât, dacă ar fi să renunţ la GTK 2, aş porta Pymaxe şi TV-Maxe pe Qt, cu toată incertitudinea ce pluteşte asupra viitorului său (de când Digia a cumpărat divizia Trolltech de la Nokia). Deşi l-am folosit foarte puţin, noua paradigmă adoptată de Gnome 3 îmi pare a sta mai degrabă în cale decât a mă ajuta, toată această schimbare de paradigmă forţându-mă să pierd vremea cu un lucru care l-am făcut deja acum mulţi ani - să utilizez calculatorul. Aproximativ un an am folosit KDE 4 şi pot să spun că mi-a fost greu la început să mă adaptez: toate lucrurile păreau a-mi sta în cale atunci când vroiam să lucrez; iar KDE 4 încă mai urmează cât de cât stilul clasic al desktop-urilor.
Gnome Shell at its best: încotro o luăm, Ioane?
Anyway, păreri despre GTK 3 din partea unui dezvoltator ce foloseşte acest toolkit (SpaceFM) puteţi citi şi aici. Cât despre cele două proiecte personale, Pymaxe şi TV-Maxe, multă vreme acestea vor mai sta pe GTK 2 urmând ca, în momentul în care acesta din urmă să fie aruncat definitiv la gunoi, să mă decid asupra toolkit-ului pe care îl voi folosi. Poate că totuşi, între timp, cei de la Gnome îşi vor da seama că drumul pe care au apucat-o nu e unul ok şi vor reveni asupra deciziilor pe care le fac astăzi. Până atunci, personal rămân prins de XFCE şi Mate (cu posibilitate de întoarcere la KDE).


4 comentarii :

Lupin spunea...

Poti incerca PyQt, eu in momentul asta lucrez cu Qt si C++ insa cu Python a fost dragoste la prima vedere :)

Chiar mi-a trecut prin cap odata sa portez cele 2 aplicatii pe Qt dar nu m-a lasat timpul.

Faina analiza! Eu folosesc Unity de la 11.10 si de cand mi s-a prajit PC-ul acu 2 luni folosesc un Mac.

N-am mai prea urmarit ce s-a intamplat cu gnome in ultimele 2 luni, chiar asa arata? :| (ca in screenshot)

Ovidiu spunea...

Cam aşa arată dintotdeauna - mai nou au scos o groază de feature-uri din Nautilus 3.6 pentru că... nu sunt touch friendly. Nu ştiu unde vor să ajungă ăştia...

Lupin spunea...

am auzit ca i-au facut fork si i-au zis nemo :)

asta-i cel mai fain in open-source. chestiile faine nu mor.

Robert spunea...

Salut Stiu ca e cam off topic dar, cum veni vorba de MATE, l-am incercat si eu acu vreo cateva zile dar am avut probleme cu touchpad-ul. Nu puteam clik-ui. Am intra si in setari pentru a activa clik-uirea dar nu a mers nici asa. Cunosti vreun "remediu"?