Grave carenza di sviluppatori GTK

Le GTK+, o Gimp ToolKit, sono le librerie grafiche che stanno alla base della gran parte di applicazioni desktop per sistemi operativi liberi (e non solo, visto che le GTK esistono anche per winzoz e macosx). L’intero GNOME è fondato sulle GTK.

gtk.png

In un messaggio un po’ allarmistico, Tim Janik nel suo blog ha descritto il problema principale che sta dietro alla lentezza con cui vengono processate le richieste dal team di sviluppo delle GTK. Tali richieste possono essere di varia natura, si va dai bugfix all’introduzione di nuove caratteristiche.

Il motivo di tanta lentezza è, come espresso in questo messaggio alla ML gtk-devel-list, la carenza di sviluppatori “centrali” nel team di sviluppo. Le principali attività che dovrebbero essere svolte, come descritto da quel messaggio, sarebbero:

  • Effettuare rilasci regolari e frequenti – qualcosa che GNOME fa già da tempo
  • Comunicare – così tanti progetti che dipendono dalle GTK e lo stesso si ha poca informazione? È la prima volta che io sento di questo malessere
  • Riportare Bug e regressioni – e magari sistemarli?
  • Refactoring e mantenimento – molte parti di GNOME e piccole librerie dell’universo desktop vengono continuamente riscritte, a quanto pare non è così per le GTK.
  • Ottimizzazione e nuove caratteristiche – in effetti tutto il lavoro “sporco” sembra che venga effettuato altrove.

Il mio punto di vista

Io spero, come già auspicato timidamente in passato, che le GTK diventino un po’ più un “affare di GNOME”. Molte delle ottimizzazioni e attenzioni che sta ricevendo GNOME potrebbero essere rivolte alle GTK.

Questo da una parte potrebbe significare una piccola perdita di autonomia da parte delle librerie in questione, ma dall’altra potrebbe essere un’ottima opportunità per crescere insieme al desktop libero che più di tutti è guidato da scelte di marketing oculate. Date semplicemente un occhio a come si presentano le homepage dei due progetti: GNOME (e soprattutto lo studio del nuovo sito) e GTK.

Non è raro leggere qualche hacker di GNOME proporre di spostare alcune funzionalità, attualmente spezzettate in piccole librerie, direttamente nelle GTK. Forse è proprio la via da seguire?

