Pensieri e parole su HCI, home computing, tecnologie desktop e sul Progetto Lobotomy

domenica 2 settembre 2007

Predicar bene e razzolar male?

Rileggendo alcuni dei miei precedenti posts, soprattutto quelli in merito all'utilizzo di Clutter per la re-implementazione di Kiazma e Synapse, un interrogativo morale mi e' sorto: forse qualcuno, leggendo i miei propositi di utilizzo di una libreria grafica tanto avanzata e "sbrilluccicosa", pensa che mi sia ridotto anche io a voler sviluppare qualcosa di esteticamente bello e nulla piu'? Forse che tutte le proteste di innovazione e rivoluzione si riducono a qualche icona animata?
La risposta a questi interrogativi, qualora fossero sorti codesti sentimenti in qualcuno dei miei lettori, e' ovviamente "no": l'utilizzo di Clutter deriva da una (e piu' d'una) necessita'.
I motivi per cui ho deciso di riscrivere la mia propria libreria di widgets sono fondamentalmente due:
  • usando GTK+ mi sarebbe stato impossibile implementare l'environmental mapping ed altre tecnologie analoghe in programma per Synapse: poiche' in tali condizioni urge avere il pieno controllo dei singoli elementi che appaiono sullo schermo non e' possibile poggiarsi su una libreria che pone (legittimamente ed anzi fortunatamente) dei paletti alle manipolazioni possibili, ma e' indispensabile andare ad agire direttamente nella logica interna del sistema grafico. Indi, il fatto di riscriversi suddetto sistema grafico rispettando sin dalle fondamenta determinati obiettivi risulta addirittura piu' rapido e comodo che non compiere degli hacks di dubbia stabilita' su quanto c'e' di gia' esistente.
  • una delle parole chiave che appaiono nella roadmap del progetto Lobotomy e' "multithreading": se gia' adesso il sistema e' scomposto in piu' componenti che agiscono in processi separati, nell'immediato futuro si mira a strutturare ogni applicazione per operare quanto piu' possibile in modo parallelo, con il preciso scopo di massimizzare la prestazione su quella che oramai sembra destinata ad essere l'architettura hardware con cui dovremo confrontarci negli anni a venire: il multicore. Con tale obiettivo in mente, la nuova libreria grafica sara' orientata proprio alla parallelizzazione della generazione, disposizione e visualizzazione dei frammenti grafici da presentare all'utente: ad esempio, la KiazmaIconView che proprio adesso sto sviluppando sara' in grado di ricevere asincronicamente le informazioni sui files da visualizzare, si' da costruire nel frattempo le icone finali (le quali non saranno statiche, come nei filemanager attuali, ma ponderate in funzione del result set estratto da Hyppocampus che si intende rappresentare) e operare su piu' fronti contemporaneamente.
Oltre ai bisogni sopra esplicitati, non manca naturalmente anche il desiderio di costruire qualcosa che sia esteticamente bello ed ancor piu' funzionale: il gia' piu' volte menzionato Clutter permette di approcciarsi alla creazione di interfacce utente seguendo un paradigma completamente diverso da quanto visto sinora coi tradizionali toolkits grafici (disponendo gli oggetti non piu' a "scatole cinesi", uno dentro l'altro, come in GTK+, ma posizionando liberamente i tasselli che formano l'interfaccia nel suo complesso), sfrutta l'accelerazione OpenGL (dunque: la computazione prettamente grafica va a carico della scheda grafica, che in questo modo viene utilizzata non solo per i giochi tridimensionali ma anche nei tradizionali compiti di tutti i giorni), e viene comunque finanziata e sviluppata da una societa' (OpenedHand) che opera nel campo del mobile, dunque e' lecito aspettarsi un occhio di riguardo anche per quanto concerne la performance e l'ottimizzazione.

Ad oggi lo sviluppo di Kiazma procede assai a rilento, un po' perche' ancora mi si pongono problematiche strutturali che intendo pero' ben analizzare (in modo da non dovermi nuovamente trovare a scontrarmi con ostacoli logici da me stesso creati, come ahime' mi succede troppo spesso...) ed un po' perche' sono abbastanza preso dall'organizzazione del LinuxDay2007 a Torino: vedro' cosa riusciro' ad approntare da qui alla fine di settembre (quando, in un modo o nell'altro, qualcosa dovro' portare a Pisa...), ma e' piu' probabile che una release 0.3 di Synapse/Kiazma arrivi ad ottobre.
Stay tuned ;-)

Nessun commento: