14 luglio 2008

Gradevole come una balena insabbiata

Update: spiacente di essermi dimenticato il titolo... cioè mi ero dimenticato di metterlo quando ho pubblicato e ora mi sono dimenticato quale fosse, quindi ho rimediato in 4 e 4 8

Che le GTK+ fossero qualcosa di obsoleto lo dico da tempo. Che sia molto meglio scriverle in C++ che è un linguaggio con i controcosi l'ho sempre sospettato, ma ora ne ho la conferma. Che GNOME è inutile che esista lo sanno praticamente tutti tranne me.

Ora che ho fatto coming out per la seconda volta nel giro di una settimana, lasciatemi irridere crassamente la nuova stupida idea che è venuta in mente a quei mentecatti degli sviluppatori delle GTK+ e di GNOME.

Ma prima un doveroso riassunto.

Un toolkit veramente moderno dovrebbe fornire un sistema per il theming degno di questo nome. L'utente deve essere messo nelle condizioni di cambiare non solo il colore, ma anche la forma di ogni controllo che appare a schermo (ah, WindowsBlind... che sogno umidiccio) perché è così che fanno i sistemi operativi seri e moderni. Essendo però le GTK+ un toolkit antiquato, il suo sistema di theming è altrettanto antiquato. Gli sviluppatori se ne sono accorti solo oggi, ma è da alemno un decennio che sono evidenti agli occhi di tutti¹ i seguenti problemi:
  • i theme engine sono troppo dipendenti dai dettagli di implementazione dei widget;
  • i widget non ereditano in modo corretto i colori;
  • gli stili non possono essere aggiornati con facilità in funzione di diversi valori delle proprietà;
  • gli artisti (ce ne fossero nella comunità di GNOME!!) non possono creare temi senza ricorrere a un engine.
La questione, si sa, va avanti da anni e anni e anni, solo perché quei capoccioni si ostinano a mantenere la compatibilità all'indietro e perché all'epoca di GTK+ 2.0 non avevano idee migliori e sviluppatori capaci che potessero sfruttare l'accelerazione 3D.

Oggi, inebriati dai fumi dei narghilè che si sono fumati in quel di Istanbum, invece che arrivare alla vera soluzione (spostarsi di qualche chilometro e ritirarsi a vita monastica sul monte Athos lasciando che il vero desktop² conquisti il mondo e guidi le masse) arrancano ancora nel tentare la rianimazione artificiale di qualcosa che nessuno vuole più.

Prima se ne escono con le seguenti proposte collegiali:
  • creare un theme engine CSS per fare delle prove e vedere come funziona e se gli artisti riescono in questo modo a tirare fuori qualcosa di buono senza richiedere la scrittura di codice;
  • definire una nuovi API per la 3.x;
  • aggiungere un treno di funzionalità e miglioramenti.
Poi, non contenti, lasciano la parola a uno sconosciuto Owen Taylor, il quale dichiara che in teoria la vera soluzione al problema temi sarebbe creare una theme library "esterna" alle GTK+ perché:
  • in questo modo sistema di theming diverrebbe indipendente dai widget delle GTK+;
  • riuscirebbe meglio la theme-izzazione dei custom widget personalizzati forniti dalle applicazioni;
  • la theme library potrebbe essere usata anche da altri toolkit ed essere considerata l'API primaria per l'aspetto nativo di Linux.
Il tutto portando esempi che sembrano corretti, ma che in realtà sospetto si tratti semplicemente di una serie di understatement o altre figure retoriche che alterano il senso della realtà.

Agli dei io chiedo la fine di questi patimenti, dell'attesa durata già troppi anni (cit. o quasi).

[1] ma tutti tutti; andate al supermercato, reparto latticini, prendete la prima vecchia anziana signora che passa e domandatele "signora, il theming delle GTK+?" vi risponderà "nessuna pietà!"
[2] a scelta, a seconda delle vostre tendenze, il vero desktop è KDE, MacOS, Windows oppure Plan9

11 commenti:

raozuzu ha detto...

Seguo sempre il tuo blog... ma in questi giorni stai dando il meglio di te! :D
E le letture che mi (e ci) fai fare sono sempre molto interessanti.

Detto questo. Chiudo :P

P.S.: interessante ciò che dici sulla sezione "artisti" di GNOME ;P