26 pensieri su “Grave carenza di sviluppatori GTK

  1. Ho letto in giro che Apple si sta interessando all’ integrazione delle GTK+ in OsX in maniera nativa, senza il supporto del server X (..addirittura si accennava la possibilità di sostituire Aqua..).
    Pare che le GTK+ interessino molto anche fuori dal mondo open.
    Speriamo questa sia una spinta a migliorarne lo sviluppo.

  2. @Xander
    Hai mischiato un po’ troppe cose :D
    E’ vero che si vocifera che Apple voglia sostituire Aqua, ma non certo con le Gtk.. sarebbe una mossa suicida :D Si parla di una nuova veste grafica con trasparenze e colori neri, un po’ come Vista.
    Inoltre è vero che qualcuno sta cercando di integrare le Gtk in OsX, ma è un azienda esterna, Imendio… e questo “sforzo” si protrae da non so quanti anni, quindi oramai nutro poche speranze…

    Il problema delle Gtk è uno solo: sono scritte in C.

  3. se lo chiami un problema il C…

    comunque devono darsi una svegliata sì, perchè qua le qt4.2 mi sembrano eccezionali….

    ecco, kde4 supporterà nativamente l’installazione nel mac os x senza server X…
    è quasi sicuro che sarà così

  4. Sì il C è un problema, per il semplice fatto che nelle università non si studia più.
    Mentre passare da Java (si insegna questo pressoché ovunque) alla programmazione Qt/KDE è perfino divertente, passare da Java al C usato nelle Gtk procura un bel po’ di mal di testa.
    Da qui la carenza di sviluppatori.

  5. @AC:
    “Sì il C è un problema, per il semplice fatto che nelle università non si studia più.”

    Questa è nuova!Ti smentisco:A Lecce si studia il C in fondamenti di Informatica I nel corso di Ingegneria dell’informazione( ca**o, ci studio io! )…
    E poi che cavolata…Non conoscere il C è come conoscere a metà la maggior parte dei linguaggi di programmazione odierni ( per citarne qualcuno Java appunto, C++, C# ) che dal C derivano!

  6. @italyanker: magari AC si è espresso male, ma per esempio io avrei dovuto studiare C (Uni di Palermo) solo in funzione di Java.

    Per fortuna lo conoscevo da me.

  7. @ AC :
    Io non parlo di Leopard. Non di rifare il look ad Aqua. Ho letto proprio di una sostituzione di Aqua. Il che non significa certo che accadrà, però qualcuno in giro ha preso in considerazione l’ idea, tutto qua.

    Ma le qt ci son per Win?

    Il motivo per cui si poponeva di integrare le GTK+ è il fatto che siano supportate in vari OS, quindi un vantaggio per applicazioni cross-platform.

    Ditemi se è una c*zzata.

    :)

  8. @AC:
    Imendio a quanto pare non gestisce più le GTK su mac os…
    Pare sia stato spostato tutto su un sito figlio di gnome.org!

    The Planner project is no longer being developed and maintained by Imendio AB and is moved to http://live.gnome.org/Planner.

  9. GS Defender…
    si pagano se le usi anche in linux per fare programmi commerciali…

    il C è un extra bene e java devo ancora capire perchè tanta gente gli accredi così tanta stima?
    è portabile? ceto!
    ma del codice C o C++ scritto COME DIO COMANDA è molto semplice da trattare per un eventuale porting….

    ergo, speriamo rimangano a vita in C le gtk…

    PS: il C me lo hanno insegnato anni fa alle superiori.. e ho detto tutto!

  10. @Xander
    Sì, ho capito quello a cui ti riferisci: la nuova interfaccia di MacOSX si dovrebbe chiamare Illuminous e presentare trasparenze e colori neri. O almeno così si dice in rete.

    @italyanker
    Planner è un applicazione, che c’entra con le Gtk su OSX :D
    http://developer.imendio.com/projects/gtk-macosx

    Le Qt comunque sono free software (GPL) e native su Linux, Windows e MacOSX.
    Per lo sviluppo di applicazioni closed-source invece si pagano.
    (e personalmente mi sembra un ottimo compromesso, in questo modo si scoraggia lo sviluppo di software proprietario e si auto-finanziano lo sviluppo, mi piacerebbe che anche le Gtk fossero così).

    Per la storia del C: rimango della mia idea.
    L’ho studiato anche io il C all’università, ma giusto qualche fopen, fwrite, e così via nel corso di Sistemi Operativi. Non pensate che con quelle due cazzate siate in grado di modificare il codice delle Gtk…

  11. AC è giusto che le GTK siano scritte in C come è giusto che GNOME sia scritto in Java/Python/Chi che vuoi

  12. “Non è raro leggere qualche hacker di GNOME proporre di spostare alcune funzionalità, attualmente spezzettate in piccole librerie, direttamente nelle GTK. Forse è proprio la via da seguire?”

    Questo si sta già facendo da un po’, ad esempio per il supporto alla stampa, le espressioni regolari, la gestione dei documenti recenti e il correttore ortografico.

  13. Secondo me il problema non è tanto nel core delle librerie Gtk, che vabbè sono in C (che è ormai un pò per sadomasochisti…), ma più che altro nei tool di sviluppo. La piattaforma Qt è decisamente anni luce avanti (vedi qmake/uic/designer eccetera…).

    Gtk è purtroppo decisamente un progetto software con ciclo vita da rinnovare e ridisegnare.

  14. Buh, io ho fatto 3 esami di solo C e sto seguendo solo ora (quarto anno al Politecnico di Torino) un corso di Java (che in effetti ti semplifica abbastanza la vita in cambio di un po’ di memoria). Avevo dato un’occhiata alla documentazione delle gtk, non mi sembravano così complicate…insomma, dato che per scrivere programmi così impegnativi ci vogliono programmatori “tosti”, non penso che qualcuno di questi possa avere difficoltà a scrivere in C!

  15. non è da sadisti….
    è un po’ di sano sforzo per avere dell’ottimo prodotto…

    non si può avere la moglie ubriaca e la botte piena…
    se vuoi dei programmi veloci, leggeri allora usa il C…
    se non hai tempo e fatica da perdere usa il resto…

  16. AC: “Il problema delle GTK è uno solo: sono scritte in C.”

    Allora evidentemente Linus Torvalds non ha capito nulla della vita… Proverei a spiegarglielo, e poi vedi la reazione…
    Chi ci ha provato in passato si è talmente scottato le dita che ha rinunciato a dire una castroneria simile da diverso tempo.

  17. @Bigshot 11:

    1) Io ritenevo che fossero disponibili _solo_ a pagamento, mentre per gnu/linux i sorgenti sono aggratis.
    2) Io rilevavo soltanto la situazione: a me Java non piace per niente, e quel che devo fare lo faccio in C++.

  18. @prometeo
    Non credo che paragonare un kernel a delle librerie grafiche sia molto sensato. E’ ovvio che per un kernel C e Assembly siano la scelta naturale. Non credo invece lo siano per un toolkit grafico, per lo meno non nel 2007.
    Mi auguro un forte ripensamento su come è strutturato tutto il “lato sviluppatore” di Gnome, perché al momento è davvero penoso (prendendo come termine di paragone Qt/KDE, la differenza diventa ancora più abissale con paragone Windows) perché sono gli sviluppatori che mantengono in vita il progetto. Carenza di sviluppatori -> il progetto chiude, grazie e arrivederci.

  19. @GS Defender
    Questo era vero per le Qt versione 3. Con la 4, sono diventate GPL anche su Windows e MacOSX.

  20. Il grosso problema delle GTK secondo me (e ribadisco IMHO prima di degenerare nell’ennesimo flame GTK vs QT o GNOME vs KDE) è un problema strutturale di linguaggio: cerca di simulare in C attraverso una miriade di macro e hack un modello ad oggetti (senza dubbio necessario nella realizzazione di una GUI/toolkit) in un linguaggio che ad oggetti non è; questo porta ad avere un codice sporco e pieno di conversioni,macro,ecc per evitare continue warning del compilatore, problemi inesistenti in C++ dove ereditarietà e polimorfismo sono caratteristiche intrinseche del linguaggio (vedi QT).

  21. Le Qt 4.2 hanno un certo numero di vantaggi, vediamo se riesco a riassumerli tutti:

    -C++ nativo (il che consente di avere codice pulito e ben strutturato
    in un progetto cosi’ grosso).
    -ben programmate (snelle, efficaci e veloci).
    -Doppia licenza (GPL e commerciale) su tutte e 3 le piattaforme:
    Linux,Mac e Windows.
    Infine 2 “punti di forza” che facilitano moltissimo la programmazione
    delle Qt:
    -Ottima documentazione sia online che offline.
    -Ottimo ambiente di sviluppo e Qt Designer.

    Non per voler scatenare flames, ma mi pare che ci siano tutti gli
    elementi per invogliare la gente a programmare sotto queste librerie
    grafiche.

  22. ANCHE:
    Vantaggi delle GTK rispetto a QT:
    – integrazione con GNOME (se piace GNOME ovviamente :-) )
    – velocità di compilazione (gcc è decisamente più veloce di g++)
    – LGPL, chi vuole scrivere un programma non GPL le può usare senza spendere un €..
    – … altro?? non ne saprei elencare altri….

    Svantaggi:
    – lentezza di esecuzione e disegno

    1. Scusami Ghost ma tra i vantaggi di cui parli non posso che accettare solo la LGPL. Tutto il resto o e’ soggettivo (integrazione con GNOME) o e’ trascurabile (meglio avere velocita’ di esecuzione piuttosto che di compilazione. Quest’ultima la fai in quantita’ sicuramente minore alla prima). Se lo svantaggio e’ poi lentezza di esecuzione e disegno… :P Insomma, io parlo da (vero) ignorante. Pero’ leggendo un po’ in giro finora mi hanno “attirato” molto di piu’ le QT. Non ho mai sviluppato in alcun linguaggio di programmazione e con alcuna API (se non per motivi didattici con Java e C) e, proprio come “novello”, vengo attirato molto di piu’ dai vantaggi di QT rispetto a quelli di GTK. Documentazione e ambiente sono due pilastri (IMHO) per rendere la vita piu’ facile ad uno sviluppatore. Tempo fa ho partecipato al Meego Day Italia (qui a Bologna) e sono rimasto affascinato dall’IDE per le QT sviluppato da Nokia e dall’integrazione che hanno queste librerie con una miriade di device diversi (senza compromettere la user experience che e’ poi cio’ che conta). Pero’, proprio perche’ cerco di non farmi abbindolare dallo “sbrilluccichio”, vorrei prima capire se davvero conviene darsi alle QT o se queste hanno svantaggi di cui, finora, non si e’ parlato. Grazie.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...