Nel 2005 Jesse James Garrett coniò il termine AJAX descrivendo, nel suo blog, il novo approccio alla programmazione web;
Prendendo spunto dal clamore di Google Maps e Google Suggest,
Garrett stava facendo notare come il gap tra applicazioni desktop e
applicazioni web si stava riducendo drasticamente in fatto di
interazione e User Experience.
Ecco la frase che ha reso famoso Garrett:
Google Suggest and Google Maps are two examples of a new approach to web applications that we at Adaptive Path have been calling Ajax. The name is shorthand for Asynchronous JavaScript + XML, and it represents a fundamental shift in what’s possible on the Web.
Da qualche giorno, in un forum ASP.NET, io ed un caro collega nonché MVP Microsoft,
abbiamo iniziato una simpatica discussione su chi abbia la paternità di
Ajax, non tanto quanto “termine”, ma quanto metodologia menzionata da
Garrett.
Partendo dalla discussione su come “aggiornare un il client web da un thread secondario”, alla risposta n° 17 è iniziata la controversia verbale.
Il collega, sostiene che ajax sia stata inventata da Microsoft con l’invenzione, nel 2000, dell’interfaccia IXmlHttpRequest, ed in seguito l’API XmlHttpRequest; che sia l’utilizzo questa interfaccia a determinare se un’applicazione web sia Ajax oppure no.
La
mia tesi invece si basa sul fatto che “tecniche di aggiornamento della
pagina senza ricaricarla”, ovvero metodologie che permettono di
effettuare richieste e/o post al server web senza ricaricare la pagine,
ricevere quindi dati, ed aggiornare la pagina dinamicamente con
javascript, sono nate qualche anno prima, e che Microsoft abbia
“evoluto” queste tecniche introducendo direttamente nel browser
un’interfaccia per migliorare notevolmente la tecnica (vedi JSRS che utilizzava inizialmente la tecnica di FRAME/IFRAME nascosto, piuttosto che una identica alternativa usata da “programmatori non microsoft”).
Insomma, se volete entrare nella discussione, anche per semplice curiosità, siete i benvenuti:
http://social.msdn.microsoft.com/Forums/it-IT/aspnetit/thread/fff75cf8-e89f-4907-83ca-259d94c83aeb.