Un documento appena pubblicato da Brendan Eich, CEO del browser Brave basato su Chromium e il progettista chiave di JavaScript, guarda indietro a due decenni del linguaggio di programmazione definitivo per il web, i browser e, sempre più, le app native per cellulari e desktop.
Chiunque sviluppi per il web deve conoscere JavaScript, uno dei tre principali linguaggi di programmazione, insieme a Java e Python, la cui popolarità è aumentata grazie all’ascesa del machine learning.
Eich, un co-fondatore di Mozilla, produttore di Firefox, e il suo co-autore, Allen Wirfs-Brock – un autore chiave della specifica ECMAScript per JavaScript – descrivono in dettaglio la lunga e tortuosa storia di JavaScript e del web dal 1995 sotto l’influenza di Microsoft, Mozilla, Netscape e Oracle.
SEE: Consigli per le assunzioni virtuali per chi cerca lavoro e i reclutatori (PDF gratuito) (TechRepublic)
L’articolo è stato completato a marzo e pubblicato nell’edizione di questo mese dell’Association of Computing Machinery (ACM) Journal, che fornisce una retrospettiva sui principali linguaggi di programmazione, tra cui JavaScript, C++, F#, Fortran, Objective-C e Clojure.
Oltre all’evoluzione di JavaScript, il documento offre un who’s who del primo web e ciò che ha portato al web dominato da Chromium di oggi, che ora include il browser Edge o ‘Chredge’ basato su Chromium di Microsoft.
Il documento è dalla prospettiva di Eich dopo essere entrato in Netscape nel 1995, poco dopo che Microsoft ha offerto di acquistare la società. Ha poi creato una versione Unix di Mocha, il precursore di JavaScript.
Il racconto presenta anche il suo punto di vista sugli input del “padre” del web Tim Berners-Lee, il co-fondatore di Netscape, Marc Andreessen, che ha co-autore del primo browser, Mosaic, il co-fondatore di Sun Bill Joy e il co-fondatore di Microsoft, Bill Gates.
Un fatto divertente è che il nome del marchio JavaScript, originariamente registrato da Sun Microsystems, oggi rimane sotto il controllo di Oracle, che ha acquisito Sun nel 2009, dandogli Java.
Potenziali problemi di marchio spiegano anche perché lo standard JavaScript ECMAScript – che l’ampiamente utilizzato TypeScript di Microsoft supporta – non include il termine ‘JavaScript’.
“Il marchio è stato originariamente registrato da Sun Microsystems, e alla data di questo documento la registrazione è di proprietà di Oracle Corporation. Il marchio è stato concesso in licenza da Sun a Netscape e successivamente alla Mozilla Foundation”, scrivono i due.
“Netscape e Mozilla hanno usato nomi come JavaScript 1.4 per descrivere versioni specifiche delle loro implementazioni del linguaggio. Alcuni implementatori del linguaggio hanno usato altri nomi per evitare possibili problemi di marchio.
“A causa dei nomi multipli, i problemi di marchio, e la confusione con Java, molti utenti contemporanei, autori di libri, e implementatori di strumenti chiamano semplicemente il linguaggio JS, e ‘js’ è comunemente usato come estensione di file per il codice sorgente JavaScript.”
Java è stato creato da James Gosling, sempre nel 1995, mentre lavorava alla Sun. Due anni dopo l’acquisizione di Sun da parte di Oracle, è stato catturato da Google durante la sua battaglia legale con Oracle sull’uso delle API Java in Android da parte della società di ricerca.
Gosling si è unito a Tim Bray, un altro ex ingegnere Sun di alto profilo che ha contribuito all’open-source di Java e avrebbe guidato il team di Google per la difesa degli sviluppatori Android dal 2010.
Segnalando la futura battaglia per il web e la prima guerra dei browser, il duo racconta che subito dopo che Netscape e Sun annunciarono JavaScript nel dicembre 1995, Microsoft disse al mondo che avrebbe reso Visual Basic (VB) uno standard per la creazione di applicazioni web-based utilizzando VB Script per il suo browser Internet Explorer.
Come ricordano i due, JavaScript era stato originariamente concepito come un “linguaggio di scripting Java side-kick” dove “tutti i compiti di programmazione sofisticati sarebbero stati fatti usando Java” grazie alle applet Java.
“Ma man mano che l’esperienza con JavaScript cresceva, gli sviluppatori web hanno cominciato a capire che tutto ciò di cui avevano veramente bisogno era JavaScript”, scrivono.
Tuttavia, all’inizio, Netscape vide Java come fondamentale per il futuro del web e la sua guerra con Internet Explorer di Microsoft e Visual Basic proprietario.
Secondo Eich e Wirfs-Brock, “Il grido di battaglia espresso da Marc Andreessen alle riunioni di Netscape era ‘Netscape più Java uccide Windows'”. Nel maggio 1995, quando Sun annunciò Java, Netscape delineò il suo piano di concedere in licenza Java per il suo browser.
Ma la decisione di creare JavaScript non era priva di oppositori, anche se Andreessen e Bill Joy della Sun pensavano che l’unico approccio possibile fosse quello di progettare e implementare un “piccolo linguaggio” per completare Java.
“I dubbiosi, dominanti alla Sun e una maggioranza alla Netscape, mettevano in dubbio la necessità di un linguaggio di scripting più semplice: Java non era adatto allo scripting; sarebbe stato possibile spiegare perché due linguaggi erano meglio di uno; e Netscape aveva le competenze necessarie per creare un nuovo linguaggio?”
SEE: Linguaggi di programmazione: Developers reveal what they love and loathe, and what pays best
Un’altra citazione scelta nel documento evidenzia l’approccio radicalmente diverso di Microsoft al software proprietario e open-source nell’anno 2000 nel contesto di una “onda anomala di internet” che Gates ha visto arrivare e che era allora dominata da Netscape.
“Microsoft, con Internet Explorer, aveva vinto e infine raggiunto oltre il 90% di quota di mercato. Aveva poco interesse a migliorare la piattaforma di programmazione web sulla quale non aveva alcun controllo proprietario”, scrivono i due.
“Internamente, le risorse sono state reindirizzate dal miglioramento delle tecnologie dei browser aperti come ECMAScript allo sviluppo di tecnologie proprietarie di Microsoft come il Windows Presentation Framework, che si sperava avrebbe alla fine obsoleto e sostituito le tecnologie Web aperte.
“Nell’area dei linguaggi di programmazione per .NET, si concentrò su C# e VisualBasic.NET. In quel contesto JScript.NET era rilevante solo nella misura in cui permetteva ai programmatori JavaScript di migrare alla piattaforma .NET”.