L’implementazione di HTML5 e CSS3 tra teoria e pratica

Se il 2010 puo essere considerato l'anno zero per le tecnologie HTML5 e CSS3, alla fine del 2012 sono trascorsi tre anni da quando i produttori di browser hanno iniziato a implementare le specifiche HTML5 nei loro prodotti. Inoltre, poche settimane fa il W3C ha annunciato che HTML5 e praticamente completato e che i prossimi step riguarderanno per lo piu il fine-tuning. Possiamo quindi fare il punto della situazione e controllare qual e lo stato dei lavori in attesa di rilascio ufficiale di HTML5 (che ricordiamo essere previsto dopo il 2014).

Se il 2010 può essere considerato l’anno zero per le tecnologie HTML5 e CSS3, alla fine del 2012 sono trascorsi tre anni da quando i produttori di browser hanno iniziato a implementare le specifiche HTML5 nei loro prodotti. Inoltre, poche settimane fa il W3C ha annunciato che HTML5 è praticamente completato e che i prossimi step riguarderanno per lo più il fine-tuning.

Possiamo quindi fare il punto della situazione e controllare qual è lo stato dei lavori in attesa di rilascio ufficiale di HTML5 (che ricordiamo essere previsto dopo il 2014). Nonostante alcune delusioni dal punto di vista commerciale (vedi qui) i progressi sono davvero notevoli. Il merito principale va soprattutto ad Internet Explorer, che seppur partito in ritardo rispetto agli altri browser ha recuperato molto bene nell’ultimo periodo, implementando un numero di funzionalità che lo colloca allo stesso livello di Firefox e Safari. Come sempre Chrome spicca su tutti, mantenendo il primato per il periodo osservato. Per la cronaca esistono browser che implementano addirittura più funzionalità (HTML5 e CSS3) rispetto a Chrome, ma sono ancora poco conosciuti.

Limitandoci ai browser più popolari, un modo di visualizzare graficamente lo stato dei lavori è offerto dalla metodologia HTML5test.com. Vale la pena di dare un’occhiata al sito per rendersi conto di qual’è il supporto di HTML5 nei diversi browser. Il sito assegna un punteggio a ciascun browser, che grosso modo ricalca il numero di funzionalità HTML5 implementate. Il punteggio massimo è 500, che dovrebbe rappresentare un’implementazione quasi completa di tutte le specifiche HTML5. Se tracciamo il punteggio ottenuto dall’analisi di HTML5test.com negli ultimi tre anni, otteniamo il seguente risultato

Figura 1 – Implementazione della funzionalità HTML5html5_01

Il grafico è abbastanza eloquente. La situazione è molto migliorata negli ultimi tre anni, in particolare nel 2012: alla fine dell’anno i principali browser si sono affermati sopra la soglia dei 300 punti, garantendo un buon supporto delle funzionalità HTML5. Questi risultati valgono, con qualche differenza trascurabile dei punteggi, anche per il settore mobile. I principali sistemi operativi (iOS, Android, Blackberry e Windows) hanno tutti superato la soglia dei 300 punti.

Ovviamente la metodologia HTML5test.com non è l’unica a dettar legge e alcuni criteri di valutazione potrebbero essere messi in discussione. In ogni caso il messaggio è chiaro: dal punto di vista pratico, cioè relativo all’implementazione nel browser più popolari, HTML5 è stato adottato rapidamente dei principali produttori di browser.

Andamento dei lavori

Andamento dei lavori

