Evoluzione delle Tecnologie Web

L'HTML


Il Web

Prima ancora che iniziassimo ad usare veri terminali grafici, e prima del web, c'era Gopher Gopher dell'Universita' del Minnesota: un sistema informativo che utilizzava una gerarchia di server, ognuno con i suoi documenti (1991). Si accedeva con un'interfaccia a caratteri, ma piu' tardi fu sviluppato anche una interfaccia per i terminali grafici X11: Xgopher. C'era anche un motore di ricerca per i server Gopher: Veronica. Attorno al 1992 erano attivi centinaia di server Gopher, qualche migliaio nel 1993.

Un altro modo di ottenere informazioni era il Listserver : un programma che gestiva archivi di documenti testuali; si mandava un mail al programma e si otteneva in risposta il documento. Si usavano anche i newsgroups, che esistono ancora adesso, e sono specie di gruppi di discussione, con messaggi distribuiti tramite una catena di server in rete; ma allora erano per lo piu' scambiati tramite collegamenti telefonici temporanei fra i server.

Il web come lo conosciamo noi inizia al CERN, nel 1989, per opera di Tim Barners-Lee, che doveva condividere documenti fra diversi gruppi di lavoro, che collaboravano usando computer di diverso tipo.
Allora erano in voga vari sistemi per produrre documenti, tutti diversi ed incompatibili. Tim Barners-Lee prende come riferimento SGML (Standard Generalized Markup Language), uno standard ISO (SGML; ISO 8879:1986), che definisce una maniera di inserire in un documento dei marcatori (tag) che ne definiscono la struttura. Viene creato l'HTML (HyperText Markup Language), un insieme di pochi tag essenziali per descrivere un testo; fra questi tag c'e' il link: tag speciale che rimandano ad altri documenti, specificandone l'indirizzo.
I tag dell'HTML definiscono la struttura della pagina, sopecificandone gli elementi logici, come: titolo, paragrafi, liste. Nei link l'indirizzo dei documenti ha una sintassi ben definita, ma versatile, che permette di specificare risorse diverse, ed e' chiamato URL (Uniform Resource Locator).

Un testo che contiene rimandi ad altri testi e' chiamato ipertesto. L'idea dell'ipertesto e' molto piu' vecchia del web; il termine risale a lavori di Ted Nelson del 1965, e nel 1990 esitevano gia' sistemi ipertestuali, come Hypercard, della Apple, ma qui la novita' e' che i testi possono essere su computer diversi.

L'architettura di rete e' quella di un sistema client-server, ove i documenti HTML (le pagine web) sono su una serie di server ed un programma client (il browser) li chiede e li mostra agli utenti. Il protocollo di rete e' il TCP ed il protocollo per la trasmissione dei documenti HTTP: Hypertext Transfer Protocol; anche questo molto semplice: consiste di messaggi testuali brevi, tipo: GET,POST,HEAD cui viene data, come risposta, la pagina richiesta e/o informazioni su di essa.

Con questo sistema si cerca di separare la struttura del documento dalla visualizzazione, e di rendere tutto indipendente dal tipo di computer usato; ma i tag dell'HTML sono un po' un misto fra descrittori della struttura del documento ed indicazioni per il formato di visualizzazione: abbiamo ad esempio il tag: <p> che indica un paragrafo, ma anche <b> che indica testo in grassetto. Ad ogni modo il browser decide lui come interpretare i marcatori e mostrare il documento.

Nella versione originale l'HTML era veramente molto semplice: non c'erano figure, tantomeno filmati o suoni, le immagini e perfino le tabelle sono state inserite in versioni successive dell'HTML. Il browser originale del CERN non era grafico, ma adatto a terminali testuali; il primo sito web, si puo' tuttora visitare, il CERN lo ha ricostruito e fornisce un'idea precisa di come era il web nei primi anni 90.

Un esempio di pagina dei primi anni 90 potrebbe essere quello che segue:


<html>
<head>
    <title> Pagina di esempio </title>
</head>

<body>
   <CENTER><h1> Un titolo  </h1></CENTER> 
   <P>
      Questo e' un paragrafo
   </P>
   <hR> Una linea orizzontale, seguita da una lista:     
  
   <UL>
     <LI> Il primo elemento della lista
     <LI> <B>il secondo elemento, in grassetto</B> 
   </UL> 
   <BR> Qui si va a capo
   <BR> Ed anche qui
   <A HREF="http://www.helldragon.eu"> Un link ad Helldragon: il mio sito web </A>   
</body>
</html>


Qui il link per vedere come viene visualizzata la pagina. La struttura e' molto semplice da capire: i tag sono fra: < > il tag di chiusura fra: </ >". Ci sono 2 sezioni: <HEAD> con informazioni generali e <BODY> con la pagina vera e propria; La pagina contiene marcatori tipo:<P>. <UL>. <LI> che ne descrivono la struttura. Il tag: <A> e' per un link.

