Articoli Manifesto Tools Links Canali Libri Contatti ?
Web / AJAX

Notizie Digitali: introduzione ad AJAX

Abstract
Giovanni Giorgi, intervistato da Valerio di Giampietro, parla di AJAX, nascente discorso tecnologico che sta fortemente impegnando la scena dell'I.T. di oggi, sulla scia delle neonate Rich Internet Application. Approfittiamo dell'intervista per discutere su questa novità presente sulla bocca (blog) di tutti!
Data di stesura: 21/02/2006
Data di pubblicazione: 24/02/2006
Ultima modifica: 04/04/2006
di Giovanni Giorgi, Stefano Fago Discuti sul forum   Stampa

In collaborazione con AudioCast.it - Notizie Digitali

Cosa vuol dire AJAX? A cosa serve?

GG

AJAX sta per Asynchronous JavaScript And XML: con questo termine s'intendono, quindi, un insieme di tecnologie.

AJAX è immediatamente concepibile come evoluzione del Javascript, soprattutto del modello DHTML. Fino a qualche anno fa c'erano notevoli differenze tra il Javascript usato da Internet Explorer e quello usato dall'allora Netscape, poi Mozilla Browser; inoltre il modello ad oggetti che rappresentava la pagina era parzialmente diverso nei due Browser rendendo molto difficile uniformare lo sviluppo: in parte alcune cose non funzionavano proprio, in parte erano incompatibili o non riconciliabili con l'altro browser; scrivere codice che potesse funzionare in modo cross-browser era un'impresa! L'approvazione di nuovi standard da parte del W3C ha consentito la creazione di nuovi tipi di oggetti ed ha in parte calmierato questa situazione.

AJAX si basa su un oggetto Javascript: questo oggetto si chiama XmlHttpRequest ed è implementato in maniera leggermente differente in quelli che possiamo considerare i 3 browser principali che sono Internet Explorer, FireFox, Safari. Quest'oggetto Javascript consente di definire delle funzioni e di fare in modo che queste funzioni vengano richiamate in maniera asincrona quando il Server Web invia una risposta in xml.

Usare AJAX presuppone, quindi, la programmazione di script sull'idea DHTML per costruire un'interfaccia web, che possa cambiare i suoi contenuti in maniera dinamica, e poi fare le richieste al server in maniera nascosta, senza feedback per l'utente che non vede alcun caricamento della pagina: grazie all'XmlHttpRequest vengono fatte richieste e, se scelto, si ottengono le risposte in modo asincrono senza bloccare la normale attività del browser.

Che vantaggi presenta ajax, rispetto ai metodi tradizionali dello sviluppo software nel caso di applicazioni web?

GG

Il vantaggio principale di AJAX rispetto alle altre tecnologie è che è possibile avere una pagina con più contenuti dinamici che si modificano contemporaneamente in seguito all'azione di un utente. Questo consente innanzitutto di migliorare la User-Experience e rendere la Web UI il più simile possibile all'interfaccia grafica che abbiamo normalmente sui nostri computer, sui desktop dei nostri sistemi e quindi, abbassare moltissimo le differenze dal punto di vista percettivo che si hanno tra un'interfaccia web tipicamente percepita come statica e un'interfaccia, come può essere quella di Windows o di Linux, che sono sicuramente interfacce più dinamiche.

SF

Il vantaggio più immediato nell'adozione di AJAX è sicuramente quello di calmierare il gap con interfacce grafiche più efficaci come quelle realizzabili con FLASH e ad un costo, concettualmente, prossimo allo zero. In realtà AJAX ha una valenza anche sulle comunicazione ed sul carico generale dell'applicativo web; quanto espresso risulta evidente se consideriamo due punti:

  1. meccanismo asincrono request/response
  2. capacità di manipolazione dell'eventuale documento XML di risposta

I vantaggi del primo punto risultano evidenti se si pensa al fatto che ad oggi ogni interazione dell'utente, generalmente, implica un re-load della pagina, non è possibile un caricamento selettivo della vista di un determinato widget. Con AJAX questo problema è risolto e questo implica minor materiale spostato su rete, minori tempi di attesa per l'utente e conseguente maggiore scalabilità del prodotto. È inoltre da ricordare che un meccanismo asincrono ci avvicina maggiormente al concetto di servizio e alla "speranza" di un basso accoppiamento tra Client e Server.

