giovedì 22 marzo 2007

Quando meno te l'aspetti


Sono stato un po' impegnato, ultimamente, vi ho lasciati senza post per un bel tocco di giorni.

Per evitare che disdiciate l'abbonamento, eccomi, sono tornato.
Ma il titolo non si riferisce a questo, ovviamente.

No, si riferisce alle nuove frontiere dell'HTML, quelle che ci faranno arrivare là, dove nessun uomo è giunto prima.

E anche meno.
Più, più, volevo dire più, voi non sbagliate mai?



Sei pronto?
Io sono nato pronto
Jack Burton - Grosso guaio a Chinatown - 1986
(a sua parziale discolpa, non poteva sapere del WWW)

E voi, siete pronti a cambiare le impostazioni delle vostre applicazioni?

Non sono un Web Designer, ma un architetto software, però è evidente che eventuali modifiche all'HTML interessino un po' tutti, soprattutto se possono cambiare il modo di realizzare le applicazioni e di progettare l'interazione, da un lato con l'utente, dall'altro con gli altri layer del sistema informatico.

In questo post parleremo brevemente (trovate anche voi che la mia interpretazione di questo avverbio sia piuttosto artistica ed elastica?) di cosa si prospetta nel breve (e dai...) periodo.

Come saprete certamente, è dalla vigilia di Natale del 1999 che questo linguaggio non varia di un bit o quasi.
Siamo, da allora, alla versione 4.01. Se avessimo continuato con la velocità con cui si è arrivati a questa quarta versione, oggi potremmo essere quasi alla settima o alla ottava (non conta il fatto che Tim Barners-Lee lo avesse già definito negli anni '80: era rimasto tale e quale fino al 1994, anno in cui è iniziato il WWW con l'uscita di Mosaic, è da lì che bisogna contare).

Invece, (giustamente, perchè non se ne poteva più), il Web decise di prendersi una pausa.

Le evoluzioni erano state guidate più dai singoli produttori di browser che dal W3C, che oggi sarebbe (il condizionale non è un errore) il detentore dello standard.

Di fatto, sono sempre i produttori che si sono pian piano fermati, che hanno smesso di aggiungere tag per farsi dispetto, continuando, al più, con qualche schermaglia sulle varianti di Javascript (per tacer delle vicende legate a Microsoft/SUN e strati inferiori della Java Virtual Machine, ovviamente), fino ai recenti ulteriori adeguamenti in termini di funzionamento di div da una parte e di client http embedded (XMLHTTP*) dall'altra (per le chiamate asincrone di AJAX, per capirsi).

Sembrava quasi tutto calmo, ma poi, da un Safari, nel 2004, è stato tirato un sasso.
Forse sarebbe passato più inosservato, se non fosse stato raccolto da Firefox 1.5, a fine novembre 2005 (per i disattenti ricordo che siamo alla 2.0 e attendiamo la 3, che dovrebbe avere pure un nuovo motore grafico).

Non subito evidenziato (se seguite il link, noterete che non se ne parlava neppure, nel rilascio di Firefox) ci è voluto qualche mesetto perchè qualcuno iniziasse ad utilizzare una parte del proiettile, il tag <canvas>.

Canvas vuol dire tela ed è il nome standard, in quasi qualsiasi linguaggio io conosca, per indicare gli oggetti su cui si può disegnare.
Infatti, sul canvas sono possibili una serie di operazioni, più o meno complesse, dal disegno di semplici forme, all'import di immagini, a trasformazioni varie, fino all'animazione, come visibile dal tutorial di Mozilla. Client light, solo html e javascript. Bello.

Di per sè non sarebbe neppure così rivoluzionario (si poteva usare Java o Flash per gli stessi scopi - vero, non saremmo alla moda, oggi ci vuole AJAX), ma l'aspetto più interessante è che il tag su citato non è solo, ma è parte delle specifiche del nuovo HTML5, nome in codice di Web Application 1.0, del WHATWG.

