La contesa tra i browser Netscape Navigator e Microsoft
Internet Explorer ha comportato non pochi problemi agli sviluppatori
del linguaggio Javascript, le due società nel tempo hanno seguito
ognuno una propria strategia, finalizzata esclusivamente al miglioramento
del proprio prodotto.
Facendo un passo indietro, la Microsoft nel 1996, in risposta
alla eccellente versione 2.0 del Netscape Navigator,
iniziò a progettare il suo Internet Explorer con allinterno
un linguaggio similare al Javascript ma che per motivi di
copyright decise di ribattezzare in Jscript.
Jscript: Il Javascript targato Microsoft
La prima versione di Jscript è stata la 1.0, inserita
nel Microsoft Internet Explorer 3.0, questa implementazione
si è basata sulla specifica di linguaggio ECMA 262 con integrazione
di istruzioni che sfruttano esclusivamente le funzionalità del Document
Object Model del Microsoft Internet Explorer.
Jscript, quindi, è compatibile con il linguaggio ECMA
262 ma possiede in aggiunta anche implementazioni proprietarie
allinterno del suo browser.
Le implementazioni aggiuntive, unitamente alle diversità dei D.O.M.
dei browser, ed alla staticità del linguaggio HTML hanno
avuto come conseguenza la nascita del DHTML (Dynamic HyperText
Markup Language).
Il DHTML non va interpretato come un linguaggio, bensì come
un insieme di tecnologie al fine di superare la diversità tra le
varie piattaforme, ma di questo ne parleremo più avanti.
Oggi, Javascript e Jscript, viaggiano di pari passo
(vedi Tabella A e Tabella B), senza però avere una
completa compatibilità, per cui dovremo abituarci allidea
di provare i nostri programmi con diversi browser (o diverse piattaforme).
Vediamo levoluzione delle versioni dei due principali browser:
Versioni Netscape Navigator
|
Browser Netscape |
Versione Javascript |
|
Navigator 2.0 |
Javascript 1.0 |
|
Navigator 3.0 |
Javascript 1.1 |
|
Navigator 4.0 |
Javascript 1.2 |
|
Navigator 4.x |
Javascript 1.3 |
Tabella A
Versioni Microsoft Internet Explorer
|
Javascript |
Jscript |
||||||
|
Versione |
1.0 |
1.1 |
1.2 |
1.3 |
1.0 |
3.0 |
5.0 |
|
Explorer 3.0 |
* |
* |
|||||
|
Explorer 4.0 |
* |
* |
* |
* |
* |
||
|
Explorer 5.0 |
* |
* |
* |
* |
* |
* |
* |
Tabella B
Navigator contro Explorer ovvero la guerra dei browser
Nella guerra dei browser ci sono stati anche dei colpi
bassi, tra i quali risultò fin troppo evidente liniziativa
della Microsoft di inserire in forma gratuita ed aggiuntiva
il suo browser nei Sistemi Operativi Windows. Questultima
strategia iniziale, unitamente in un secondo tempo alla creazione
di una ottima piattaforma (Microsoft Internet Explorer 5),
ha prodotto un vistoso aumento di utenti che preferisce MSIE
e forse ha prodotto anche la vittoria finale.
Se mi permettete una battuta, chi di voi non acquisterebbe volentieri
una automobile che avesse servizi accessori aggiuntivi e gratuiti
come ad esempio lassicurazione! (Se questo servizio esiste
veramente mandatemi una mail)
Scherzi a parte, pensate alle difficoltà della Netscape che
da quellistante ha dovuto fornire il suo prezioso prodotto
in forma gratuita, scatenando e vincendo solo in seguito lazione
legale di antitrust nei confronti della Microsoft.
Non voglio aggiungere altro in merito, però quando un giorno diventerete
esperti programmatori in Javascript e vi accorgerete che
qualcosa non funziona nel browser concorrente, a quel punto saprete
che non è completamente colpa vostra!
Una conseguenza della guerra dei browser è la nascita del DHTML
come necessità.
Il DHTML
Quando si parla di HTML dinamico, si pensa ad una evoluzione
del linguaggio di formattazione HTML. Non è così. In realtà
ci sono delle integrazioni di tecnologie differenti allinterno
dell HTML. Queste tecnologie possono essere ad esempio:
Javascript, CSS, Jscript, VBScript, e vanno
applicate di volta in volta a seconda del D.O.M. del browser
incontrato.
Mi spiego meglio, sul browser della Netscape utilizzerò soluzioni
dinamiche con il linguaggio Javascript, ma sul browser della
Microsoft potrò utilizzare in aggiunta o in alternativa anche
il VBScript (linguaggio di proprietà Microsoft). Conoscere
il DHTML significa saper utilizzare tecnologie differenti
allo scopo di arrivare al medesimo risultato nelle varie piattaforme.
In parole povere significa mettere una pezza ai danni
creati dalla guerra dei browser. Le guerre non sono
mai state costruttive, in nessun campo.
Lasciamo il DHTML agli esperti del settore e torniamo al
nostro linguaggio, il Javascript.
Prima di concludere, vorrei darvi alcune delucidazioni sul tag
<SCRIPT>, e su come nascondere le istruzioni ai browser
non aggiornati o comunque non compatibili con il Javascript.
Il Tag <SCRIPT>
Nei precedenti esempi abbiamo già utilizzato il tag <SCRIPT>
ed abbiamo appreso che il contenuto compreso tra:
<script language=Javascript>
e </script>
è un codice che il browser deve interpretare come linguaggio Javascript.
Il tutto potrebbe essere sufficiente, se non fosse che Netscape
raccomandi vivamente di indicare anche la versione di riferimento
che si adopera. Il motivo è semplice: Javascript è in continua
evoluzione, questa specifica permette eventualmente al browser di
discriminare la compatibilità con le versioni precedenti. Per cui
sarà possibile che incontriate, da questo momento in poi, il seguente
TAG di apertura:
<script language=JavascriptX.Y>
dove X.Y è la versione, ad esempio la versione Javascript 1.2 che
è presente a partire dalle versioni 4 di Explorer
e 4 di Netscape. (Vedere le tabelle A e B di riferimento
, incontrate precedentemente)
Come nascondere il codice Javascript ai vecchi browser
Alcuni browser potrebbero non riconoscere le istruzioni in Javascript.
Una tecnica adottata da molto tempo per nascondere il codice Javascript
ai vecchi browser e che vi consiglio è la seguente:
<script>
<!-- Inizio - Nascondiamo lo script ai vecchi browser
Istruzioni Javascript
// Fine - Nascondiamo lo script ai vecchi browser -->
</script>
In questo modo le istruzioni Javascript non verranno eseguite sui
browser che non hanno implementato il linguaggio Javascript. In
pratica tutto quello che è compreso tra <! e -->
viene visto come un commento dai vecchi browser.
In realtà noi potremmo sfruttare questa tecnica anche per inserire
alcune utili indicazioni, per esempio:
<script>
<!-- Inizio Funzioni mio programma
Funzioni Javascript
// Fine Funzioni mio programma -->
</script>
Conclusioni
Finalmente abbiamo visto che cosa è Javascript, un linguaggio
di programmazione per sviluppare piccole applicazioni in ambiente
HTML. Un linguaggio estremamente versatile, basato sugli
oggetti, e che rispetta le direttive della programmazione strutturata.
Con poche righe di codice (script), potremo manipolare attraverso
i metodi qualsiasi oggetto che sia contenuto nel documento di un
browser.
La prima apparizione di Javascript è stata nel 1995 con la
versione beta 2.0 di Netscape Navigator. Questo linguaggio
viene interpretato in vari browser, e non richiede alcuna compilazione
preventiva prima della sua esecuzione.
Javascript è un linguaggio in continua evoluzione ma la sua
sintassi è stata definita dallECMA con il documento
ECMA 262 .
Nel prossimo capitolo, prima di vedere le fondamenta del linguaggio
Javascript, vi mostrerò una serie di esempi intuitivi a dimostrazione
della semplicità di utilizzo e di apprendimento del linguaggio.
Bibliografia
http://www.w3.org
http://www.ecma.ch
http://www.netscape.com
http://www.microsoft.com
Torna all'indice Generale del corso di Corso di JavaScript di Software Planet