Il secondo punto è conseguenza della natura stessa dell'oggetto XmlHttpRequest. Questo elemento converte l'eventuale risposta XML in un DOM manipolabile via javascript, con un'operatività del tutto simile a quanto fatto sul DOM di una pagina HTML. Questo discorso apre la strada all'adozione di dialetti XML per le risposte verso il Client e la possibilità, sempre lato Client, di alterare gli elementi renderizzati fornendo un feedback immediato all'Utente.

Da parte di molti il successo di ajax viene percepito come un parallelo insuccesso degli applet java che sebrava avessero potuto rivoluzionare il mondo del web ... è vero questo? E se è vero come mai è avvenuto?

GG

Non è facile spiegare come mai AJAX abbia avuto questo successo mentre le Applet sono un modello che ha quasi fallito. Possiamo fare dei contro-esempi: Macromedia Flash ha sempre avuto un ottimo successo ed è riuscito a guadagnarsi una buona nicchia questo perché flash è stato sempre fornito su tutti i browser ed era facile da aggiornare mentre Java per un certo tempo ha subito un po' la lotta tra Microsoft e Sun e questo ha sicuramente generato dei problemi. Poi la ragione più importante è che Flash dava degli strumenti di sviluppo che consentivano di sviluppare interfacce molto gradevoli ed erano strumenti indirizzati soprattutto ai grafici per cui consentivano una libertà di movimento, anche artistica, che le applet non hanno mai dato. Anzi le applet sono parecchio difficili da usare nonostante esistano strumenti per costruire le stesse applicazioni che si possono costruire in altri linguaggi.

Un ultimo aspetto che sicuramente ha inciso è che le applet sono un po' più lente a caricare che non le animazioni flash ed in generale il supporto che è stato dato alle applet in termini di tool grafici, tipi di font, etc, sono sempre stati molto minori di quelli che si sono avuto con flash per esempio.

Nel contesto di questo discorso, AJAX permette di sviluppare applicazione abbastanza facilmente a patto di conoscere bene i CSS, specifica che permette di decorare i differenti oggetti HTML, conoscere bene il DHTML ed essere anche un discreto programmatore Javascript.

SF

Applet ed AJAX non sono tecnologie immediatamente confrontabili. Il fatto che siano state usate per avere dei siti più interattivi non li pone allo stesso piano. È bene ricordare una differenza importante: AJAX è Client-Side ed è realizzato con tecnologie presenti nel browser per il Client-Side; Un Applet è un esempio di codice mobile sviluppato in Java, eseguito sul Browser ma proveniente da un Server con cui mantiene un rapporto preferenziale. Un Applet è un applicativo e quindi comporta una complessità notevole.

Quali sono le princiapli modalità di utilizzo di ajax, i suoi punti deboli o i suoi punti di forza?

GG

La prima difficoltà, e quindi punto debole di AJAX, è che è indispensabile mettere insieme differenti elementi per arrivare alla costruzione dell'interfaccia grafica finale. Per prima cosa è necessario creare un CSS con tutte le sfumature ed effetti speciali che consento la visualizzazione gradevole dei widget. Tutti i vari pulsanti e ciò che in gergo viene detto Widget, sono in realtà implementati utilizzando delle librerie javascript che in pratica dicono al browser cosa fare quando viene premuto il tasto. Esistono già molte librerie a riguardo però è necessario incollarle e fare in modo che agiscano allo scatenarsi di un evento, ad esempio la pressione di un tasto. Queste librerie chiameranno il nostro sistema dall'altro lato. il nostro Server Web sostanzialmente. Costruire un'interfaccia javascript non è un compito facile e spesso richiede l'utilizzo di un debugger ad hoc. Ultima caratteristica negativa di AJAX è che tutti gli applicativi come li abbiamo scritti finora vanno praticamente riscritti.

SF