Il lavoro dei gruppi incaricati di coordinare l’implementazione delle specifiche HTML5 è molto incoraggiante. Solamente una decina di anni fa i produttori di browser non riuscivano a mettersi d’accordo nemmeno su quale “dialetto” JavaScript utilizzare. Alla fine degli anni ’90 i diversi linguaggi di scripting avevano addirittura nomi diversi, oltre che sintassi e comportamenti differenti. Lo stesso valeva per l’implementazione delle specifiche HTML e CSS. Con queste premesse era logico non aspettarsi troppo dalla cooperazione dei diversi produttori di browser. Per nostra fortuna HTML5 sta seguendo un percorso diverso. Per fare un esempio, il gruppo di lavoro che si occupa di concordare l’implementazione delle specifiche CSS ha dovuto affrontare diverse diatribe. Una di queste riguardava la sintassi dei gradienti grafici CSS3. Invece di discutere a tavolino qual era l’approccio migliore, i diversi produttori hanno concordato che l’implementazione presentata da Firefox era quella ottimale. Conseguentemente l’implementazione di Firefox è stata adottata come standard del gruppo di lavoro: un esempio di come la pratica possa servire a ridefinire la teoria.

Un altro aspetto importante riguarda l’andamento dei lavori relativi alle funzionalità dei cosiddetti Web Database. Si tratta di database leggeri inclusi nel browser, che permettono di memorizzare alcune informazioni client side. Molti browser utilizzano questa tecnica per memorizzare e organizzare i cookies. Ogni browser usa però una tecnologia diversa, da cui la necessità di concordare una specifica comune nell’ambito di HTML5. Dopo alcune discussioni e tentativi, al momento la scelta sembra orientarsi verso Indexed DB, che sembra essere il miglior candidato a diventare lo standard del futuro.

Il vantaggio di usare un database leggero (nel browser) permette di memorizzare le informazioni in modo omogeneo. Ad esempio, tutti i dati relativi a segnalibri dei preferiti, parametri delle applicazioni Web, indirizzi della posta elettronica ecc. possono essere memorizzati in modo persistente nel database leggero del browser. Ciò permette di inserire, aggiornare e cercare i dati usando una sintassi SQL, ritenuta comoda dalla maggior parte degli sviluppatori. Al momento di questo articolo (gennaio 2013) Indexed DB è supportato da Firefox, Chrome e dalle versioni di Internet Explorer successive alla 10. Gli altri browser, come ad esempio Safari, Opera e le vecchie versioni di Chrome (Chrome 4) utilizzano ancora la specifica alternativa, nota come WebSQL. Anche in questo caso i gruppi di lavoro sono riusciti a mettersi d’accordo in maniera soddisfacente. Da quasi due anni Indexed DB è stato riconosciuto come il nuovo standard.

L’unico aspetto che consigliamo di valutare a parte riguarda le promesse del Web semantico. Il Web semantico fu proposto da Sir Tim Berners Lee (l’inventore del Web) sin dagli albori di Internet. Le specifiche del Web semantico hanno fatto grandi passi avanti ed esistono già molte applicazioni pratiche. Purtroppo non esiste ancora uno standard unico adottato a livello mondiale, anche se la situazione è molto migliorata e il numero di proposte si è notevolmente ridotto. È però importante non confondere le aspettative del Web semantico con l’implementazione di HTML5. Sul Web esistono alcuni articoli che spiegano come le tag HTML5 header, footer, article ecc. permetteranno ai motori di ricerca di comprendere il significato delle diverse sezioni di una pagina Web. Affermare che queste tag sono un’implementazione del Web semantico non è del tutto corretto. Il Web semantico mira a definire il significato di qualsiasi elemento contenuto nella pagina e non solamente il significato degli elementi strutturali. Il nostro consiglio è quello di tenere i due argomenti ben separati, per non cadere nell’errore di sommare mele con pere.

Ufficialità delle specifiche

Ufficialità delle specifiche

Dopo aver discusso i risultati incoraggianti relativi all’implementazione di HTML5, ci si potrebbe chiedere qual è l’atteggiamento più corretto: conviene affidarsi alla pratica, ovvero iniziare a lavorare con HTML5 perché ormai ben supportato, oppure mantenere un approccio prudente, aspettando il rilascio ufficiale delle nuove specifiche? La domanda è molto importante soprattutto per chi deve scommettere su una nuova tecnologia. Il nostro suggerimento è quello di affidarsi ad HTML5 dal punto di vista tecnico, mantenendo al contempo basse le aspettative dal punto di vista commerciale. In altre parole forse conviene usare HTML5 senza farsi troppa pubblicità.