Fare documenti web e' quindi facile; mia moglie, che aveva collaborazioni con le scuole, riusci' anche ad impostare un corso di HTML per bambini di una quarta elementare ed i bambini riuscivano benissimo a fare le pagine.


Mosaic e Netscape

La semplicita' dell'HTML, e del protocollo HTTP, e' stata una delle sue chiavi di successo, oltre al fatto che il CERN distribuiva tutto gratis; ma la svolta e' venuta con l'inserimento delle immagini nel web.
Questo e' avvenuto ad opera di Marc Andreessen, che, nel browser Mosaic, del NCSA, dell'Universita' dell'Illinois, introdusse il tag <img>, e le immagini. Altri browser mostravano immagini, ma Mosaic (sviluppato fra in 1992 ed il 1993 da Andreessen ed Eric Bina), ebbe molta fortuna e finanziamenti. Marc Andreessen, Jim Clark ed altri crearono poi la Mosaic Communications Corporation (1994), poi divenuta Netscape, ed iniziarono a sfruttare, col loro browser, le potenzialita' commerciali del web, che era prima diffuso solo in ambito accademico.

Con il browser Mosaic prima, e con Netscape poi, il web crebbe velocemente: c'erano 600 siti web nel 1993, diventano decine di migliaia nel 95 e centinaia di migliaia nel 96, poi milioni. La Netscape nel 94 aveva il 75% del mercato, dava gratis il browser, ma vendeva il server web e servizi. C'era un'evoluzione molto veloce e caotica dell'HTML, con grande entusiasmo in ambito accademico, ma molta confusione in ambito commerciale e problemi di compatibilita' fra i browser.


Gli standard del web

La necessita' di una standardizzazione era evidente; un gruppo dell'IETF dedicato all'HTML riusci' a produrre una specifica HTML 2, nel documento RFC 1866 del 1995; ma poi il gruppo ebbe difficolta' a giungere a delle conclusioni e fu sciolto nel 1996.

Nel 1994 Tim Barners Lee aveva fondato il W3C, al MIT, come forum di discussione da cui sarebbero dovute uscire le specifiche che i produttori di browser avrebbero adottato. Ma in pratica, mentre il W3C discuteva su HTML 3 e seguiva una linea sua, sempre con l'idea accademica dell'HTML come applicazione degli standard SGML, la Netscape dettava gli standard, ed introdusse parecchie novita', con particolare attenzione all'aspetto commerciale del web, fra cui:

Tim Barners Lee avra' anche avuto l'idea del web, ma e' stata poi la Netscape a gettare le basi delle tecnologie che abbiamo oggi.

Un'altra novita' di quegli anni furono i CSS (Cascade Style Sheets), questi sono un modo piu' dettagliato di indicare le caratteristiche grafiche della pagina, come: tipo di caratteri (fonts), sfondi, colori, margini, bordi e specifiche per l'allineamento del testo.

Coi CSS, se ad esempio, vogliamo usare un font particolare, possiamo usare l'attributo style per indicarlo e scrivere:
<span style="font-variant: italic ; font-family: cursive"> testo </span>
e vedremo: testo
Oppure definire, in un file a parte o nell'header della pagina web, una classe di attributi, ad esempio di nome: fant; con istruzioni tipo:
.fant { font-variant: italic ; font-family: cursive ;}
che verra' utilizzata con l'attributo class:
<span class="fant">testo</span>
Sui CSS si trovano in rete molti testi introduttivi e manuali, ad esempio in: w3schools.com

I CSS hanno il vantaggio di poter essere messi in files a parte, essere gestiti in modo autonomo ed essere e richiamati ed utilizzati da pagine diverse. Danno all'autore un modo piu' preciso di specificare come deve essere la visualizzazione; coi CSS si tenta di separare un po' i contenuti dalla loro rappresentazione, che puo' essere diversa a seconda del dispositivo che mostra le pagine; ad esempio una stampante invece del video. La versione CSS 1 e' pubblicata dal W3C del 1996, la versione 2 nel 1998.

In quel periodo oltre al browser della Netscape ce ne erano diversi altri, alcuni nascevano come strumenti per provare nuove funzionalita'; c'era Opera (1994, Telenor), che era quello che implementava meglio gli standard, poi altri come: Viola, Midas, Lynx, Arena, ed Amaya, sviluppato da INRIA e poi dal W3C.


La guerra dei browser

La Microsoft si accorse tardi di quello che stava succedendo e di come la Netscape potesse intaccare il suo monopolio sul mondo dei PC; sviluppo' velocemente Internet Explorer. Le prime versioni, nel 1995, erano un po' una brutta copia del Mosaic, di cui la Microsoft si era procurata una licenza. Ma la Microsoft utilizzava il suo monopolio sul sistema operativo dei PC per espandere il suo mercato, con pressioni sui venditori e pratiche commerciali scorrette.