I vantaggi dell'adozione di AJAX sono visibili, date le migliori interfacce, e nascosti: si è già accennato alla modalità asincrona e alla possibilità di adottare un design mirato al basso accoppiamento. Con AJAX risulta necessario però una maggiore disciplina, il paradigma MVC viene a ripresentarsi, con tutti i suoi pro e contro, lato Client, aggravato da una non completa standardizzazione dei dialetti javascript che continua ad infastidire. Ulteriore problematica che tocca un Web Designer è l'usabilità: AJAX stravolge il modo di concepire il browser e la navigazione che in esso avviene. L'utente medio è abituato ai punti di bianco, ai bookmark, ai link, ai cambi-pagina e a feed-back visivi che, se non previsti, svaniscono nello sviluppo AJAX!

È vero che ajax rappresenta il futuro nello sviluppo delle applicazioni web?

GG

Al momento è difficile dire se Ajax sarà il futuro. Sicuramente ci sono molti siti che hanno iniziato ad utilizzarlo. Il fatto che Google abbia comunque iniziato ad utilizzarlo in maniera spinta e che la Microsoft con il sito WindowsLive abbia comunque seguito l'onda. è un buon segno, nel senso che Google non ha fatto per ora alcun errore dal punto di vista tecnologico, queste premesse sicuramente vanno a favore di AJAX. A mio avviso è al momento ancora troppo fragile perché non esiste ancora un modo molto chiaro per incollare tutti i pezzettini, non esisto una serie di linee guida. Per capire come scrivere esattamente queste applicazioni. Anche se esistono interi framework come Ruby On Rails che usano AJAX tranquillamente, sembra con notevole successo. Per cui bisognerà aspettare ancora qualche tempo per trarre delle conclusioni.

SF

AJAX è un percorso tecnologico che è di sicuro interesse ed in un certo qualmodo immediatamente percorribile. Propone però delle novità su cui i più non sono preparati!

Potrebbe non essere il futuro visto che nuove tecnologie basate su FLASH stanno proponendo soluzioni integrate molto affascinanti e potenti. Potrebbe essere solo un aspetto di un qualcosa di più complesso che sarà la commistione di Flash&AJAX e/o qualcos'altro. È altresì vero che i fautori del così detto Web 2.0 sono personaggi attivissimi e capaci, che quasi settimanalmente propongono aggiornamenti e idee: c'è un gruppo veramente in continuo fermento! Penso che a breve la rivincita dei programmatori JavaScript sarà evidente, e sempre nuovi tool renderanno allettante AJAX nella sua totalità, ma a lungo termine, si riuscirà a mettere ordine tra i tanti trucchi, tecniche, implementazioni e tool emersi?

Informazioni sugli autori

Giovanni Giorgi, classe 1974. Dopo il diploma di liceo Classico, si è laureato in Informatica nel febbraio 2000, e attualmente lavora nel campo del software finanziario (trading on line, soluzioni web).
Appassionato di linguaggi di programmazione, si interessa anche di politica e letteratura.

È possibile consultare l'elenco degli articoli scritti da Giovanni Giorgi.

Stefano Fago, classe 1973. Diplomato in ragioneria, ha conseguito il Diploma di Laurea in Informatica con un progetto legato alle interfacce grafiche soft-realtime in Java. Dopo esperienze in Alcatel ed Elea, ha svolto attività di consulenza come Software Developer e Trainer alla ObjectWay S.p.A. sede di Milano. Attualmente Software Designer presso la sezione Innovazione e Attività Progettuali di BPU Banca. Appassionato del linguaggio Java e di tutte le tecnolgie Object Oriented. Polistrumentista dilettante.

È possibile consultare l'elenco degli articoli scritti da Stefano Fago.

Altri articoli sul tema Web / AJAX.

Risorse

  1. Link al podcast di Notizie Digitali #15 (23 dicembre 2005).
    http://www.audiocast.it/argomenti/2005/1223/notizie_digitali/notizie_digitali_numero_15_del_23_dicembre_2005.html
  2. Il sito di AudioCast.it.
    http://www.audiocast.it/
  3. Sito personale e blog di Valerio di Giampietro.
    http://www.digiampietro.com/
Discuti sul forum   Stampa

Cosa ne pensi di questo articolo?

Discussioni

Questo articolo o l'argomento ti ha interessato? Parliamone.