Vai al contenuto principale
BiografiaStoria dell’informaticaPrincipiante

Brendan Eich: JavaScript, dal prototipo Netscape allo standard del Web

Come Brendan Eich creò il primo JavaScript in Netscape e contribuì alla sua evoluzione nel linguaggio standardizzato del Web.

Pubblicato 17 agosto 2026Aggiornato 15 settembre 2026Lettura : 8 minDi Yann Bastien
Ritratto di Brendan Eich, creatore della prima versione di JavaScript
Mostra indice
  1. Prima di Netscape: un ingegnere dei linguaggi
  2. 1995: dare comportamento alle pagine Web
  3. Scheme e Self sotto una superficie familiare
  4. Quando le stranezze diventano contratti di compatibilità
  5. Da JavaScript a ECMAScript
  6. Un linguaggio trasformato da chi lo usa
  7. Mozilla e il Web aperto
  8. Perché Brendan Eich conta ancora nella storia del Web
  9. Cronologia
  10. Domande frequenti
  11. Brendan Eich ha davvero creato JavaScript in dieci giorni?
  12. JavaScript è una versione di Java?
  13. Qual è la differenza tra JavaScript ed ECMAScript?
  14. Perché JavaScript usa i prototipi?
  15. Brendan Eich ha creato Node.js?
  16. Perché le vecchie stranezze di JavaScript esistono ancora?

Brendan Eich è legato a uno degli aneddoti più noti della storia della programmazione: JavaScript sarebbe stato «creato in dieci giorni». L’affermazione è corretta se si riferisce al primo prototipo, realizzato in Netscape nel maggio 1995. Diventa fuorviante se suggerisce che il linguaggio di oggi sia nato già completo in quei dieci giorni. JavaScript moderno è il risultato di tre decenni di standardizzazione, implementazioni concorrenti, correzioni e compromessi con uno dei vincoli più forti del Web: le pagine esistenti devono continuare a funzionare.

La storia di Eich è interessante proprio per questa tensione. Sotto una fortissima pressione temporale progettò un linguaggio facile da inserire in una pagina, combinando però idee provenienti da Scheme e Self dietro una sintassi familiare ai programmatori C e Java. Da un’esigenza commerciale immediata nacque il linguaggio di programmazione nativo universale del browser.

Prima di Netscape: un ingegnere dei linguaggi

Brendan Eich nasce a Pittsburgh nel 1961. Studia matematica e informatica e nel 1986 consegue un master alla University of Illinois Urbana-Champaign. Prima di Netscape lavora, tra le altre, per Silicon Graphics e MicroUnity occupandosi di compilatori e sistemi.

Questa esperienza è importante per capire il 1995. Eich non improvvisa senza basi: conosce i compromessi tra progettazione del linguaggio, implementazione e prestazioni ed è particolarmente interessato a Scheme, un dialetto Lisp in cui le funzioni sono elementi centrali.

1995: dare comportamento alle pagine Web

A metà degli anni Novanta il Web è ancora soprattutto un insieme di documenti. HTML descrive una pagina e il browser la visualizza; molte interazioni richiedono un nuovo scambio con il server.

Netscape Navigator è allora uno dei browser dominanti. Netscape vuole consentire agli autori delle pagine di aggiungere comportamento direttamente nel browser senza una complessa catena di sviluppo. Parallelamente collabora con Sun intorno a Java, pensato per applicazioni più strutturate. Il nuovo linguaggio di scripting deve essere più leggero, immediatamente utilizzabile da HTML e privo di una fase di compilazione obbligatoria.

Eich entra in Netscape nell’aprile 1995. A maggio realizza in circa dieci giorni il prototipo chiamato Mocha. Il lavoro prosegue prima della pubblicazione: il linguaggio diventa LiveScript e, alla fine del 1995, JavaScript, in un periodo in cui Java gode di enorme visibilità commerciale.

Il nome genera da allora una confusione persistente. JavaScript non è una versione semplificata di Java. I due linguaggi differiscono per sistema di tipi, modello a oggetti e ambiente di esecuzione. La somiglianza più evidente deriva da una sintassi volutamente familiare, appartenente alla famiglia C: parentesi graffe, operatori e strutture di controllo.

Scheme e Self sotto una superficie familiare

Sotto questa superficie, JavaScript tratta le funzioni come valori di prima classe. Possono essere memorizzate in variabili, passate come argomenti o restituite come risultato. Questa flessibilità, tipica di Scheme, si adatta particolarmente bene a un browser guidato dagli eventi, dove una funzione può reagire a un clic, a un input o al completamento di un’operazione.

Per gli oggetti, Eich si ispira in parte a Self. Le classi non costituiscono il meccanismo fondamentale: un oggetto può delegare la ricerca delle proprietà a un altro oggetto attraverso una catena di prototipi. La sintassi class, introdotta molto più tardi, non sostituisce questo modello; offre un modo più familiare di lavorare sopra di esso.

JavaScript adotta inoltre la tipizzazione dinamica e numerose conversioni implicite. Queste scelte rendono rapida la scrittura di piccoli script, ma producono anche comportamenti sorprendenti. Alcune celebri stranezze del linguaggio si comprendono meglio come conseguenza del compromesso iniziale: JavaScript doveva essere accessibile, espressivo e soprattutto pronto in tempi strettissimi.

Eich sviluppa contemporaneamente il primo motore, antenato di SpiderMonkey. Progettare insieme sintassi e implementazione accelera la sperimentazione, ma lascia poco tempo per rivedere certe decisioni prima che pagine pubbliche inizino a dipenderne.

Quando le stranezze diventano contratti di compatibilità

Sul Web un errore pubblicato è difficile da cancellare. Quando migliaia di siti dipendono da un comportamento, modificarlo in modo incompatibile può romperli. Conversioni implicite, vecchie regole di scope, il comportamento di this o la coesistenza di null e undefined fanno quindi parte di un’eredità che JavaScript moderno deve gestire invece di eliminare semplicemente.

Questo vincolo spiega sia le asperità del linguaggio sia la sua straordinaria continuità. Gli standard tendono ad aggiungere meccanismi più chiari o sicuri senza rimuovere bruscamente quelli precedenti.

È inoltre essenziale distinguere due livelli: JavaScript non è il browser. Il linguaggio definisce valori, funzioni, oggetti e operazioni. API come DOM, eventi, fetch e archiviazione sono fornite dall’ambiente Web. Le incompatibilità storiche potevano quindi provenire dal linguaggio oppure dalle API del browser che lo circondavano.

Da JavaScript a ECMAScript

Il successo di Netscape produce rapidamente implementazioni concorrenti. Microsoft introduce JScript in Internet Explorer, mentre i browser sviluppano comportamenti e API proprietari. Senza una base comune, gli autori dei siti rischiano di dover scrivere codice diverso per browser diversi.

Nel 1996 Netscape sottopone il linguaggio a Ecma International. Nel 1997 viene pubblicata la prima edizione di ECMA-262 con il nome ECMAScript. È un passaggio decisivo: le regole centrali del linguaggio non dipendono più esclusivamente dal browser di un singolo produttore.

JavaScript resta il nome storico e di uso comune; ECMAScript è la specifica standardizzata. I browser implementano questa specifica e vi affiancano le API proprie del Web.

La standardizzazione non procede in linea retta. L’ambizioso progetto ECMAScript 4 si scontra negli anni Duemila con profondi disaccordi sull’entità dei cambiamenti. Il compromesso porta a ECMAScript 5 nel 2009. ECMAScript 2015 (ES6) rappresenta poi una tappa fondamentale con moduli, let e const, sintassi delle classi, arrow function e molte altre funzionalità. In seguito la specifica adotta un ritmo annuale.

Il fallimento di ES4 offre una lezione importante: far evolvere un linguaggio onnipresente è un problema di governance quanto di ingegneria. Occorre migliorare la piattaforma senza frammentare le implementazioni né abbandonare miliardi di righe di codice esistente.

Un linguaggio trasformato da chi lo usa

La storia successiva di JavaScript va molto oltre Eich. Negli anni Duemila Ajax rende popolari interfacce capaci di comunicare con il server senza ricaricare l’intera pagina. Librerie e poi framework aiutano a strutturare applicazioni sempre più complesse.

