T1
JavaScript Announced — Born of a Ten-Day Prototype

Metadata
- Date
- Decade
- 1990s
- Tier
- T1
- Sources
- 05
- Connections
- 05
JavaScript is the scripting language for web pages that Brendan Eich designed and implemented at Netscape Communications in May 1995. The first implementation was prototyped in ten contiguous days that month. It first reached the public in the September 1995 beta of Netscape Navigator 2.0 under the name LiveScript, and on 4 December 1995 Netscape and Sun Microsystems announced it as JavaScript in a joint press release. The production Navigator 2.0, carrying JavaScript 1.0, shipped in March 1996.
How old JavaScript is depends on what you count. This article follows the year in which the language changed its name three times, drawing mainly on JavaScript: The First 20 Years, the paper Eich and Allen Wirfs-Brock wrote for ACM's History of Programming Languages conference in 2020.
| Date | Event | Name |
|---|---|---|
| 3 April 1995 | Eich joins Netscape | — |
| May 1995 | First implementation prototyped in ten days | Mocha |
| August 1995 | Navigator 2.0 feature freeze | Mocha |
| September 1995 | Public in the first Navigator 2.0 beta | LiveScript |
| 4 December 1995 | Joint Netscape–Sun announcement | JavaScript |
| March 1996 | Production Navigator 2.0 ships JavaScript 1.0 | JavaScript |
| June 1997 | Ecma General Assembly approves ECMA-262, 1st edition | ECMAScript |
Hired to put Scheme in the browser
According to the paper, Eich was recruited with the bait of "come and do Scheme in the browser", and joined Netscape on 3 April 1995. What he found was more complicated. Netscape expected an attack from Microsoft, and was negotiating with Sun to build Java into Navigator 2. On 23 May, at Sun's public announcement of Java, Netscape announced its intent to license it.
The candidates for a page-scripting language included Scheme; Perl, Python and Tcl; and Microsoft's Visual Basic. Business interests or time to market ruled each of them out. The only approach senior managers at Netscape and Sun — Marc Andreessen and Sun's Bill Joy among them — considered viable was to design a new "little language" to complement Java.
There were doubters. Wasn't Java enough? Could anyone explain why two languages were better than one? Could Netscape build a language at all? The first two objections were answered by pointing at Microsoft, which sold Visual C++ to professional programmers and Visual Basic to the designers and part-timers who glued components together. Andreessen proposed the code name Mocha. The last objection — could it be done? — became Eich's assignment.
The ten-day prototype
With the Java announcements imminent, Eich wrote the first Mocha implementation in ten contiguous days in May 1995. There is no record of the exact dates; Eich believes it was about 6 to 15 May. He worked on a Silicon Graphics Indy, with a hand-written lexer and a recursive-descent parser that emitted bytecode for a simple, slow interpreter.
The constraints were clear. Management at both companies required that Mocha "look like Java", explicitly ruling out anything like BASIC. There would be no classes, because they would take too long and risk competing with Java. Within those limits Eich chose a dynamic object model built on delegation to a prototype, out of admiration for Self, and kept Lisp-like first-class functions. Methods and event handlers were unified by borrowing the this keyword from Java, which had it from C++.
| Source | What JavaScript kept |
|---|---|
| Java (and C++ before it) | The look of the syntax, the this keyword |
| Self | Objects built by delegation to a prototype, without classes |
| Scheme | First-class functions passed around as values |
At the end of the ten days the prototype was demonstrated to Netscape's full engineering staff, and it was a success — which, the paper says, led to excessive optimism about shipping a complete version in the September beta. Over the summer Eich integrated Mocha into the browser, designed the interfaces through which scripts manipulate pages, and handled bug reports from internal users. Navigator 2.0 froze its features in August, and whatever was working then became JavaScript 1.0. The paper is frank that 1.0 fell short of the intended design and had problematic edge cases.
LiveScript, then JavaScript
The language first went public in September 1995, in the first beta of Navigator 2.0, as LiveScript. On 4 December Netscape and Sun issued a joint release announcing "JavaScript, an open, cross-platform object scripting language". It was endorsed by 28 companies, including America Online, Apple, Borland, Hewlett-Packard, Oracle and Toshiba, and was positioned as a complement to Java for easy online application development.
The paper notes that the two companies were trying to forge a strong brand link between languages whose designs were only superficially similar, and that the similar names have caused confusion ever since. The name was part of Netscape's strategic partnership with Sun: Sun trademarked "JavaScript" and licensed it to Netscape. At the time of the paper, the registration was owned by Oracle.
Standardisation and ECMAScript
In 1996 Microsoft shipped its own compatible implementation, JScript, in Internet Explorer 3. Compatibility needed a real specification. Netscape took the language to Ecma International, and the new technical committee TC39 held its organising meeting in November 1996.
The name was a problem again. Sun confirmed it would not license "JavaScript" to Ecma, and Netscape would not formally transfer "LiveScript". The placeholder ECMAScript became permanent. In June 1997 the Ecma General Assembly agreed to publish ECMA-262, 1st edition; after minor editorial changes it was released for publication that September.
What came after
JavaScript 1.1, in Netscape 3.0 in August 1996, still consisted mostly of code from the ten-day prototype. Eich then worked from home for two weeks, redesigning and reimplementing the core of the engine and replacing reference counting with a mark-and-sweep garbage collector. The new engine replaced Mocha, and his colleague Chris Houck named it SpiderMonkey. When Google released Chrome in September 2008, it carried V8, a JavaScript engine led by Lars Bak, who, the paper says, built on what he had learned developing Smalltalk, Self and Java virtual machines. Chrome became the new baseline for JavaScript performance.
Treating functions as values connects JavaScript to functional programming; its class-free object model is an unusual branch of object orientation. Its place among its contemporaries is on the programming-languages timeline, and the browser wars it was born into on the Internet and web timeline and under Netscape.
Questions this page answers
- When was JavaScript created, and by whom?
- Brendan Eich designed and implemented it at Netscape in May 1995. The first implementation was prototyped in ten contiguous days that May; it went public as LiveScript in the September beta of Netscape Navigator 2.0 and was announced as JavaScript on 4 December 1995. The production Navigator 2.0, with JavaScript 1.0, followed in March 1996.
- Was JavaScript really written in ten days?
- The ten days produced the May 1995 prototype. No record of the exact dates survives; Eich believes it was about 6–15 May. Integration into Netscape and productisation took the rest of the summer, and what worked at the August feature freeze became the feature set of JavaScript 1.0.
- How is JavaScript related to Java?
- There is no technical descent. Netscape and Sun management required that it look like Java, but underneath it is a different language. The name came from the companies' partnership: Sun registered the JavaScript trademark and licensed it to Netscape. The registration is now held by Oracle.
- What is ECMAScript?
- It is the name of the language as standardised by Ecma International in ECMA-262. Because Sun would not license the JavaScript trademark to the standards body, the placeholder name ECMAScript stuck. The 1st edition was approved by the Ecma General Assembly in June 1997.
Sources
Eich's start date, the ten-day prototype and its dates, the Mocha name, the LiveScript beta, the 4 December release (full text in Appendix F), the trademark, TC39 and ECMA-262 approval, and V8
TertiaryJavaScript — Wikipedia
Last updated: