Ormai da quasi due anni il termine Web 2.0 ha fatto la sua comparsa e sempre di più viene utilizzato nei diversi ambiti. In questo articolo vediamo lo stato dell‘arte delle tecnologie legate al Web 2.0 e consideriamo il loro impatto sulla programmazione per il web.
Che cosa è il web 2.0?
Pochi termini sono più sfuggenti e abusati di Web 2.0, come spesso accade alle definizioni che superano i confini dell‘informatica pura e semplice per trasformarsi in fenomeno sociale, il significato si modifica e si arricchisce di nuove connotazioni, al mutare del pubblico cui è destinato.
Fortunatamente nel nostro caso, la definizione originale [1] ha un padre riconosciuto (Tim O‘Reilly), ed è sufficientemente vaga e articolata da essere tuttora valida, perché in realtà , più che una definizione vera e propria, è un elenco di contrapposizioni.
Tim O‘Reilly [1] stabilisce una linea di demarcazione tra ciò che è Web 1.0 e ciò che rappresenta il “nuovo” web; quindi individua una serie di caratteristiche specifiche del nuovo modo di intendere il web che caratterizzano i comportamenti dei singoli e delle masse, sia sotto il punto di vista tecnologico che da quello economico (quali imprese hanno successo e perché) e sociale (il comportamento degli utenti).
Parlando di Web 2.0, il problema principale sembra quindi essere quello di separare l‘aspetto tecnologico da quello sociale: del resto MokaByte si rivolge principalmente a programmatori Java, qualsiasi cosa questo significhi. Ma, a mano a mano che l‘articolo prendeva forma, è però diventato chiaro che queste prospettive (tecnologica e sociale) rappresentano due facce della stessa medaglia e che si influenzano reciprocamente; e soprattutto è apparso chiaro che non è possibile affrontare una parte senza tenere conto dell‘altra.
Ajax e l‘abbassamento della soglia
Su queste pagine si è già parlato di come uno degli elementi scatenanti del fenomeno Web 2.0 sia stata la tecnologia Ajax. La semplice combinazione di due tecnologie già abbondantemente note, quali JavaScript e XML, è andata a colmare quella lacuna che ha reso stagnante lo sviluppo web per quasi un decennio, permettendo finalmente di rendere interessante la user experience sul web a livelli paragonabili a quelli delle applicazioni desktop. Ma autocompletion e drag and drop non sono sufficienti a spiegare da soli un fenomeno di così vasta portata. Ad Ajax va reso comunque il merito di aver portato alla realizzazione di applicazioni web semplici e tuttavia accattivanti, riducendo la complessità e la necessità di apprendimento per alcune applicazioni, e di fatto allargando il potenziale bacino di utenza delle applicazioni web a utenti che fino ad allora ne erano esclusi.
Produzione dei contenuti
Ajax ha contribuito a rendere molto più semplice la produzione di contenuti da parte degli internauti. Blog e Wiki sono due strumenti che rendono semplice la creazione di contenuti ipertestuali, e la loro presentazione in forma graficamente soddisfacente, anche a un utente “illetterato” di HTML e tecnologie simili. Ancora una volta, ci troviamo in presenza dell‘abbassamento della distanza dovuto alla semplificazione tecnologica, ma anche all‘azzeramento della complicazione relativa all‘hosting delle pagine (costi e burocrazia) che ha permesso il proliferare di milioni di blog (dal diario on line allo strumento para-giornalistico, dalla prototipazione di libri al supporto tecnico e così via). L‘informazione presente in questi nuovi contenitori muta forma: dalla struttura organizzata, seppure in continuo divenire, di Wikipedia, ai Wiki di progetto (di cui sono un fervente sostenitore) in cui le informazioni parziali sono comunque già disponibili a tutti; e poi i blog che spaziano da articoli lunghi e corposi a frammenti spezzettati, in continua evoluzione e con una granularità dell‘informazione molto più fine, che necessiterà di strumenti diversi per essere catalogata e gestita (tags, feed aggregators e simili).
Da non sottovalutare anche l‘apporto di una nuova generazione di utenti, più alfabetizzati dal punto di vista informatico e alle prese con una serie di gadget tecnologici (iPod, fotocamere e videocamere digitali e così via) che permettono loro di creare con maggior facilità contenuti multimediali per le loro pagine su Flickr (la versione web 2.0 delle diapositive delle vacanze…), youTube, o MySpace.
Tagging
Anche una componente apparentemente secondaria della classificazione di Tim O‘Reilly, come il tagging, nasconde in realtà qualche risvolto da non sottovalutare. L‘idea del tagging risponde apparentemente a un‘esigenza organizzativa “spicciola”: “perché devo essere obbligato a scegliere se catalogare il mio collega tra gli amici o tra gli indirizzi di lavoro?”. I limiti delle applicazioni tradizionali spesso ci costringono a queste decisioni, che ciascuno di noi affronta con le proprie convenzioni. Questo approccio (in cui l‘utente compensa i limiti dell‘applicazione software) regge fintanto che l‘utente è l‘unico fruitore dell‘applicazione, ovvero l‘unico a dover essere a conoscenza delle meccaniche della compensazione applicata. Nel momento in cui una piattaforma si trova ad essere condivisa, è chiaro che uno dei primi elementi a saltare è proprio il meccanismo di catalogazione della conoscenza (tra l‘altro questo è uno dei motivi alla base della vittoria di Google ai danni di Yahoo! come motore di ricerca; oppure, e parlo per vita vissuta, è la ragione per cui su un database Notes risulta quasi impossibile trovare il documento che cerchiamo). C‘è poco da fare: è statisticamente impossibile che gli stessi oggetti (siano questi URL, voci di agenda, canzoni o quant‘altro) siano catalogati nello stesso modo da utenti diversi che applicano la propria logica di catalogazione indipendentemente l‘uno dall‘altro, così come è impossibile che nostra moglie organizzi i cassetti esattamente come vorremmo noi…
Strumenti come del.icio.us, Technorati o Digg fanno un passo ulteriore, sia pure con modalità e finalità diverse: eleggono il tagging stesso ad argomento dell‘informazione. A un livello minimale di condivisione dell‘informazione, il fatto che io abbia “taggato” un URL come [java] fornisce a un amico che consulta i miei bookmark condivisi on line la capacità di trovare rapidamente l‘informazione che lo può interessare; ma il fatto che uno, nessuno o centomila utenti abbiano taggato un determinato articolo è già di per sà© un‘informazione, perché mi informa sulla popolarità e indirettamente sull‘autorevolezza di una determinata fonte.
Anche le etichette utilizzate per il tagging contengono un‘informazione: informazione quasi irrilevante se considerata sui singoli individui (a nessuno importa se io taggo quest‘articolo come [ajax] o come [web 2.0] o entrambi), ma significativa se considerata sui grandi numeri, perché permette di capire come la massa di utenti ragiona, si organizza e permette di definire standard in anticipo, e lontano dall‘isolamento e dalle speculazioni, ma direttamente sul campo, utilizzando le piattaforme di social software come brodo di coltura.
Sviluppare applicazioni Web 2.0
Se questo è lo scenario che si sta delineando, come cambiano le cose per chi sviluppa applicazioni? Difficile essere profeti, e di questi tempi si rischia di essere smentiti nel giro di mesi, se non addirittura di settimane. Alcuni punti però si sono già imposti all‘attenzione.
Interfaccia grafica
In un contesto Web 2.0 l‘interfaccia grafica torna a essere al centro della competizione fra servizi equivalenti: in alcuni casi essa replica il comportamento delle applicazioni desktop a livelli impensabili fino a qualche tempo fa (basti pensare alla suite office di Google), in altri casi si introducono widget completamente innovativi che “tracciano il solco” tra cosa è Web 2.0 e cosa non lo è.
Un tipico esempio di componente Web 2.0 a rapida diffusione è la tag cloud, già vista in del.icio.us, ma che con qualche accorgimento in più può raggiungere livelli di sinteticità dell‘informazione decisamente sorprendenti: per rendersene conto, basta dare un occhiata al sito http://chir.ag/phernalia/preztags/ dove sono state catalogate in forma di tag cloud arricchite da uno slider temporale tutte le parole più usate dai presidenti degli Stati Uniti nei discorsi ufficiali nell‘arco di un paio di secoli.
In generale, in contesti in cui basta una piccola idea, o addirittura anche una correzione a un‘idea altrui a fare la differenza (basti guardare allo sterminato numero dei cloni di del.icio.us), la presenza di un‘interfaccia utente che attiri gli utenti (e che, sembra una banalità ma non lo è, non li faccia scappare) torna nuovamente un elemento chiave. Applicazioni come LivePlasma giocano principalmente sull‘effetto visivo, ed è evidente che lo stesso contenuto fruito in una semplice tabella HTML non avrebbe lo stesso impatto.
Se abbracciamo l‘idea che è l‘utente a produrre il contenuto, e quindi il valore aggiunto della nostra applicazione, allora è evidente che dovremo fare tutto il possibile per coccolarlo, facendo in modo che l‘interfaccia si adatti come un guanto al suo pensiero e al suo modo di vedere le cose.
Applicazioni Office 2.0
Ajax ha reso possibile lo sviluppo di applicazioni complesse con il web come piattaforma. Prende quindi forma una possibilità diversa per l‘organizzazione dei servizi IT delle aziende: molti servizi che prima erano appannaggio esclusivo di applicazioni desktop o client-server, ora trovano la loro localizzazione sul Web, in hosting da parte di terzi. I primi esperimenti da parte delle aziende si appoggiano su Google Calendar, o sulle alternative offerte da 30Boxes o Airset, mettendo in discussione i calendari condivisi basati su Microsoft Outlook e Microsoft Exchange; ma è chiaro che un‘azienda un po‘ più spregiudicata della media può affrontare il problema delle licenze dei tradizionali prodotti da ufficio, in un‘ottica radicalmente diversa, prendendo in considerazione strumenti come DabbleDB o come Google Docs&Spreadsheets. Un esempio eclatante è il caso di Amazon che, accanto alla tradizionale offerta di vendita sempre più diversificata, offre anche servizi di hosting e web backup accessibili via web services, sotto la piattaforma Amazon S3.
In generale, possiamo aspettarci un allontanamento dal concetto stesso di “piattaforma” aziendale, spostandoci verso meccanismi di integrazione leggera di piccole applicazioni ciascuna con una sua specifica funzione, “incollate” tra loro a fornire un insieme coerente e riconfigurabile alla bisogna. È ragionevole supporre che anche le applicazioni tradizionali inizino a offrire punti di aggancio per i “servizi comuni” già disponibili sul web, man mano che questi raggiungono una massa critica interessante. Non va sottovalutato infatti che, se il contenuto che ci interessa è già sul web, in un formato più o meno standard, l‘integrazione si riduce alla semplice invocazione di un Web Service o poco più, senza la necessità di una reale progettazione condivisa della piattaforma di integrazione (in altre parole riunioni, riunioni, riunioni).
Mashup applications
Apparentemente il cerchio può cominciare a chiudersi: un bacino di utenza incredibilmente allargato, genera, manipola, tagga e instrada contenuti sul web. Le applicazioni stesse si stanno spostando sulla piattaforma web, e con queste le informazioni in esse contenute.
È possibile pensare quindi all‘integrazione fra applicazioni diverse, ognuna con un suo specifico ruolo, all‘interno di contesti più complessi. Se SOA finora era un concetto che trovava il suo bacino di applicazione all‘interno della grande organizzazione pubblica o privata, ora è possibile pensare all‘integrazione di applicazioni “loro malgrado” ossia senza che queste siano coinvolte esplicitamente nel processo di integrazione. In che modo? Appoggiandosi a web services quando disponibili, o agli RSS Feeds prodotti dai siti a carattere informativo, o addirittura ricorrendo ad applicazioni di screen scraping di nuova generazione, come ad esempio Kapow, prelevando le informazioni direttamente dall‘interfaccia web.
L‘idea alla base delle mashup applications è quella di creare contenuto dalla giustapposizione di servizi forniti da applicazioni diverse, ed è una strada su cui si stanno muovendo svariate aziende di servizi, spesso con una spiccata predisposizione verso l‘integrazione con Google Maps e simili.
L‘ultimo tabù
L‘ultima soglia che il Web 2.0 sta tentando di abbassare è quella relativa alla programmazione stessa: c‘è grande fermento attorno a nuove piattaforme il cui compito è quello di permettere la costruzione di applicazioni relativamente semplici (per i parametri odierni) anche a utenti senza una specifica preparazione tecnica. È presto per dire chi riuscirà a fare la parte del leone fra Yahoo Pipes (la cui interfaccia grafica è di un altro pianeta rispetto a quanto eravamo abituati a vedere sul web), Teqlo, CogHead, o gli altri strumenti che stanno apparendo come funghi. Quel che è certo è che la rivoluzione è tuttora in corso, e che il bello deve ancora venire.
Riferimenti
[1] Tim O‘Reilly – What is Web 2.0
in inglese: http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html
in italiano: http://www.xyz.reply.it/web20/