Ein neu veröffentlichtes Papier von Brendan Eich, CEO des Chromium-basierten Browsers Brave und Hauptentwickler von JavaScript, blickt auf zwei Jahrzehnte der maßgeblichen Programmiersprache für das Web, Browser und zunehmend auch native mobile und Desktop-Apps zurück.
Jeder, der für das Web entwickelt, muss JavaScript kennen, eine der drei wichtigsten Programmiersprachen neben Java und Python, deren Popularität durch den Aufstieg des maschinellen Lernens stark zugenommen hat.
Eich, Mitbegründer des Firefox-Herstellers Mozilla, und sein Co-Autor Allen Wirfs-Brock – einer der Hauptautoren der ECMAScript-Spezifikation für JavaScript – beschreiben ausführlich die lange und kurvenreiche Geschichte von JavaScript und dem Web seit 1995 unter dem Einfluss von Microsoft, Mozilla, Netscape und Oracle.
SEE: Virtual hiring tips for job seekers and recruiters (free PDF) (TechRepublic)
Das Papier wurde im März fertiggestellt und in der diesjährigen Ausgabe des Association of Computing Machinery (ACM) Journal veröffentlicht, das einen Rückblick auf wichtige Programmiersprachen wie JavaScript, C++, F#, Fortran, Objective-C und Clojure bietet.
Neben der Entwicklung von JavaScript bietet der Artikel ein „Who is Who“ des frühen Webs und der Entwicklung zum heutigen, von Chromium dominierten Web, zu dem auch der auf Chromium basierende Edge- oder „Chredge“-Browser von Microsoft gehört.
Das Papier ist aus Eichs Perspektive, nachdem er 1995 zu Netscape kam, kurz nachdem Microsoft angeboten hatte, das Unternehmen zu kaufen. Er entwickelte damals eine Unix-Version von Mocha, dem Vorläufer von JavaScript.
Die Erzählung enthält auch Beiträge des „Vaters“ des Web, Tim Berners-Lee, des Netscape-Mitbegründers Marc Andreessen, der den ersten Browser Mosaic mitentwickelt hat, des Sun-Mitbegründers Bill Joy und des Microsoft-Mitbegründers Bill Gates.
Eine lustige Tatsache ist, dass der Markenname JavaScript, der ursprünglich von Sun Microsystems registriert wurde, heute unter der Kontrolle von Oracle steht, das Sun im Jahr 2009 übernommen hat, wodurch es Java wurde.
Potenzielle Markenprobleme erklären auch, warum der JavaScript-Standard ECMAScript – den Microsofts weit verbreitetes TypeScript unterstützt – den Begriff „JavaScript“ nicht enthält.
„Die Marke wurde ursprünglich von Sun Microsystems eingetragen und ist zum Zeitpunkt der Veröffentlichung dieses Dokuments im Besitz der Oracle Corporation. Die Marke wurde von Sun an Netscape und später an die Mozilla Foundation lizenziert“, schreiben die beiden.
„Netscape und Mozilla haben Namen wie JavaScript 1.4 verwendet, um bestimmte Versionen ihrer Implementierungen der Sprache zu beschreiben. Einige Implementatoren der Sprache haben andere Namen verwendet, um mögliche Markenprobleme zu vermeiden.
„Wegen der vielen Namen, der Probleme mit dem Warenzeichen und der Verwechslung mit Java nennen viele Benutzer, Buchautoren und Tool-Implementierer die Sprache einfach JS, und ‚js‘ wird üblicherweise als Dateierweiterung für JavaScript-Quellcode verwendet.“
Java wurde von James Gosling entwickelt, ebenfalls 1995, während er bei Sun arbeitete. Zwei Jahre nach der Übernahme von Sun durch Oracle wurde er von Google während des Rechtsstreits mit Oracle über die Verwendung von Java-APIs durch das Suchunternehmen in Android geschnappt.
Gosling schloss sich Tim Bray an, einem anderen prominenten ehemaligen Sun-Ingenieur, der an der Open-Source-Entwicklung von Java beteiligt war und ab 2010 Googles Android-Entwicklerbefürwortungsteam leiten sollte.
Als Zeichen für den zukünftigen Kampf um das Web und den ersten Browserkrieg erzählt das Duo, dass Microsoft unmittelbar nach der Ankündigung von JavaScript durch Netscape und Sun im Dezember 1995 der Welt mitteilte, dass es Visual Basic (VB) zu einem Standard für die Erstellung webbasierter Anwendungen machen würde, indem es VB Script für seinen Internet Explorer-Browser verwendete.
Wie sich die beiden erinnern, war JavaScript ursprünglich als „Java-Side-Kick-Skriptsprache“ gedacht, bei der dank Java-Applets „alle anspruchsvollen Programmieraufgaben mit Java erledigt“ werden sollten.
„Aber als die Erfahrung mit JavaScript wuchs, begannen Webentwickler zu erkennen, dass alles, was sie wirklich brauchten, JavaScript war“, schreiben sie.
Allerdings sah Netscape Java von Anfang an als entscheidend für die Zukunft des Webs und seinen Kampf mit Microsofts Internet Explorer und dem proprietären Visual Basic an.
Eich und Wirfs-Brock zufolge lautete „der von Marc Andreessen bei Netscape-Treffen geäußerte Schlachtruf ‚Netscape plus Java kills Windows‘.“ Im Mai 1995, als Sun Java ankündigte, skizzierte Netscape seinen Plan, Java für seinen Browser zu lizenzieren.
Aber die Entscheidung, JavaScript zu entwickeln, war nicht ohne Gegner, auch wenn Andreessen und Bill Joy von Sun der Meinung waren, dass der einzige gangbare Weg darin bestand, eine „kleine Sprache“ als Ergänzung zu Java zu entwickeln und zu implementieren.
„Zweifler, die bei Sun dominierten und bei Netscape in der Mehrheit waren, stellten die Notwendigkeit einer einfacheren Skriptsprache in Frage: War Java nicht für Skripting geeignet; wäre es möglich zu erklären, warum zwei Sprachen besser waren als eine; und verfügte Netscape über das notwendige Fachwissen, um eine neue Sprache zu entwickeln?“
SEE: Programmiersprachen: Developers reveal what they love and loathe, and what pays best
Ein weiteres wichtiges Zitat in dem Papier unterstreicht Microsofts radikal andere Herangehensweise an proprietäre und Open-Source-Software im Jahr 2000 im Kontext einer „Internet-Flutwelle“, die Gates kommen sah und die damals von Netscape dominiert wurde.
„Microsoft hatte mit dem Internet Explorer einen Marktanteil von über 90 % gewonnen und erreicht. Es hatte wenig Interesse daran, die Web-Programmierplattform, über die es keine eigene Kontrolle hatte, weiterzuentwickeln“, schreiben die beiden.
„Intern wurden die Ressourcen von der Verbesserung offener Browser-Technologien wie ECMAScript auf die Entwicklung proprietärer Microsoft-Technologien wie das Windows Presentation Framework umgelenkt, von denen man hoffte, dass sie offene Web-Technologien letztendlich überflüssig machen und verdrängen würden.
„Im Bereich der Programmiersprachen für .NET konzentrierte man sich auf C# und VisualBasic.NET. In diesem Zusammenhang war JScript.NET nur insofern relevant, als es JavaScript-Programmierern die Migration auf die .NET-Plattform ermöglichte.“