In questo post cercherò di ripercorrere la storia delle applicazioni web attraverso le mie esperienze personali fino a fare un ragionamento su quello che potrebbe essere il loro futuro.
I primi passi
Nel 1998 lavoravo alla mia tesi di laurea realizzando il prototipo di un’applicazione web per la gestione documentale.
All’epoca ci si poteva connettere ad Internet con dei modem a 29K (o a 56K se si era già disposti a spendere) e potete immaginare quanto fosse difficile spiegare i vantaggi delle applicazioni web agli amministratori delle aziende.
La tecnologia utilizzata si basava su Netscape Fasttrack Server e sul linguaggio Javascript Server Side.
Nello stesso anno Microsoft annunciava l’Option Pack di Windows NT 4.0: una serie di strumenti aggiuntivi per il sistema operativo server che introduceva il supporto delle Active Server Pages: il primo passo di quella che, anni più tardi, si sarebbe concretizzata nella “guerra dei browser”.
Dall’intranet a Internet
Pochi mesi dopo realizzavo un progetto di gestione distribuita di anagrafiche.
La conoscenza di Internet da parte del pubblico non era molto cresciuta, ma la posta elettronica stava lentamente diventando un fenomeno di massa. Parlare di applicazioni web era meno difficile e gli sguardi erano simili a quelli che si ottengono adesso cercando di introdurre i concetti di Enterprise 2.0: “bello, ma per il momento non mi serve”. All’epoca un forte aiuto iniziava ad essere dato dai servizi di internet banking, rigorosamente accessibili solo con connessione telefonica dedicata verso la banca.
Le tecnologie utilizzate questa volta sfruttavano Linux e il mondo open source attraverso Apache, Mini SQL (mSQL) e w3-msql, un’estensione cgi che permetteva di realizzare una ben poco potente programmazione server side.
Anni luce indietro rispetto al Javascript della Netscape, ma con vari vantaggi tra cui:
- supporto per un database relazionale
- nessuna necessità di compilazione del codice per la sua esecuzione
- strumenti liberi e gratuiti
L’era moderna
Nello stesso periodo PHP veniva rilasciato nella sua versione 3: ancora uno strumento grezzo, ma già più avanzato di w3-msql.
Con la versione 4 di questo prodotto inizio, verso la fine del 2000, quello che è il primo progetto di livello “enterprise” in questa tecnologia.
Si tratta di nuovo di un sistema di gestione anagrafica completato da un sistema per la gestione dei dati aziendali che consente di tenere traccia dei compiti da svolgere.
In questi anni Internet è ormai diventato un fenomeno di massa e le applicazioni web, oltre grazie ai già citati siti di internet banking, sono portate al pubblico attraverso i siti di e-commerce.
Un nuovo look
Il primo sistema di Webmail è stato fatto da un italiano (l’ho scoperto su wikipedia scrivendo questo articolo!) nel 1995. Solamente con la diffusione su larga scala delle e-mail gratuite, tuttavia, questo strumento raggiunge il grande pubblico.
Esso è visto come un accessorio utile per le emergenze, ma nel 2004, con GMail, Google compie il grande passo e lancia quella che è la prima web application che riesce ad imitare l’interattività con l’utente propria delle applicazioni per desktop.
Questo passo dà la spinta finale a questa tecnologia e nei mesi seguenti diventa il modo principale in cui le nuove applicazioni devono essere sviluppate:
- accessibili da ogni parte del mondo
- senza bisogno di installazioni sui computer
- con una completa gestione dei dati sul server
- utilizzabili con un semplice browser
Il presente
Mentre il mondo si trova sommerso dallo tsunami delle web application, il fronte dell’onda si è già spostato e inizia ad interrogarsi sul futuro di questa tecnologia.
Il vantaggio dell’utilizzo da qualsiasi pc non è più sufficiente. Il mondo adesso vuole poter utilizzare le informazioni dal proprio programma preferito o dal proprio dispositivo preferito.
Se sto ascoltando la musica con un media player voglio poter accedere alle informazioni sulla canzone che sto ascoltando direttamente cliccando sul titolo e non passando da un browser.
Se sono in auto il mio navigatore deve essere in grado di prelevare le informazioni sul traffico, magari calcolate automaticamente in base a informazioni fornite dai navigatori di altri utenti, direttamente e ripresentarmele nel formato grafico più utile o utilizzarle per ricalcolare la strada in base ai suoi algoritmi interni.
Se utilizzo il mio frigorifero, voglio che sia in grado di ordinare i prodotti mancanti senza obbligarmi a connettermi ad un sito internet, ma semplicemente scegliendoli da una lista (questo è forse un po’ futuristico, ma neanche troppo: in fondo con i film si può già fare…).
In quest’ottica i siti web sono già uno strumento antiquato e il futuro pensa ad un web basato sui web services e sulle informazioni semantiche. Uno scenario che non lascia molto spazio alle interfacce utente avanzate realizzate con Javascript e AJAX.
I primi passi in questa direzione sono stati già compiuti e possono essere visti in vari esempi:
- un sistema di social bookmarking come del.icio.us avrebbe ben poco successo senza un plugin che permette l’utilizzo direttamente da un browser
- database musicali come CDDB sono già utilizzati da anni dai media player o da cd ripper per recuperare informazioni su cd e canzoni
- le api di programmazione che consentono di integrare funzionalità dei site web 2.0 nei propri programmi si sprecano (per un elenco basta consultare Programmable Web)
- i sistemi di webmail, malgrado la loro diffusione, non soppiantano i client di posta tradizionali e gli applicativi come Google Office sono ben lontani, come percentuale di mercato, anche da comprimari come OpenOffice
- questo stesso sito ha vari plugin per Firefox che mi consento di effettuare le operazioni più comuni senza accedere direttamente al sito
Una struttura per il futuro
La struttura applicativa 3-tier che ha dominato il web in questi anni, si evolve in una nuova struttura in cui il data e l’application tier rimangono sul web server, mentre il presentation tier migra sul client, sempre più spesso realizzato con strumenti di programmazione tradizionali o come plugin per programmi già esistenti. L’interfaccia web diventa uno dei possibili canali, ma sempre più quello di riserva o da utilizzare per operazioni straordinarie non altrimenti previste.
In quest’ottica, mi piacciono molto le tecnologie che consentono di realizzare plugin per i browser. Questi programmi sono multipiattaforma, facili da installare e aggiornare (i browser offrono meccanismi automatici per tenerli aggiornati) e, per loro stessa natura, fortemente orientati al web.
Neanche da dire che il prodotto più maturo, al momento, è XUL, il linguaggio su cui si basa la famiglia di prodotti di Mozilla (Firefox, Thunderbird, Sunbird, …).
Chissà che la miriade di toolkit Javascript che si stanno diffondendo in questi mesi non siano destinati ad una fine ben più rapida del tempo che stanno impiegando per raggiungere la maturità.