# Interprete JavaScript

Un interprete JavaScript è un software specializzato che esegue comandi JavaScript, utilizzato soprattutto dai browser.

## Origini

Prima della seconda guerra dei browser, avvenuta tra il 2008 e il 2009, gli interpreti JavaScript erano considerati soltanto come programmi interpreti che leggono un codice sorgente JavaScript e eseguono di conseguenza lo script.
Il primo interprete JavaScript fu creato da Brendan Eich della Netscape Communications Corporation per il browser Netscape Navigator. L'interprete, chiamato con il nome in codice di SpiderMonkey, è realizzato in C. È stato (in JavaScript 1.5) in conformità agli standard ECMA-262 Edition 3. L'interprete Rhino, creato da Norris Boyd (anche lui della Netscape) invece scritto in Java. Come SpiderMonkey, Rhino rispetta la ECMA-262 Edition 3. Altre applicazioni di questa tecnologia includono: Nitro, sviluppato dalla Apple per Safari; V8, sviluppato per Google Chrome; TraceMonkey, sviluppato per Mozilla Firefox 3.5.
I browser web sono sicuramente i più grandi utilizzatori di JavaScript. I browser Web, tipicamente, usano le API pubbliche per creare "host objects" responsabili di riflettere il DOM nel JavaScript

## Caratteristiche degli interpreti JavaScript
### Associazione degli interpreti ai browser

Un tipico browser ha un'interfaccia grafica e un interprete JavaScript indipendenti, cosa che permette più facilmente di utilizzarli in altri progetti. Per esempio Carakan è usato con Presto, Nitro con WebKit, SpiderMonkey con Gecko, KJS con KHTML. Altre combinazioni sono talvolta possibili, per esempio, V8 con WebKit in Google Chrome. L'interprete JavaScript permette agli sviluppatori di accedere a funzionalità necessarie per il controllo del browser.

### La competizione tra i diversi interpreti

È chiaramente molto accesa la competizione tra gli sviluppatori di browser per lo sviluppo di interpreti JavaScript sempre più veloci. Nel 2008, Google Chrome era stata lodata per le capacità del suo interprete, ma altri browser si procurarono in fretta nuovi interpreti JavaScript più veloci. Più avanti fu di nuovo Google Chrome a vincere in questa competizione. Il punto di forza di Chrome stava nelle prestazioni dell'applicazione e nella velocità dell'esecuzione JavaScript, due caratteristiche che erano state riconosciute da molti siti web come le più veloci riscontrabili tra i più importanti browser di quel periodo. Con l'arrivo di Squirrelfish Extreme e TraceMonkey, si è riscontrato che le prestazioni di Chrome nell'esecuzione di JavaScript erano inferiori. Google ha risposto con il programma danese V8, che ha incrementato le prestazioni di Google Chrome 2.

## Interpreti JavaScript

Di seguito vi è un elenco dei più importanti interpreti JavaScript, la maggior parte dei quali sviluppati in relazione a un browser:

### Mozilla

* Rhino: realizzato dalla Mozilla Foundation, è un programma open source sviluppato interamente in linguaggio Java.
* SpiderMonkey: il primo interprete JavaScript mai creato, la cui prima versione è stata sviluppata da Brendan Eich della Netscape Communications.
* JägerMonkey: l'interprete attualmente ancora in fase di sviluppo della Mozilla Corporation.
* Tamarin: sviluppato da Adobe Labs.

### Google

* V8: è un programma open source sviluppato da Google in Danimarca e rilasciato insieme a Google Chrome.

### Altri

* KJS: è l'interprete ECMAScript/JavaScript sviluppato inizialmente da Harri Porten per il browser web Konqueror del progetto KDE.
* Narcissus: è un programma open source, scritto da Brendan Eich, lo stesso che aveva scritto il primo SpiderMonkey.
* Chakra: sviluppato per Internet Explorer 9.
* Nitro: programma sviluppato per Safari 4.
* Carakan: programma sviluppato dalla Opera Software, impiegato a partire da Opera 10.50.