Alcuni giorni fa, durante una piccola pausa lettura, stavo leggendo un post redatto su html.it: parlava dell’ottimizzazione dell’esperienza utente nell’utilizzo delle nuove tecnologie rese disponibili con i CSS3. L’episodio portato ad esempio si riferiva ad un “background: fixed” su Firefox. In effetti mi sono sempre chiesto per quale motivo quella particolare situazione richiedesse tanti sforzi al motore di rendering del browser. Le riflessioni dell’autore però mi hanno dato stimolo su altre argomentazioni.
L’articolo mi trova concorde nell’ultima frase che cito: “La via che porta all’adozione di massa di certe proprietà deve passare attraverso[…] la saggezza e l’equilibrio di chi dovesse implementarle“. Però la interpreto diversamente dall’autore. Io con quel “chi dovesse implementarle“, intendo lo sviluppatore finale nel sito che sta creando e non l’azienda che implementa la feature.
Sono dell’idea che l’ottimizzazione costa e deve essere graduale. I CSS3 sono ancora in sviluppo e credo sia giusto e saggio a livello aziendale renderli disponibili all’utilizzo per saggiarne consistenza e appunto le performance al fine di migliorarli.
Come in tante applicazioni web la filosofia “Release Early, Release Often” identifica proprio questa situazione, derivata da concetti di programmazione Agile, dove le specifiche finali sono in continuo divenire e l’obiettivo si plasma in un continuo feedback con il committente, che in questo caso siamo noi, il mercato su internet.
Ritornando alla questione iniziale del background di Firefox, a dire il vero non mi ha mai creato particolari fastidi però mi ha fatto venire in mente che con l’implementazione dei nuovi tag HTML5 canvas (2d e 3d) e video, con il ritorno in auge di SVG, il browser sarà sempre più stressato a livello di rendering grafico il che presumo porterà ad adottare un’accelerazione hardware per il rendering dei contenuti sui diversi motori.
Spinto da curiosità sono andato a spulciare un po’ in giro e sembrerebbero sorprendentemente vicino quel momento, a partire dalla prossima versione di IE che a quanto pare comincerà ad utilizzare Direct2D al posto delle API GDi di Windows per tutti i contenuti SVG, canvas e video, seguito a ruota da Firefox.
Ora, stiamo parlando di Direct2D, ma come la mettiamo sui sistemi Linux o Apple? Quale sarà la strada che prenderanno per implementare tramite OpenGL (o altro, ad esempio OpenCL per Apple) le stesse soluzioni? Windows utilizza Direct2D per controllare hardware, ma è una tecnologia proprietaria, mentre un l’utilizzo diretto di OpenGL, tecnologia multi OS, su Windows non da gli stessi risultati (soprattutto sui vecchio OS di Microsoft).
Sarà semplice la questione o siamo di fronte ad una nuova guerra tra diverse tecnologie e sistemi operativi? Uff.. la cosa sta diventando un po’ ripetitiva… speriamo nel futuro.