Sommario | Attacco | Crittologia | GnuPG/PGP | Programmazione | Sicurezza | Modifiche

 
    Sommario / Programmazione /

Fondamenti


Riferimenti
 


JavaScript

Il linguaggio JavaScript, a differenza di come si sarebbe portati a pensare, non ha niente a che vedere con il linguaggio di programmazione Java sviluppato da Sun. Infatti in origine, nella sua prima versione, sviluppata da Brendan Eich, dipendente Netscape, JavaScript veniva chiamato LiveScript essendo stato scritto da Netscape per essere introdotto all'interno della sua linea di server LiveWire. Dopo un'attenta analisi però, Netscape, valutando strategicamente l'introduzione all'interno del mondo Internet del linguaggio Java da parte di Sun, decise, di concerto con quest'ultima, di variare il nome del suo prodotto in JavaScript.

Il linguaggio ha acquisito da subito una certa popolarità grazie a delle sue caratteristiche peculiari, essendo:

  • Semplice: essendo basato sulla sintassi di Java risulta di facile apprendimento per tutti coloro che hanno già una certa familiarità con il linguaggio C++;
  • Dinamico:permette, basandosi sulla logica event-driven, di fornire una risposta agli input dell'utente, senza alcun ricorso a programmi eseguiti lato server;
  • Orientato agli oggetti: prima di tutto, cosa vuol dire questa affermazione? In pratica, un oggetto non è altro che un'entità a se stante contenente dei dati ed un insieme di procedure per manipolare questi ultimi. Anche se JavaScript non lo è nel senso stretto del termine, visto che, fra l'altro, non supporta le classi e l'ereditarietà, può essere considerato basato sugli oggetti. Infatti, oltre a permetterne la creazione garantisce la possibilità di interagire con quelli presenti nel navigatore nonchè con i componenti eventualmente caricati nella pagina.

Versioni

Poco tempo dopo la sua introduzione, avvenuta per la prima volta all'interno di Netscape Navigator 2.0 nel 1995, Microsoft cercò di correre ai ripari, introducendo una propria versione del linguaggio, chiamata JScript, all'interno del suo browser Internet Explorer 3.0. Era appena iniziata la guerra dei browsers. Anche JavaScript ne avrebbe pagato le conseguenze:
 

Browser Anno DOM Versione di JavaScript
Netscape Navigator 2.0 1995 -- JavaScript 1.0
Microsoft Internet Explorer 3.0 1996 Level 0 (DOM0) JavaScript 1.0 (JScript 1.0)
Netscape Navigator 3.0 1996 Level 0 (DOM0) JavaScript 1.1
Netscape Navigator 4.0 1997 DOM0 (2) JavaScript 1.2
Microsoft Internet Explorer 4.0 1997 DOM0 (2) JavaScript 1.2 (JScript 3.0) - ECMA
Netscape Navigator 4.5 1998 DOM0 (2) JavaScript 1.3 - ECMA
Microsoft Internet Explorer 5.0 1999 DOM1 (2) JavaScript 1.3 (JScript 5.0) - ECMA
Netscape Navigator 6 2000 DOM1/DOM2 (1) (2) JavaScript 1.5(1) - ECMA
Microsoft Internet Explorer 5.5 2000 DOM1/DOM2 (1) (2) JavaScript 1.5 (1) (JScript 5.5) - ECMA
Microsoft Internet Explorer 6.0 2001 DOM1/DOM2 (1) (2) JavaScript 1.5 (1) (JScript 6.0) - ECMA
NOTE: (1) Supportato in parte. (2) Più estensioni proprietarie.

Sfortunatamente infatti, le implementazioni di JavaScript fatte da Netscape e Microsoft sono sempre state differenti, anche avendo lo stesso numero di versione. Per esempio, JavaScript 1.0 utilizzato da Internet Explorer 3 presenta delle differenze rispetto a JavaScript 1.0 di Netscape Navigator 2; allo stesso modo, JavaScript 1.2 di Internet Explorer 4 non corrisponde a JavaScript 1.2 di Netscape Navigator 4.

Per cercare di risolvere i problemi legati alle evidenti incompatibilità e definire quindi uno standard, nel 1996 entrambi i produttori sottomisero le rispettive versioni all'allora European Computer Manufacturers Association (ECMA), un'associazione avente come scopo principale quello di standardizzare tutto quanto era legato ai sistemi informativi. Il prodotto finale fu la specifica di linguaggio ECMA 262. Questa specifica, standardizzata da ISO/IEC come ISO/IEC 16262, è oggi alla terza edizione e corrispondente alla versione 1.5 di JavaScript.

Da notare però che l'implementazione di Microsoft ha, da sempre, aggiunto delle funzionalità alla specifica per sfruttare appieno alcune caratteristiche del browser Internet Explorer.

Le modifiche sul linguaggio non sono comunque terminate. Attualmente, si sta sperimentando la versione 2.0, che dovrebbe coincidere con il futuro rilascio della specifica ECMAScript 262 quarta edizione.

Guardando la tabella avrete sicuramente notato che, fra le altre, è presente una colonna chiamata DOM (Document Object Model). Il modello ad oggetti del documento non è altro che un'interfaccia non legata a nessuna piattaforma o linguaggio di programmazione, che permette ai programmi ed ai linguaggi di scripting di accedere dinamicamente e di aggiornare il contenuto, la struttura e lo stile dei documenti. In pratica, un documento potrebbe essere processato ed i risultati di questa operazione potrebbero essere nuovamente incorporati all'interno della pagina presentata.

Anche in questo caso però, le cose non sono andate come previsto e, di fronte all'opera di standardizzazione compiuta dal W3C (World Wide Web Consortium), organo che si occupa della stesura delle specifiche per il DOM, ci ritroviamo con tantissime differenze di implementazione e gestione dello stesso da parte dei vari programmi di navigazione delle diverse case produttrici.

Cosa ci rimane da fare? Una sola cosa: scegliere con cura il codice da implementare in modo che sia utilizzabile possibilmente sul maggior numero di piattaforme.

Detto questo, vediamo quali saranno gli argomenti trattati in questo breve corso di JavaScript:

     

 
 

Copyright © 1998 - 2009 Antonio Magrì - Tutti i diritti riservati. Contatto.