WHAT che? Chi sono questi signori? Loro dicono:

It is a loose unofficial collaboration of Web browser manufacturers and interested parties who wish to develop new technologies designed to allow authors to write and deploy Applications over the World Wide Web.

Per voi che mi seguite perchè questi post sono in italiano e non capite l'inglese, provo a tradurre, a senso:

Eravamo al bar e così, per caso, ci siamo incontrati e, senza neppure chiederci chi potessero essere quelli seduti al tavolo con noi e quasi senza accorgercene e, comunque, senza impegno, abbiamo deciso di aiutare tutto il WWW a crescere meglio

Cercando su Internet i nomi dei membri (rappresentanti dei produttori di browser), troviamo 4 esponenti di spicco (tra cui il CTO) di Mozilla, 2 (tra cui il CTO) di Opera, uno degli architetti di Safari, precedentemente in Netscape e co-autore di Firefox, uno sviluppatore di librerie per Javascript di IE7 (non di Microsoft, almeno per quanto ne so, ma un guru di Javascript piuttosto noto); ce ne sarebbe un'altro, ma non sono riuscito a trovare informazioni utili, partendo dal solo nome (se le scovate, fatemi sapere).

Come vedete, è esclusa Microsoft che, come percentuale di utenti di browser non è proprio trascurabile.
Non stupisce, quindi, che il tag <canvas> manchi in IE7 e che sia necessario aggirare il problema (librerie varie, tra cui quelle che sta scrivendo Google - seguite il link di Sourceforge, non il tab di download -, essenzialmente basate sulle capacità già presenti in IE - estensioni downloadabili a parte - di interpretare il VML - Vector Markup Language).

Ma torniamo al punto fondamentale: come mai l'html evolve senza W3C? La domanda è, almeno in parte, errata.