Per giustificare questo consiglio consideriamo un esempio pratico, che riguarda Ajax, una delle tecnologie più importanti degli ultimi anni. Tramite Ajax possiamo usare l’oggetto XMLHttpRequest per risolvere tutti i problemi del protocollo HTTP. Ajax è una le tecnologie più utilizzata, considerata quasi obbligatoria dalla maggior parte delle applicazioni. Lo stesso Web 2.0 probabilmente non potrebbe esistere senza Ajax. Nessuno metterebbe in discussione l’utilizzo di Ajax, eppure Ajax non è una specifica ufficiale! L’utilizzo di Ajax è diventato popolare grazie successo di Google Map parecchi anni fa (parliamo del 2005). Nonostante questo successo, le specifiche Ajax sono diventate una Candidate Recommendation solamente nel 2010. In particolare ciò significa che Ajax è una tecnologia che deve ancora essere ufficializzata dal consorzio W3C!

Approfondiamo l’argomento, spiegando a grandi linee qual è l’iter seguito dal consorzio W3C per validare le specifiche di una tecnologia. Il processo di validazione delle specifiche passa attraverso quattro fasi: prima viene presentata una “bozza di lavoro” (Working Draft). Quando la bozza è pronta essa viene trasformata in un “candidato per le specifiche” (Candidate Recommendation), ed eventualmente confrontata con altri candidati. Successivamente si entra nella fase della Proposed Recommendation, cioè della proposta finale. Questa fase può essere già considerata uno standard, perché molte tecnologie adottate a livello mondiale sono tuttora ferme a questa fase. Infine, quando le specifiche sono ufficializzate si entra nell’ultima fase: la stesura delle Full Recommendation, che sono lo standard vero e proprio.

Se pensiamo che la tecnologia come Ajax è ancora ferma al secondo step della procedura di validazione, pur essendo considerata un pilastro insostituibile del Web 2.0, si capisce che l’ufficializzazione di una specifica non dovrebbe essere un aspetto bloccante per una tecnologia. Nel nostro caso la situazione è addirittura a vantaggio di HTML5. Se proviamo a guardare in quale fase del procedimento di validazione si trovano le diverse specifiche troviamo una tabella come questa

Figura 2 – Stato delle specifiche HTML5 e CSS3html5_02

Nella prima riga troviamo le specifiche HTML5 e CSS3 che si trovano attualmente allo stesso livello di ufficializzazione della tecnologia Ajax. Come se non bastasse, tutte le altre specifiche HTML5 e CSS3 si trovano ad un livello di utilizzazione più avanzato rispetto ad Ajax!
In altre parole HTML5 e CSS3 sono già delle specifiche più ufficiali di Ajax. Se pensiamo di non investire su queste tecnologie solo perché mancano ancora due anni alla data di rilascio ufficiale, per coerenza dovremmo smettere immediatamente di utilizzare Ajax (cosa chiaramente impensabile).

Conclusioni

Quando valutiamo l’utilizzo di HTML5 e CSS3 la pratica dovrebbe pesare molto più della teoria . Il grafico di figura 1 (vedi prima pagina) è incoraggiante: dal punto di vista pratico HTML5 è una realtà e nel corso del 2013 possiamo aspettarci un ulteriore miglioramento. L’attesa di quasi due anni prima della presunta data di ufficializzazione delle specifiche non dovrebbe scoraggiarci, specialmente se pensiamo al confronto con Ajax (che, ripetiamo, non è ancora una tecnologia ufficiale). Ovviamente ciò non significa che dobbiamo affrettarci a sostituire il vecchio codice HTML4 con il nuovo codice HTML5, perché le nuove specifiche saranno retro compatibili con le precedenti. È però il caso di iniziare ad usare HTML5 almeno nei nuovi progetti, per non tardare all’appuntamento del 2014.