Paolo Pialorsi

SOA, Workflow Foundation (WF), Windows Communication Foundation (WCF) e le Architetture Distribuite

AJAX, ATLAS e l'HTML ... siamo sicuri di essere sulla strada giusta?

Nelle ultime 48 ore ho scambiato un paio di email con Alessandro Perilli, a proposito di AJAX.

Negli ultimi mesi stiamo assistendo alla nascita e all'evoluzione di applicazioni web anche molto complesse (GMail ne è un esempio eccellente, ma anche Outlook Web Access e altre). Questa complessità porta a sempre nuove esigenze, che nell'ultimo periodo hanno trovato risposta nella nuova frontiera della tecnologia web: AJAX (Asynchronous Javascript and XML). Essendo io un uomo che in gran parte vive :-) di XML, Web Services e architetture distribuite .... dovrei essere contento di questo fatto.

Sapere poi che anche Microsoft, per bocca del papà di ASP.NET, annuncia l'imminente uscita (settembre 2005 a PDC) di un add-on per ASP.NET 2.0 per supportare AJAX in ASP.NET 2.0 e il fatto che in ASP.NET V.Next avremo supporto nativo per AJAX, con nome in codice ATLAS, dovrebbe riempirci tutti di gioia ed entusiasmo.

Io sollevo però qualche dubbio e manifesto qualche perplessità. Mi spiego meglio: siamo sicuri che sia giusto voler farcire di mille e una funzionalità il povero HTML, poi D-HTML, poi XHTML, ecc.. che era nato con lo scopo di mostrare hypertesti e ora invece si trova sempre più spesso a dover sostituire applicazioni Windows in modo più o meno efficace e più o meno sofferto per lo sviluppatore?

Non sarebbe forse meglio dire:

  • HTTP è un linguaggio per trasferire hypertesti dal server al client, su esplicita richiesta del client verso il server
  • HTML ha un suo ruolo: impaginare hypertesti in modo sganciato dalla piattaforma.
  • DHTML consente, sotto certe condizioni, di aggiungere qualche funzionalità interattiva/grafica al codice HTML, per renderlo più bellino graficamente e da un punto di vista della usabilità.
  • Stiamo sempre più riempiendo HTTP, HTML e DHTML di "porcheria" :-) (ViewState, Session, async callbacks, Java, JavaScript, ActiveX, Windows Forms Controls, XML, XSLT, DSO, AJAX, Flash, ecc.) per poter correre una gara di Formula1 con un triciclo :-)
  • Ora abbiamo bisogno di un nuovo metalinguaggio, probabilmente basato da subito e al 100% su XML, pensato per descrivere interfacce utente ricche e finalizzato a costruire le UI degliu Smart Client in archiettura SOA.
    • Deve essere indipendente dalla piattaforma che ne fa il rendering
    • Deve essere concordato dalle grandi aziende che danno la direzione al mercato (IBM, Microsoft, Sun, Oracle, Google, ecc.) e standardizzato dal W3C e/o da OASIS esattamente come accade per le specifiche del mondo WS-*

Non ha secondo me troppo senso assistere al proliferare di N diverse piattaforme per raggiungere risultati tra loro simili dal punto di vista della "User Experience" ma diversi come compatibilità e supporto delle piattaforme. Meglio prendersi alcuni mesi di tempo e poi partire tutti su una nuova strada, certa e unica che non trovarsi circondati di N piattaforme linguaggi che si intersecano e si completano a vicenda.

Certo una scelta come questa è molto difficile da prendere, per le grandi aziende, perchè significherebbe ricreare da zero il client container di questo nuovo metalinguaggio, di fatto mettendo a rischio le quote di mercato acquisite in tutti questi anni con prodotti come Internet Explorer, Firefox, ecc.

Cosa ne pensate? I commenti sono aperti.

PS: Si vede che ormai ho 30 anni ... una volta parlavo di tecnologia :-) adesso di andamento del mercato ... spero di non diventare rapidamente vecchio come Marco :-).

Posted: lug 14 2005, 09.07 by paolo | with 7 comment(s)
Filed under: , ,

Comments

romeo said:

Ciao Paolo,
..ricordo una volta Marco che sottolineava la testardaggine di noi italiani nel continuare a costruire strade e far passare mezzi pesanti nei centri storici delle nostre città e poneva come contro la situazione delle città australiane... bene questo esempio veste bene se raffigurato ai vari protocolli e/o tecniche di distribuzione/comunicazione attuali.
Pensandoci bene non stai diventando vecchio ma solo guardi le cose con quella "saggezza" che può essere acquisita soltanto con una notevole esperienza personale sul campo....senza farti trasportare dal marketing......
# luglio 14, 2005 11.50

