I miei articoli per ZeroUno
Piero Scaruffi
AJAX
L'acronimo AJAX e` diventato celebre nel 2005 grazie all'uso che ne ha fatto Google sia in Maps sia in Gmail sia in Suggest. In questi mesi stanno uscendo le prime piattaforme di sviluppo specificamente pensate per AJAX e si stanno formando le prime startups. AJAX (Asynchronous JavaScript and XML) e` un nuovo metodo di costruire applicazioni interattive su Internet con interfaccia su browser. Concettualmente, non e` nulla di nuovo. Le tre componenti fondamentali (HTML per la presentazione dei dati, JavaScript per la manipolazione dei dati, e XML per lo scambio dei dati) erano in circolazione da tempo. In effetti, era gia` in circolazione un'altra combinazione di queste tecnologie, il DHTML, a cui AJAX assomiglia parecchio.
Il problema dell'HTTP a cui prima DHTML e adesso AJAX hanno tentato di por rimedio e` quello della continua dipendenza dal server. Un'applicazione web visualizza una pagina, prende degli input, spedisce gli input al server, e poi riceve una nuova pagina (che in molti casi e` semplicemente la stessa pagina o una pagina leggermente modificata). Lo spreco e` sia in orizzontale (parte delle informazioni trasmesse dal server sono gia` sul client) sia in verticale (sono necessari continui rimandi al server). Inevitalmente, chi costruisce queste applicazioni tende a minimizzare (non massimizzare) l'interazione con l'utente. Le applicazioni AJAX invece fanno riferimento a un motore AJAX che risiede sul client. Questo motore smaltisce autonomamente le richieste che puo` smaltire e invia al server in maniera asincrona soltanto le richieste che e` davvero necessario gestire a livello di server.
Fra le controindicazioni una delle piu` ovvie e` che si rischia di perdere l'interazione intuitiva con il browser. Per esempio, il bottone per tornare alla pagina precedente, a cui ormai siamo tutti abituati. In un'applicazione AJAX non e` per nulla chiaro cosa succede quando uno preme "Back"...
La risposta dei centri informatici delle grandi aziende e` stata finora tiepida (in altre parole, il mercato e` ancora minuscolo), ma l'interesse fra gli addetti ai lavori e` invece molto elevato. Essendo piu` una metodologia che una tecnologia, AJAX concede molta liberta` a chi decide di costruisce una piattaforma di sviluppo. Al tempo stesso e` una metodologia molto abusata (la vecchia "MVC" o "Model View Control"), fatto che pertanto rende un po' inutile sviluppare nuove piattaforme quando quella metodologia era gia` supportata dai tool di CASE di dieci anni fa.
Ne stanno venendo fuori ibridi strani come Ruby on Rails, SAJAX (simple AJAX), DWR, Sarissa, Xamlon, Jackbe, XUI, Backbase. I loro website sono instabili, a dir poco, per cui sono riluttante a scrivere gli URL attuali: fate una ricerca con google per trovarli.
In realta` finora l'unica vera novita` e` che la comunita` cresciuta attorno ad AJAX tende a essere anti-Microsoft, quindi a prendere in considerazione anche tutti gli altri browsers del mondo, non solo Internet Explorer (che finora costituiva l'ossatura di quasi tutte le applicazioni corporate). L'etica delle applicazioni AJAX richiede che funzionino su qualsiasi browser (eccetto Opera, che non supporta adeguatamente le tre tecnologie di base).
L'articolo di Jesse James Garrett (consulente di San Francisco) che ha lanciato il fenomeno qualche mese fa si trova a http://www.adaptivepath.com/publications/essays/archives/000385.php
Siccome si parla di una manciata di applicazioni, la stragrande maggioranza delle applicazioni AJAX esistenti sono state di fatto realizzate da Google (che, per inciso, non le chiama AJAX, e in realta` non usa ancora XML).
Le altre sono due o tre (forse cinque o sei quando uscira` questo articolo), e l'unica che ho toccato con mano e` stata realizzata da SABRE (il sistema di prenotazioni aereo). E` facile riconoscerle, perche' si nota subito il comportamento asincrono invece del classico comportamento sincrono delle applicazioni web: Suggest e Maps di Google creano il testo o l'immagine in maniera interattiva sotto gli occhi dell'utente.
Quando sono uscite, e l'acronimo AJAX non esisteva ancora, le recensioni ne hanno parlato semplicemente come di applicazioni "sofisticate". Sono sofisticate perche' l'intelligenza e` sul client.
E` difficile prevedere che impatto avra` AJAX. I tre guru che hanno parlato alla prima conferenza del settore (Derek Powazek della Technorati, Eric Costello della Flickr, Dustan Orchard della Odeo) hanno invitato a cercare con google le loro prossime pagine, che saranno tutte realizzate con metodologia AJAX. Cercate i loro nomi con google mentre leggete questo articolo: e` probabile che fra il momento in cui lo sto scrivendo e il momento in cui lo leggete questi tre avranno realizzato qualcosa di appariscente (quantomeno e` cio` che hanno promesso).
AJAX e` stato presentato come un'alternativa a Macromedia Flash. Grande scalpore ha suscitato la notizia che Flickr avrebbe deciso di abbandonare Flash a favore di AJAX (notizia in realta` non confermata dalla societa`, ma molto ripetuta sui blogs dei fans di AJAX). La risposta e` arrivata da Xamlon, fondata da Paul Colton per trasformare applicazioni .NET in applicazioni Flash: Xamlon avrebbe realizzato in una settimana una versione di Google Maps basata su Macromedia Flash. Naturalmente AJAX rappresenta anche un'alternativa a Microsoft .NET, ma nessuno per adesso considera realistico proporre una migrazione da .NET alle piattaforme prototipali di AJAX.
Un altro termine usato dalla comunita` AJAX e` RIA (Rich Internet Applications). Per esempio, JWAY Group, fondata da Angelo Inanoria, vende una piattaforma software, XUI ("eXtensible User Interface"), per costruire applicazioni RIA. Vedi http://www.xuiframework.com.
Si tratta, a nostro avviso, dell'ennesima variante sul paradigma Model-View-Controller.
Backbase, a www.backbase.com, che usa XHTML, CSS, DOM e Javascript, e` un'altra di queste piattaforme. Il motore AJAX viene scaricato sul client appena si rende necessario, in maniera del tutto trasparente all'utente del browser. Il server puo` stare sia su .NET sia su J2EE. Backbase e` olandese. Cosi` e` l'inventore di Ruby on Rails, David Heinemeier Hansson.
Prima v'era Ruby, un linguaggio inventato da Yukihiro Matsumoto, che e` diventato un linguaggio di culto. Rails e` una piattaforma scritta in Ruby, che introduce forse il piu` significativo cambio di paradigma di tutta la scena. E` composto da tre strati: Active Record, che connette fra di loro gli oggetti (database (MySQL, PostgreSQL, SQLite, SQL Server, DB2, Oracle) in un modello persistente; Action Pack, che smista le richieste ai controllers e recepisce le views (su webserver Apache); e Action Mailer, che si occupa della parte amministrativa via email. La prima applicazione costruita con Rails e` stata Basecamp, uno strumento di project management (venduto originariamente da Next Angle, ma adesso il suo website non sembra esistere piu`).
Concludendo, un mondo in piena ebollizione, anche se resta da vedere la sua reale consistenza.
I protagonisti, se non altro, sono meno boriosi del solito: l'etica e il linguaggio sono piu` quelli dei videogame che quelli dei venture capitalist.