Dal 2008 motori come V8 migliorano drasticamente le prestazioni attraverso compilazione just-in-time e altre ottimizzazioni. Nel 2009 Ryan Dahl crea Node.js, che utilizza V8 per eseguire JavaScript fuori dal browser. Il linguaggio arriva così sui server, negli strumenti di sviluppo e in ambienti che il progetto Netscape del 1995 non aveva mai previsto.

Eich non ha creato V8 né Node.js e non ha progettato personalmente le numerose funzionalità aggiunte in seguito a ECMAScript. Il suo ruolo storico è aver creato il nucleo iniziale e contribuito alla prima standardizzazione. La piattaforma moderna è un’opera collettiva di comitati di standardizzazione, team dei motori, produttori di browser, autori di librerie, sviluppatori e utenti.

Mozilla e il Web aperto

Dopo l’acquisizione di Netscape da parte di AOL, Eich diventa una figura importante del progetto Mozilla, assumendo responsabilità tecniche e dirigenziali. Firefox, lanciato nel 2004, contribuisce a ristabilire una forte concorrenza tra browser e a promuovere standard Web aperti.

Nel 2014 Eich diventa per breve tempo CEO di Mozilla, per poi dimettersi nel contesto di una controversia pubblica relativa a una donazione politica effettuata nel 2008. L’episodio fa parte della sua carriera professionale, ma è distinto dalla valutazione tecnica del suo ruolo in JavaScript.

Nel 2015 co-fonda Brave Software, che sviluppa il browser Brave, orientato tra l’altro alla protezione dal tracciamento e a un diverso modello di pubblicità online. Il progetto prosegue il suo coinvolgimento nel mondo dei browser, ma è separato dalla progettazione e dalla standardizzazione di JavaScript.

Perché Brendan Eich conta ancora nella storia del Web

Il contributo duraturo di Eich non consiste nell’aver progettato da solo JavaScript moderno. Consiste nell’aver dato al browser, in un momento decisivo dell’espansione del Web, un linguaggio abbastanza accessibile da diffondersi immediatamente e abbastanza espressivo da superare presto i piccoli script per cui sembrava destinato.

Le sue influenze spiegano parte di questa adattabilità: funzioni di prima classe, oggetti basati su prototipi e comportamento dinamico permettono stili di programmazione molto diversi. I compromessi iniziali spiegano anche molte difficoltà del linguaggio. Entrambi gli aspetti appartengono alla stessa storia.

JavaScript mostra soprattutto quanto rapidamente un linguaggio distribuito sul Web smetta di appartenere al proprio creatore. Diventa un contratto collettivo tra una specifica, diversi motori, API, strumenti e un’enorme quantità di software esistente. Il suo successo dipende tanto da questa continuità quanto dal progetto originario.

Cronologia

  • 1961: Brendan Eich nasce a Pittsburgh.
  • 1986: consegue un master alla University of Illinois Urbana-Champaign.
  • Aprile 1995: entra in Netscape.
  • Maggio 1995: realizza il prototipo Mocha in circa dieci giorni.
  • 1995: Mocha diventa LiveScript e poi JavaScript.
  • 1996: Netscape sottopone il linguaggio a Ecma International.
  • 1997: viene pubblicata la prima edizione di ECMA-262.
  • 1998: Eich contribuisce alla nascita del progetto Mozilla.
  • 2004: viene lanciato Firefox.
  • 2009: ECMAScript 5; Ryan Dahl lancia Node.js.
  • 2014: breve mandato di Eich come CEO di Mozilla.
  • 2015: ECMAScript 2015 e cofondazione di Brave Software.
  • Oggi: ECMAScript continua a evolversi e JavaScript resta il linguaggio nativo universale dei browser Web.

Domande frequenti

Brendan Eich ha davvero creato JavaScript in dieci giorni?

Ha creato il primo prototipo, Mocha, in circa dieci giorni nel maggio 1995. Il linguaggio continuò a cambiare prima del lancio e poi per decenni attraverso standard e implementazioni diverse.

JavaScript è una versione di Java?