Sicuramente il tentativo del WATHWG è quello di forzare la mano e di prendere il controllo di parte delle evoluzioni a breve, ma fin dalle prime specifiche di Web Application 1.0, ovvero dal settembre del 2005 (l'ultimo working draft è aggiornato costantemente), correttamente, il WHATWG faceva riferimento ad un lavoro in corso da parecchio tempo al W3C (parafrafo Relazioni con XHTML2), riconoscendone gli scopi, evidenziandone alcuni limiti e chiudendo con una frase pseudo-pacifista, vagamente interpretabile come: non sono alternativi, possono convivere.

Quindi, il W3C stava lavorando all'XHTML2. Qualunque cosa sia, vi starete dicendo.

Se andate sul sito del W3C, potete scoprire che il 7/3/2007 il W3C ha lanciato il nuovo HTML Working Group e (guarda combinazione) l'XHTML2 Working group. E come caspita facevano, nel 2005, a citare l'XHTML2 nelle specifiche dell'HTML5 quelli del WHATWG, se è nato 2 settimane fa?

Perchè il primo draft dell' XHTML 2.0 è dell'agosto 2002 (l'ultimo, l'ottavo, di metà dell'anno scorso). Semplicemente nessuno se lo era filato seriamente, fino alla fine 2005/inizio 2006 (l'interesse è certamente stato sollevato anche da questi due gran begli articoli sull'HTML5 e sull'introduzione ad XHTML2 di IBM del periodo citato, che, tra l'altro, fanno anche un riassunto dei vari gruppi di lavoro del W3C collegati a questo argomento ed elencano i principali vantaggi delle nuove specifiche in un modo così chiaro e sintetico che sarebbe inutile ripeterle).

Pausa. Un bicchiere d'acqua. Ho la gola secca, a furia di parlare. Inoltre mi devo calmare perchè ho appena ricevuto una telefonata di minacce: devo piantarla di parlare in sigle (già ne hanno abbastanza di parentesi ed incisi vari) e cercare di essere più chiaro, altrimenti o mi uccidono l'orso di peluche o lasciano il blog.

Vah beh, ci sono questi due linguaggi, no?, entrambi evoluzioni di quello che serve per scrivere 'sta roba che state leggendo, cioè, no?, entrambi vogliono descrivere il vostro futuro,...
Basta. Uccidete l'orso di peluche (non lasciate il blog!), non posso mica andare avanti così.

Torniamo a noi. Nonostante diversi blog, siti, forum abbiano già discusso a lungo su queste questioni e abbiano più volte stabilito che non ci sarà un vincitore e non cambierà nulla per un sacco di tempo, la recente posizione del W3C e la continua diffusione di informazioni su questi aspetti fanno pensare. Il fatto che elementi dell'HTML5 siano già disponibili su Safari, Opera e Firefox e loro estensioni su IE, aumenta questa sensazione.

Personalmente trovo che le evoluzioni di cui trattano siano utili. Le strade delineate sembrano avere entrambe punti di forza e di debolezza.

Se non dovessero convergere, potrebbero esserci due linguaggi (o anche di più, ottenuti da misturoni dei due) al posto che uno.
Il vantaggio principale che vedo nell'HTML5 è la sua continuità con il passato e la sua facilità di apprendimento.
XHTML2, invece, ha la forza di una definizione più pulita, tecnica e mi sembra architetturalmente più approfondito e più adeguato ai cambiamenti richiesti anche dal Web Semantico. Sarà che ci stanno lavorando da più tempo?

Ah, già, non stiamo ancora considerando cosa potrebbe fare Microsoft. Al momento sembra non muoversi (un po' come il gatto prima del balzo?). Sono solo terze parti che, tra tag canvas e plugin per xforms (se avete letto i link che vi ho dato sopra, dovreste già sapere che si tratta di una evoluzione delle forms di HTML in ottica MVC - non vi so a spiegare, tanto l'orso è già andato e potete leggere i link), si stanno preoccupando di espandere IE in queste direzioni. Ma il loro ingresso in campo potrebbe alterare parecchio i giochi.

Nel passato avrebbero fatto una scelta zen: nè una nè l'altra specifica... ma una nuova, loro.
Ma ora è come se avessero sostituito la colonna sonora: da My Way al 'I'm not half the man I used to be' di Yesterday. Non ci sono più certezze, stanno pure facendo uscire un sacco di prodotti gratuiti (ho già detto 'Timeo Danaos...' sì, mi pare di sì...).

Bye
    Depa

P.S.: ultimo link, assolutamente necessario. Per me questo approfondimento è partito da una bellissima versione grafica di Wordnet, realizzata in Javascript. Il signore che ha programmato questa roba, dovrebbe esserci riuscito anche senza VML (IE non mi chiede di scaricare il plugin). Come ha fatto, allora, visto che su IE non c'è il canvas? Appena ho tempo apro i file JS, cerco di capirli e vi faccio sapere.

4 commenti:

Anonimo ha detto...

Mica carino, però, mozzare così il post sul più bello...

Depa ha detto...

ooopst.... l'ho riletto, ma non capisco quale parte sarebbe stata mozzata.
Necessito input...

Anonimo ha detto...

boh, sarò in preda alle allucinazioni, ma io come ultima frase vedo "Non stupisce, quindi, che il tag " e poi più nulla. Il bello è che facendo copia-incolla riesco a leggere anche il resto... (????)

Depa ha detto...

acc...
Sequenze di escape, errore da lattanti...

Per forza non lo vedi, usando Firefox: ho lasciato il tag tale e quale, al posto che trasformare le parentesi angolari.
Lui si aspettava che chiudessi il canvas (tag che riconosce).

Ora dovrebbe andare.

Sorry. Solitamente provavo anche con Firefox e Opera, proprio quando parlo di tag non l'ho fatto...

Bye
Depa
P.S.: e sì che me ne ero accorto in un altro punto e lo avevo corretto.
P.P.S.: niente scuse, questi errori non si fanno, sono arrabbiatissimo con me. Grazie ancora...