Een pas gepubliceerd paper van Brendan Eich, CEO van de op Chromium gebaseerde browser Brave en de belangrijkste ontwerper van JavaScript, blikt terug op twee decennia van de definitieve programmeertaal voor het web, browsers en, in toenemende mate, native mobiele en desktop-apps.
Iedereen die ontwikkelt voor het web moet JavaScript kennen, een van de top drie programmeertalen, samen met Java en Python, waarvan de populariteit is gestegen als gevolg van de opkomst van machine learning.
Eich, een mede-oprichter van Firefox-maker Mozilla, en zijn co-auteur, Allen Wirfs-Brock – een belangrijke auteur van de ECMAScript-specificatie voor JavaScript – beschrijven de lange en kronkelige geschiedenis van JavaScript en het web sinds 1995 onder invloed van Microsoft, Mozilla, Netscape en Oracle.
SEE: Virtuele aanwervingstips voor werkzoekenden en recruiters (gratis PDF) (TechRepublic)
Het artikel is in maart voltooid en gepubliceerd in de editie van deze maand van de Association of Computing Machinery (ACM) Journal, waarin een terugblik wordt gegeven op belangrijke programmeertalen, waaronder JavaScript, C++, F#, Fortran, Objective-C, en Clojure.
Naast de evolutie van JavaScript biedt de paper een who’s who van het vroege web en wat heeft geleid tot het huidige, door Chromium gedomineerde web, waartoe nu ook Microsofts op Chromium gebaseerde Edge of ‘Chredge’-browser behoort.
De paper is vanuit het perspectief van Eich nadat hij in 1995 bij Netscape was gaan werken, kort nadat Microsoft had aangeboden om het bedrijf te kopen. Hij maakte toen een Unix-versie van Mocha, de voorloper van JavaScript.
Het verhaal bevat ook zijn kijk op de inbreng van de ‘vader’ van het web, Tim Berners-Lee, medeoprichter van Netscape, Marc Andreessen, die mede-auteur was van de eerste browser, Mosaic, mede-oprichter van Sun, Bill Joy, en mede-oprichter van Microsoft, Bill Gates.
Een leuk feit is dat de handelsmerknaam JavaScript, die oorspronkelijk werd geregistreerd door Sun Microsystems, vandaag nog steeds onder controle is van Oracle, dat Sun in 2009 overnam, waardoor het Java kreeg.
Mogelijke handelsmerkkwesties verklaren ook waarom JavaScript-standaard ECMAScript – dat Microsofts veelgebruikte TypeScript ondersteunt – de term ‘JavaScript’ niet bevat.
“Het handelsmerk werd oorspronkelijk geregistreerd door Sun Microsystems, en vanaf de datum van dit document is de registratie eigendom van Oracle Corporation. Het handelsmerk werd door Sun in licentie gegeven aan Netscape en later aan de Mozilla Foundation,” schrijven de twee.
“Netscape en Mozilla hebben namen als JavaScript 1.4 gebruikt om specifieke versies van hun implementaties van de taal te beschrijven. Sommige implementatoren van de taal hebben andere namen gebruikt om mogelijke handelsmerkkwesties te vermijden.
“Vanwege de vele namen, de handelsmerkproblemen, en de verwarring met Java, noemen veel hedendaagse gebruikers, schrijvers van boeken, en implementeerders van gereedschappen de taal gewoon JS, en ‘js’ wordt algemeen gebruikt als een bestandsextensie voor JavaScript-broncode.”
Java is bedacht door James Gosling, ook in 1995, toen hij bij Sun werkte. Twee jaar nadat Oracle Sun had overgenomen, werd hij ingerekend door Google tijdens de juridische strijd met Oracle over het gebruik van Java API’s door het zoekbedrijf in Android.
Gosling sloot zich aan bij Tim Bray, een andere high-profile voormalige Sun-ingenieur die hielp bij het open-sourcen van Java en vanaf 2010 Google’s Android-ontwikkelaar advocate team zou leiden.
Signaling the future battle for the web and the first browser war, the duo recount that immediately after Netscape and Sun announced JavaScript in December 1995, Microsoft told the world it would make Visual Basic (VB) a standard for creating web-based applications using VB Script for its Internet Explorer browser.
Zoals het tweetal zich herinnert, was JavaScript oorspronkelijk bedoeld als een “Java side-kick scripting language” waar “alle geavanceerde programmeertaken zouden worden gedaan met behulp van Java” dankzij Java-applets.
“Maar naarmate de ervaring met JavaScript toenam, begonnen webontwikkelaars zich te realiseren dat ze eigenlijk alleen JavaScript nodig hadden,” schrijven ze.
Hoewel Netscape in het begin Java als cruciaal zag voor de toekomst van het web en zijn oorlog met Microsofts Internet Explorer en het propriëtaire Visual Basic.
Volgens Eich en Wirfs-Brock, “was de strijdkreet van Marc Andreessen op Netscape-vergaderingen: ‘Netscape plus Java doodt Windows’.” In mei 1995, toen Sun Java aankondigde, schetste Netscape zijn plan om Java in licentie te geven voor zijn browser.
Maar de beslissing om JavaScript te maken was niet zonder tegenstanders, ook al dachten Andreessen en Sun’s Bill Joy dat de enige levensvatbare aanpak was om een “kleine taal” te ontwerpen en te implementeren om Java aan te vullen.
“Twijfelaars, dominant bij Sun en een meerderheid bij Netscape, stelden de noodzaak van een eenvoudiger scripttaal ter discussie: was Java niet geschikt voor scripting; zou het mogelijk zijn uit te leggen waarom twee talen beter waren dan één; en had Netscape de nodige expertise om een nieuwe taal te creëren?”
SEE: Programmeertalen: Developers reveal what they love and loathe, and what pays best
Another choice quote in the paper highlights Microsoft’s radically different approach to proprietary and open-source software in the year 2000 in the context of an “internet tidal wave” that Gates saw coming that was then dominated by Netscape.
“Microsoft had met Internet Explorer een marktaandeel van meer dan 90% veroverd en uiteindelijk ook bereikt. Het had weinig voortdurende interesse in het verbeteren van het web-programmeerplatform waarover het geen eigen controle had,” schrijven de twee.
“Intern werden de middelen verlegd van het verbeteren van open browser technologieën zoals ECMAScript naar het ontwikkelen van propriëtaire Microsoft technologieën zoals het Windows Presentation Framework, waarvan men hoopte dat het uiteindelijk de open Web technologieën zou verouderen en verdringen.
“Op het gebied van programmeertalen voor .NET richtte het zich op C# en VisualBasic.NET. In die context was JScript.NET alleen relevant in de mate waarin het JavaScript-programmeurs in staat stelde naar het .NET-platform te migreren.”