No. Il nome e parte della sintassi creano una somiglianza fuorviante. JavaScript è a tipizzazione dinamica e fondamentalmente basato sui prototipi; Java è stato progettato con un modello e un ambiente di esecuzione differenti.

Qual è la differenza tra JavaScript ed ECMAScript?

ECMAScript è la specifica standard che definisce il nucleo del linguaggio. JavaScript è il nome comune delle sue implementazioni. Nel browser, JavaScript lavora inoltre con API Web come il DOM.

Perché JavaScript usa i prototipi?

Eich si ispirò in parte a Self. Gli oggetti possono delegare la ricerca delle proprietà ad altri oggetti. La moderna sintassi delle classi non sostituisce questo meccanismo, ma vi si appoggia.

Brendan Eich ha creato Node.js?

No. Ryan Dahl ha creato Node.js nel 2009 utilizzando il motore V8. La sua importanza mostra quanto JavaScript sia andato oltre il ruolo originariamente previsto nelle pagine Web.

Perché le vecchie stranezze di JavaScript esistono ancora?

Perché la compatibilità all’indietro è un vincolo fondamentale del Web. Rimuovere o cambiare un vecchio comportamento potrebbe rompere siti ancora online, quindi il linguaggio tende a evolversi aggiungendo alternative migliori pur conservando gran parte del proprio passato.

Questo articolo ti è stato utile?

Fonti e riferimenti

  1. 1.Allen Wirfs-Brock e Brendan Eich - JavaScript: The First 20 Years
  2. 2.Ecma International - ECMAScript Language Specification
  3. 3.Mozilla - A re-introduction to JavaScript
  4. 4.Computer History Museum - Brendan Eich oral history

Raccolta

Linguaggi di programmazione

12 / 26

  1. 01Grace Hopper: dai primi compilatori a COBOL
  2. 02John Backus: FORTRAN, la notazione BNF e il rifiuto del codice macchina
  3. 03Dennis Ritchie: il linguaggio C al cuore di Unix
  4. 04FORTRAN: dimostrare che un compilatore può competere con l'assembly
  5. 05Il linguaggio C: rendere portabili i sistemi senza nascondere la macchina
  6. 06Niklaus Wirth: da Pascal a Oberon, progettare con la semplicità
  7. 07Bjarne Stroustrup: progettare C++ senza rinunciare alle prestazioni
  8. 08Pascal: imparare a programmare rendendo visibile la struttura
  9. 09C++: da C with Classes al C++ moderno
  10. 10Programmazione orientata agli oggetti: oggetti, messaggi e astrazioni riutilizzabili
  11. 11Guido van Rossum: creare Python per rendere il codice leggibile
  12. 12Brendan Eich: JavaScript, dal prototipo Netscape allo standard del Web
  13. 13James Gosling: l'ingegnere all'origine di Java
  14. 14Python: leggibilità, batterie incluse e un ecosistema globale
  15. 15Java: scrivere una volta, eseguire ovunque
  16. 16JavaScript: il linguaggio che ha reso interattivo il Web
  17. 17Ken Thompson: da Unix a Go, la semplicità come metodo
  18. 18John McCarthy: Lisp e l'idea di programmare con i simboli
  19. 19Alan Kay: Smalltalk e il computer come medium personale
  20. 20Barbara Liskov: l'astrazione che ha reso modulare il software
  21. 21Robin Milner: ML, dimostrazione assistita e linguaggi dell'interazione
  22. 22Brian Kernighan: AWK, Unix e l'arte di spiegare il codice
  23. 23Anders Hejlsberg: da Turbo Pascal a C# e TypeScript
  24. 24Larry Wall: Perl, il linguaggio che ha collegato gli strumenti di Internet
  25. 25Yukihiro Matsumoto: Ruby e la felicità del programmatore
  26. 26Rasmus Lerdorf: PHP e la democratizzazione del Web dinamico
BiografiaStoria dell’informaticaPrincipiante

Dennis Ritchie: il linguaggio C al cuore di Unix

Come Dennis Ritchie progettò il linguaggio C e contribuì a Unix, due fondamenta che resero il software di sistema più portabile.

3 agosto 20267 min