Seguirono alcuni anni in cui la Microsoft e la Netscape si fecero guerra, introducendo velocemente tencologie e tag incompatibili, con implementazioni frettolose, con bugs, inconsistenze, tentativi di spingere il mercato verso soluzioni proprietarie. Al W3C, che aveva un approccio accademico, si discuteva su HTML 3, che seguiva una linea sua, che i browser non implementavano.

Nel 1996 la Microsoft lancio' Internet Explorer 3, che implementava parzialmente i CSS 1, aveva applets Java, la tecnologia proprietaria dei controller ActiveX, ed era distribuito gratis con Windows 95, assieme anche ad applicativi per mail.

La Netscape lancio' le versioni 2 e 3 del browser nello stesso anno.
Netscape 2 aveva miglior supporto per le immagini, le image-map, i frames, possibilita' di estensione con plugins, javascript, applet Java, ma anche applicativi per i mail ed i newsgroups.
La Netscape iniziava ad espandere il suo campo di azione, non piu' un semplice browser, ma un'interfaccia verso applicativi e servizi. I prodotti della Netscape andavano su Windows, ma anche sui Macintosh, e le workstation Unix di quel periodo.
Netscape 3 aveva nuovi attributi dei tags, ma la novita' erano diversi plugin, con buon supporto per audio e video, come i video Quicktime della Apple.

Nel 1997 la Microsoft lancio' Explorer 4, che era strettamente connesso a Windows 98, la Netscape il: Netscape Communicator, una vera e propria suite di prodotti: con il browser Navigator 4, che supportava parzialmente i CSS-1, ma anche un prodotto per mail e newsgroups (Thunderbird), una rubrica (Netscape Address Book) ed un editor per l'HTML.

In questa confusione il W3C abbandono' HTML 3, e dovette seguire la realta' del mercato: HTML 3.2 usci' nel 1996-97, con molte delle novita' gia' introdotte dalla Netscape, ed era implementato in Netscape dalla versione 3.
HTML 4, del 1997, sposta diverse funzionalita' dell'HTML ai CSS. Per fare chiarezza nelle specifiche definisce come deprecated (da abbandonare) diverse funzionalita' di HTML, ma esce in 3 diverse versioni: la strict, in cui certi elementi sono vietati, la transitional, in cui sono ancora tollerati; e la frameset, che ancora ammette i frames della Netscape, che sono altrimenti "deprecated".

L'ultima revisione dell'HTML e' l'HTML 4.1 del 1999; poi l'attenzione del W3C si sposta su XML e l'HTML non viene piu' aggiornato per anni.

Anche i CSS ebbero vita travagliata; furono implementati male dai browser di quel periodo, con inconsistenze ed errori. Fa un po' eccezione Opera, che implemento' completamente i CSS-1 nel 1998, con la versione 3.5.
Per l'implementazione dei CSS-2 fu peggio: non c'era corrispondenza fra le specifiche e le loro diverse implementazioni. Lo sviluppo della versione 2.1 dei CSS, che eliminava specifiche mai implementate e doveva essere piu' aderente alla realta' dei fatti, inizio' solo nel 2004, ma fu vittima di infiniti problemi e discussioni e la versione finale usci' solo nel 2011, quando gia' si parlava di CSS-3.

Fra il 1996 al 1998 la Netscape perse grosse fette del mercato, passando dall'80% al 60%. Fra gennaio e febbraio del 1998 rese libero il codice sorgente dei suoi applicativi, creo la Mozilla Organization , per coordinare lo sviluppo futuro del browser e di Thunderbird, il suo prodotto per l'email. L'importanza della Netscape continuo' a calare velocemente e alla fine, nel novembre del 1998, fu comperata da AOL (America On Line). La versione 5 del suo browser non usci' mai, mentre la Microsoft lancio' Explorer 5, nel 1999, assieme a Window 98 second edition. Nel 2000 la quota di mercato del browser Netscape era ridotta al 20% e poi calo' ancora. Nel 2003 AOL smise di svilupparlo, e nel 2007 lo abbandono'completamente. Segui' un lunghisimo processo: la Microsoft fu condannata nel 2000 per le sue pratiche commerciali scorrette ; rischio' di essere smembrata, ma alla fine ne usci' indenne, con un favorevole accordo col dipartimento di giustizia americano, quando, nel 2001, Bush divenne presidente.

Il fatto che gli standard del web si siano sviluppati in questo periodo confuso di guerra commerciale e' un'eredita' pesante, che, grazie soprattutto alla Microsoft, il web si portera' dietro per molti anni: con i CSS malamente implementati e scarsamente utilizzabili; i tag HTML con funzioni che si sovrappongono a quelle dei CSS; con implementazioni degli standard parziali ed incoerenti; con un Javascript di difficile utilizzo, e soprattutto con un mercato dominato da un unico browser, Explorer, con innumerevoli bachi e problemi di sicurezza.