In questa estate che per me è più breve del solito, c'è molta discussione intorno ad AJAX. Per chi ancora non lo sapesse, AJAX è l'acronomino di Asyncronous Javascript And XML.
Insomma, la solita tecnologia che esiste da anni, inventata dal team di Exchange per fare andare OWA, ovvero l'accesso via web ad Outlook, quasi come se stessimo davanti ad un Outlook "vero". Un gioiellino di tecnologia basato su XMLHttp e Javascript.
Quello che nessuno vi dice di AJAX è che basandosi su XmlHttpRequest funzionerà solo su quelle piattaforme che hanno XMLHttp. E le uniche al momento sono Internet Explorer, con Safari 1.2 per Apple e Mozilla 1.0. Direte voi: sono tutte! Vi dico io: no. Avete mai avuto un PocketPC, tanto per non andare lontani? Bene, il 70% dei "siti" non funzionano su PPC perchè si è fatto un uso esasperato di Javascript. Non è progresso, è abuso delle tecnologie. Ed io pretendo di poter prenotare un biglietto del treno o dell'aereo via PPC. Altrimenti c'è un problema da qualche parte: il progresso che uccide il progresso.
La cosa ridicola della faccenda AJAX è che su molti siti, italiani ed inglesi, si legge di AJAX come di un qualcosa che dovrebbe liberare il mondo dal monopolio di Microsoft o come un nuovo Java. Ed invece, poveri illusi, un giorno scopriranno che AJAX fa l'esatto contrario: non è uno standard, è un qualcosa di proprietario che Microsoft (proprio quella che tutti odiano) ha inventato ed introdotto più di 5 anni fa a proprio uso e consumo, in IE 5.0. Insomma, una volta tanto il Demonio a guidare. E tutti a correre dietro.
Per inciso, è proprio intorno ad ASP.NET che stanno proliferando le librerie più utilizzate per AJAX, nonostante il primo ad usare questa tecnologia in un sito pubblico sia stato Google (con Gmail e Google suggest). E con la 2.0 di ASP.NET il supporto sarà integrato direttamente, con Atlas. Chi si ricorda di una demo al Whidbey & Security Day che mostrava il client callback? Bene, il concetto è lo stesso: non cambio la pagina facendo postback, ma riscrivendone con Javascript il contenuto. Solo che client callback richiede codice da scrivere, Atlas ha un modello dichiarativo che favorisce di molto l'adozione di questo modello.
C'è a chi piace questo approccio e ci sono ambiti in cui può avere senso. Provate questo che è uscito prima che AJAX fosse di moda: un bisogno in alcuni ambiti può esserci.
Insomma, se non si fosse ancora capito, AJAX non mi convince per un paio di motivi. Voglio dire, ho avuto sotto il naso XmlHttp per anni ed anni e non ho bisogno che qualcun'altro me ne faccia sentire il bisogno. Sappiamo tutti che esiste se abbiamo almeno una volta manipolato un file XML da un'applicazione pre .NET Framework.
Putroppo però il mondo dell'informatica va avanti a buzzword: XML, Web Services, SOA sono solo tra gli ultimi. Ora è il momento di AJAX. Tra un po' saranno i 64 bit. Poi chissà.
Ma mentre in alcune buzzword un fondo di innovazione la si può intravedere (a seconda dei casi), in AJAX tutto quello che vedo sono essenzialmente due cose: distorsione del modello web e solito, squallido tentativo di spacciare per nuove cose vecchie (anche noto in gergo con il termine di fatturare fuffa).
Se la seconda tutto sommato fa parte del DNA di alcuni individui, la prima mi fa abbastanza alterare. Il web si basa su un modello molto semplice, che prevede una risposta per ogni richiesta. I browser dovrebbero essere semplici contenitori, mentre ormai fanno l'hosting di qualsiasi processo esista sulla faccia della terra al grido di "integrazione!". Se i browser hanno problemi di sicurezza (e non ce li ha solo IE) è perchè hanno smesso di fare i "navigatori" per diventare contenitori di applicazioni. Evviva.
Sono tra i più grandi supporter sulla faccia del pianeta del modello web e delle sue caratteristiche: tutto sommato sono anni ed anni che ci lavoriamo e con tutti i limiti del caso, non esiste qualcosa che non sia stata fatta. Ma ammetto che ci sono casi in cui è meglio fare un'applicazione eseguibile anzichè una web.
Insomma, AJAX non mi piace, rende le applicazioni web molto più complesse (nel senso peggiore del termine) e per certi versi aiuta a scriverle peggio, aggiungendo un altro ulteriore strato da dover sviluppare a dovere. In più, in genere, sono meno scalabili perchè i server web non sono pensati per questo genere di compiti.
Ho visto demo di applicazioni che fanno polling ogni 5 secondi per verificare che ci siano novità da visualizzare nella pagina. Se io ci rimango per 5 minuti su questa pagina, avrò fatto un numero assurdo di richieste al server. La cosa che mi fa davvero sorridere a tal proposito è un messaggio trovato su un newsgroup americano di un tizio che non riusciva, per questo motivo, a sviluppare su XP Home: IIS 5.1 permette al massimo 10 richieste contemporanee.
Insomma, prima di lanciarvi in pindariche evoluzioni con AJAX, il mio consiglio è quello di rifletterci più di una volta. Magari ripensate a quanti web service avete in produzione che sono realmente utilizzati... :)
E, per cortesia, se proprio dovete, limitate questi aggeggi agli ambiti in cui ci stanno benissimo: Intranet ed applicazioni chiuse. Non l'ho ancora visto (sarà questione di tempo), ma già mi vengono i brividi al pensiero di un bel CMS che fa tutto in questo modo. Evviva AJAX, che lava più a fondo di tutti.
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Perché é importante insegnare ai bambini la programmazione: cosa possiamo fare noi?, l'11 dicembre 2013 alle 16:03
- modern.IE: sfatiamo qualche mito su IE10, il 3 maggio 2013 alle 17:46
- Installare gli emulatori per iPhone e iPad in Visual Studio 2012, il 12 ottobre 2012 alle 15:26
- L'importanza di applicare un SALT alle password: il caso di Linkedin, il 7 giugno 2012 alle 15:05
- Silverlight non morirà presto, il 3 novembre 2010 alle 19:38
- Il ruolo di Silverlight con HTML 5, il 2 settembre 2010 alle 09:17