vuvuvu ha detto...

secondo me il fatto che si cerchi di non rompere l'abi/abi e' una buona cosa (fin dove e' possibile) sarebbe carino se tipo si potesse mantenere l'api e magari introdurne una nuova + veloce e la vecchia mantenerla solo per compatibilita' i programmi vecchi sarebbero piu' lenti nel rendering ma cmq uniformi quelli nuovi che sfruttano la nuova api piu' performanti e con meno problemi generici no ?

Alessandro ha detto...

LOLissimo!!

Comunque, a parte la fine ormai doverosa delle obsolete GTK+ ( ;) ), il sistema di theming di queste vetuste librerie è qualcosa di fenomenale.

Mai visto tanta coerenza grafica in altri DE.
Basta paciugare un po' con un gtkrc per avere widget KDE~Windows~Mac os style.

Bastano degli engines pensati come si comanda e si ha una discreto numero di scelte, in modo da rendere il desktop sempre coerente, pulito e nuovo.

Grazie a Murrine, Clearlooks e il fuori dagli schemi Aurora GNOME è stato "svecchiato" negli ultimi tempi molto più di altri DE.

Certo che se gli "artisti" GNOME son quelli che bazzicano gnome-look e che fanno ricorso solo al pixmaps-engine non si può dar la colpa alle GTK+.

Il buon gusto, ahinoi, è ancora troppo elitario.
:)

saltydog ha detto...

Attenzione, caro elle.uca, ad invocare gli dei. Una volta un certo Promoteo cercò di rubare loro il segreto della tecnologia dell'Olimpo, e non fece una bella fine...

Dovessimo, prima o poi, venire a tirarti giù dalle sommità divine di un monte impervio...!

saltydog ha detto...

Ovviamente scusami il typo: Prometeo...

Alessio Treglia ha detto...

Ho avuto solo una volta il coraggio di supercazzolare un'anziana signora (Scusi, questo treno va per antani sulla destra di Campoleone a mare?), per raccontarti le nefaste conseguenze di tale gesto avrei bisogno di un'intera pagina di questo blog...

Lapo ha detto...

Chiaramente gli artisti sono impegnati a fare icone e non temi! :-)
Minchiate a parte, il problema è serio, e no, non basta un engine tradizionale fatto bene, perchè andare a pistolare un gtkrc è una tale infruttuosa rottura di scatole che fa passare immediatamente tutta la poesia, inoltre comunque sia fatto l'engine tutti gli widget custom (e ce ne sono abizzeffe) vanno trattati accuratamente. In breve per avere un tema fatto come dio comanda ci vuole un sacco di pazienza e un sacco di testing, ed al massimo si ottiene un mix di elementi già visti con colori diversi, quindi un qualsiasi grafico (o giù di lì) cosa ci perde tempo a fare?
Speriamo di arrivare un giorno ad un sistema di teming come quello in kde4 (si, sigh).

Alessandro ha detto...

@ Lapo: il sistema di theming di kde4 non si basa su immagini?

Altrimenti, oltre all'attuale sistema GNOME (che sarà una infruttuosa rottura di scatole ma funziona), che altre possibilità ci sono?

Janvitus ha detto...

Non sono un programmatore questo è certo, ma io indagherei più che altro sul perchè non adottino il C++, e non solo per un fatto di compatibilità, se lo stesso Linus Torvalds dice che il C++ "è per nerd sbavosi che vogliono programmare cacca" un perchè ci sarà... Non che Linus non dica cazzate, però...

Lapo ha detto...

@ Alessandro, che funzioni non ci sono dubbi, però è MOLTO difficile realizzare un tema e le possibilità sono abbastanza limitate senza mettersi a scrivere un engine, che non è esattamente una cosa alla portata di tutti. Dai un'occhiata su gnome-look (o simile) e vedrai sempre le stesse cose riproposte all'infinito con variazioni di colori e poco altro.

Alessandro ha detto...

@ lapo: Sì, hai ragione.
Ma gnome-look non ha mai eccelso per qualità dei contenuti.
E mi auguro che gli "artisti" non siano quelli, tralasciandone giusto una manciata, tra cui molti che postano i propri lavori sul rispettivo blog (esempi "nostrani" con materiale di alta qualità ce ne sono un po', tra cui tu, o mi sbaglio?).