JavaScript: Skeletons in the Closet
Allen Wirfs-Brock @awbjs www.wirfs-brock.com/allen allen@wirfs-brock.com
JavaScript: Skeletons in the Closet Allen Wirfs-Brock @awbjs - - PowerPoint PPT Presentation
JavaScript: Skeletons in the Closet Allen Wirfs-Brock @awbjs www.wirfs-brock.com/allen allen@wirfs-brock.com JavaScript: the worlds most widely used programming language Stack Overflow 2019 Developer Survey: 69.7% of professional
Allen Wirfs-Brock @awbjs www.wirfs-brock.com/allen allen@wirfs-brock.com
JavaScript: the world’s most widely used programming language
1995
1990 1991 1992 1993 1994
Tim Berners-Lee’s first Web browser is completed
25 December, 1990
Tim Berners-Lee public announcement of the “WorldWideWeb”
7 August, 1991
Alpha release of Mosaic (Unix)
June 1993
Mosaic released for Microsoft Windows
11 November, 1993
Marc Andreessen and Eric Bina start development of NCSA Mosaic browser
December 1992
Production release of Netscape’s browser (Navigator 1.0)
December 15 1994
Jim Clark and Marc Andreessen found Netscape Communications Corp.
April 1994
First public beta
browser
September 1994
JavaScript Prehistory
01 02 03 04 05 06 07 08 09 10 11 12
Brendan Eich joins Netscape
April 1995
Java alpha release
April 1995
Netscape recruiting Brendan Eich to "Do Scheme in browser" Netscape strategizing about Scripting languages and Java Sun guerrilla marketing of Java
1995: JavaScript Year 0—Getting Started
Netscape announces licensing Java for browser
23 May
“Come put Scheme into the browser” ... but, does Netscape need scripting?
Marc Andreessen Brendan Eich Bill Joy
April 1995 Planning for Netscape 2 beta in September 1995 Assuming Netscape would license Java Microsoft is coming
May 6-15(??), 1996
– Parser – Bytecode interpreter – Decompiler – Basic library – Browser-hosted REPL interface
01 02 03 04 05 06 07 08 09 10 11 12
Mocha demo
16? May
Netscape 2.0 beta 1 LiveScript & Java
18 Sep
Netscape/Sun JavaScript PR
4 Dec
Mocha prototype created in 10 days
6 May - 15 May
Eich refining Mocha and developing DOM0 Eich fixing beta Mocha/DOM bugs+Livewire integration
01 02 03 04 05 06 07 08 09 10 11 12
Mocha demo
16? May
Netscape 2.0 beta 1 LiveScript & Java
18 Sep
Netscape/Sun JavaScript PR
4 Dec
Mocha prototype created in 10 days
6 May - 15 May
Eich refining Mocha and developing DOM0 Eich fixing beta Mocha/DOM bugs+Livewire integration
Bill Gates Internet Tidal Wave memo
May 1995
Internet Explorer 1.0 ships
16 Aug
IE 2.0 ships for Win95
22 Nov
Microsoft announces Visual Basic Scripting intent
5 Dec
Microsoft explores reverse engineering LiveScript
functions and built-in constructors
Brendan Eich 2016: “Sun (represented by Bill Joy) would not have accepted [in 1995] classes, as in Java’s nominal OO types, in JS. They wanted a sidekick language that did not include too much from Java itself.”
https://www.quora.com/Why-didnt-JavaScript-adopt-the-object-oriented-model-adopted-by-C++-Java-when-it-was-designed/answer/Richard-Eng-1/ comment/25744373#
Also coercion of empty string to 0 provided a default numeric value for empty fields of HTML forms.
(Shipped August 1996)
prototype properties.
reverse, sort methods
methods
MAX_VALUE, etc.
1995 1997
01 02 03 04 05 06 07 08 09 10 11 12
Netscape 2.0 and Livewire Server ship with JavaScript 1.0
18 Mar
Java JDK 1.0 release
January 1996
Internet Explorer 3.0 beta1 with JScript and VBScript
29 May
IE 3.0 ships with JScript 1.0
13 Aug
Brendan Eich works completing Mocha as JavaScript 1.1 Netscape 3.0 ships with JavaScript 1.1
19 Aug December 1996
Netscape 4 beta 1 with SpiderMonkey Ecma TC39 JavaScript standardization startup meeting
21 Nov
Brendan Eich disappears for 2 weeks and creates SpiderMonkey/JavaScript 1.2
JavaScript 1996
JScript 2.0
Jan 97
SpiderMonkey/JS1.2 — Brendan’s 2nd Sprint
Beta Dec 1996, Netscape 4 June 1997
Netscape/Sun December 1996 press release1: “Netscape and Sun plan to propose JavaScript to the W3 Consortium (W3C) and the Internet Engineering Task Force (IETF) as an open Internet scripting language standard.” Robert Cailliau2: “I was convinced that we needed to build-in a programming language, but the developers, Tim [Berners- Lee] first, were very much opposed. It had to remain completely declarative.”
1: https://web.archive.org/web/19970614002809/http://home.netscape.com:80/newsref/pr/
newsrelease67.html
2: http://en.wikinews.org/wiki/Wikinews_interviews_World_Wide_Web_co-inventor_Robert_Cailliau
Attendees Ecma International TC39 organizing meeting November 21-22, 1996
Key decisions at 1
st TC39 meeting
Shon Katzenberger Guy Steele Brendan Eich
What shall we call this langauge we are trying to standardize?
– CoolScript, CoScript, Descartes,DeScript, DynaScript, Escript, EZScript, InfoScript, JScript JustScript, JSL, LiveScript, RadScript, ScriptJ, TranScript, W3Script, Wscript,wwwscript, Xpresso/Expresso/ Espresso – TC39: Sun/Netscape please let us use Java/LiveScript
– Sun: nope. Netscape: maybe...nope (May)
Waldemar Horwat , March 1998: “At a bare minimum you should be able to write code that works in ECMAScript 1.0 and 2.0 [ES4]. Full backwards compatibility would be rather painful.”
Sep 2005–Jul 2008 Jun 2002–Dec 2005 Sep 1998–Jul 2003
Microsoft Netscape/AOL
JScript.NET JavaScript 2.0
Macromedia Flash
ActionScript 2&3
1909–2003
Macromedia/Adobe Academic CS Researchers Brendan Eich
ECMAScript 4 (take 2)
2005–2008
lose market share