rob said:

Che dire ? Sai come la penso. Il problema era già presente nel 98 quando iniziavamo a fare corsi di massa su ASP 1/2. Dopo varie giornate in cui si sottileava il ruolo e le limitazioni del protocollo Http, spesso mi veniva rivolta la fatidica domanda: ma posso fare una griglia che si autoaggiorna ? Ma posso mandare i dati modificati da server a client mentre l'utente vede una pagina ?
Hai perfettamente ragione: si cerca di prendere un'architettura leggera, utile per creare ipertesti, multipiattaforma per fargli fare cose per cui non è nata e ...una volta superato il limite...diventa tutto in gran casino. Il paragone per me più azzeccato è: il web è una macchina fuoristrada, mentre l'applicazione windows e interattiva è una macchina sportiva: si può usare un fuoristrada per correre al Mugello, ma non pretendiamo di vincere una gara e soprattutto di avere gli stessi costi e le possibilità di avanzamento tecnologico; non si può prendere una macchina da corsa e portarla su un tracciato da fuoristrada !
Ricordiamoci la battuta del 1997: il browser è un terminale in grado di visualizzare fiorellini animati.
# luglio 14, 2005 1.32

Alessandro Perilli said:

Dal mio punto di vista, in questo caso quello di un fruitore ultimo della
tecnologia, in realtà poco importa se l'HTML comincia a diventare
sovraccarico e non era stato pensato per tutto quello che fa. Io vedo solo
un'enorme miglioramente nell'interazione con l'interfaccia e questo mi tocca
molto più di quanto abbia mai detto: la mia personalissima opinione è che in
questo decennio l'industria informatica abbia fatto zero passi in avanti nel
modo in cui gli utenti interagiscono con i sistemi informativi. Si, è vero,
abbiamo delle icone molto più belle e l'anno prossimo anche delle finestre
semitrasparenti senza comprare desktop add-on di terze parti. Se proprio ci
dice bene (con un MacOS) abbiamo perfino un ambiente che ottimizza meglio il
workspace e ci da qualche sensazione di interattività. Ma francamente questa
non è innovazione per me.

La vera innovazione nel mondo delle interfacce sta nell'accorciare il
rapporto tra pensiero e azione. Il che si traduce in un enorme guadagno di
tempo per l'esecuzione di qualunque task.
Ormai sono 2 anni che uso un sostitutivo di IE chiamato Maxthon
(www.maxthon.com) e precedentemente chiamato MyIE2. Lo uso perchè fa tab
browsing e ricerca del testo direttamente dentro la address bar (e se vuoi
mettendo una lettera davanti alla stringa di ricerca usa un altro motore a
tua scelta diverso da quello impostato di default). E lo fa da molto prima (e molto meglio) che il presunto fenomeno Firefox e MSN Search decidessero di cominciare a farlo.
Ma soprattutto lo uso
perchè integra nativamente il mouse gesture: sottolineo una parola qualsiasi
(non linkata) nella pagina e trascino a destra, Maxthon mi apre un nuovo tab
dove ha cercato la parola su Google; posiziono il mouse su un link in una
pagina e trascino, Maxthon mi apre un nuovo tab con la pagina del link;
trascino sopra, sotto, a sinistra, e faccio altre 30 azioni, customizzabili.
Non è ancora come vorrei ma "penso e lui quasi agisce".
Puoi crederci ma risparmio varie decine di minuti e volo letteralmente
nell'analisi delle pagine (facendo una stima credo di aver recuperato circa
un'ora al giorno).
Questa è l'unica vera innovazione che ho visto in questo decennio (e ho pure
scoperto un programmino freeware che attiva il mouse gesture per qualunque
altro programma installato).

Come fruitore capisco questo e se la tecnica AJAX in qualche modo semplifica
la mia esperienza con l'interfaccia io spero che tutti la adottino,
indipendentemente da quanto è faragginoso il sistema che c'è dietro.
D'altronde, molto egoisticamente, è oggi che ho bisogno di una interfaccia
responsive e non tra 5 anni quando i maggiori vendor sul mercato si saranno
accordati (ammesso che lo facciano mai).

A meno che tu non mi dica che per avere la velocità offerta da AJAX io debba
rinunciare a qualcosa di altrettanto importante, tipo la mia privacy (per
dire).


Professionalmente invece capisco perfettamente le tue obiezioni, ma sempre
più spesso mi rendo conto che a volte siamo troppo calati nel nostro ruolo
di puristi tecnologici da dimenticare che chi fa il nostro lavoro ha un solo
scopo finale: rendere la tecnologia utilizzabile.
# luglio 15, 2005 12.32

Antonio said:

Paolo,
Per una volta tanto non sono d'accordo con te. Sono anni (credo che sia dal 2000, nel nostro mondo gli anni passano in fretta ;-)) che utilizzo tecniche simili ad Ajax di RPC per rendere le applicazioni Web, soprattutto quelle intranet, che migliorassero la user experience. Chi lavora nella compilazione di form mi chiede sempre una migliore usabilità dell'applicazione, ad esempio autocompletamento di una textbox di un comune, individuazione delle province (in una combo) di una regione scelta etc. Mi sembra che siano cose ormai del tutto acquisite. Quello che trovo una scelta di marketing è stata quella di individuare un nome carino e diffonderlo. Ma si tratta di tecnologie ormai acquisite. Quello che mi ha lasciato perplesso invece è, quando circa tre anni orsono ho iniziato a studiare ASP.Net, che ASP.Net non permettesse tali possibilità (almeno a livello di framework) ma anzi incentivasse il continuo ricaricamento della pagina, con spreco di banda e di usabilità (a me il flickering della pagina quando non necessario da molto fastidio :-)). E solo in questi giorni ho letto di Atlas e della sua disponibilità in un futuro prossimo (con tanto ritardo). Intanto comunque si possono utilizzare delle librerie di terze parti come ad esempio quella di Micheal Schwarz (http://ajax.schwarz-interactive.de/csharpsample/default.aspx) che anche se non ho ancora usata mi sembra molto interessante.
Concordo con te che l'HTML+DHTML è sicuramente non più adatto alle nuove richieste degli utenti in termini di interattività (anche se questa affermazione la sentivo anche quando iniziai a lavorare con la prima beta delle ASP per rendere le pagine 'dinamiche' con l'aggiunta di ActiveX per l'interazione con il client ovvero nell'ormai lontano 1996), ma non avendo altro che sia così diffuso è giusto che si cerchi di sfruttarlo al meglio. D'altra parte AJAX pone alla sua base una gestione multibrowser che dovrebbe renderla una tecnologia di sicuro interesse.
# luglio 18, 2005 9.24

paolo said:

Antonio,
condivido in parte le tue considerazioni, anche io da anni utilizzo XMLHTTP per evitare di fare inutili postback. Ricordo ancora il corso XML & Dynamic HTML che nel lontano :-) 2000 mi vide subentrare a Silvano in aula su quell'argomento. Una delle parti più entusiasmanti per me era spiegare come utilizzare XML e XMLHTTP per evitare il refresh della pagina.
Provo a parafrasare il mio punto di vista: continuiamo pure ad utilizzare il Web e a fargli fare quello che riusciamo a fargli fare e per cui non era stato pensato, ma non dimentichiamoci nel frattempo di inventare e _standardizzare_ qualcosa di alternativo e di più completo, oltre che realmente multipiattaforma, perchè senno il giorno in cui ci andrà definitivamente stretto e non avremo più altre sigle :-) da appiccicargli ... saremo tutti fritti!
# luglio 18, 2005 10.13

Pierre Greborio said:

Non sono molto daccordo con te, in quanto un processo di standardizzazione deve, a parer mio, passare inevitabilmente da una lunga fase preparatoria, fatta di prove sul campo (il più ampio possibile) con un confronto serio (si spera) nella community globale. Oggi AJAX è una cozzaglia di tecnologie ben consolidate e l'integrazione con ASP.NET rappresenta una patch più che una soluzione integrata. Ma è un passaggio naturale prima di approdare ad una soluzione integrata ed omogenea, che probabilmente prevederà nuovi user agents (se esisteranno ancora), nuovi frameworks di base, ecc. ecc.
Se vogliamo vedere l'analogia, anche WSE 1.0 si presentava come AJAX oggi e dovremo attenedere Indigo (con tutte le specifiche OASIS e W3 ratificate) per avere un ambiente ben strutturato che spazzi via tutte quelle tecnologie che oggi richiedono molte energie per farle stare insieme...
# luglio 19, 2005 11.30

paolo said:

Ciao Pierre,
quello che non vedo è il punto di arrivo. Se oggi uso WSEx so che quando OASIS/W3C/o altri avranno standardizzato/ratificato le N specifiche di WS-* avremo degli standard di riferimento e dei framework (per es. Indigo, ETTK, ecc.) per supportarli.

E per il web? Ormai HTML esiste da oltre 15 anni (l'idea del web è del 1989 se non erro) ... eppure non vedo ancora gente seduta intorno ad un tavolo per parlare seriamente del suo successore. Vedo solo una guerra commerciale tra browser e produttori di framework per sviluppare applicazioni sempre meno web e sempre più rich, ma pur sempre all'interno di un browser.
# luglio 20, 2005 1.16