Zum Inhalt springen

Mocha, LiveScript, JavaScript: The Name That Confused a Generation

Zusammenfassung

JavaScript has been called three different names. It began as “Mocha” (the internal Netscape codename), became “LiveScript” (its public name in beta), and was renamed “JavaScript” in December 1995 as part of a marketing agreement between Netscape and Sun Microsystems — about seven weeks before Sun shipped Java 1.0 (January 23, 1996). The name change was purely commercial. Java and JavaScript have approximately the same relationship as “car” and “carpet.” The naming decision created thirty years of confusion and is widely cited as one of the worst product naming choices in technology history.

The Three Names

Mocha: Brendan Eich’s internal codename during the ten-day development sprint in May 1995. Named for coffee — a counterpart to Java (also coffee). The name never appeared in any public release.

LiveScript: The name used in early Netscape Navigator 2.0 beta releases in 1995. This name described what the language did (scripts that were live, i.e., ran dynamically) without creating a false association. It was accurate and confusing to nobody.

JavaScript: The name announced jointly by Netscape and Sun on December 4, 1995. The press release described JavaScript as “complementing” Java — a formulation that implied a close relationship. The actual relationship was superficial: both languages used C-style syntax with curly braces and semicolons, and both could run on Netscape-provided virtual machines. The underlying models (JavaScript: prototype-based, dynamically typed, interpreted; Java: class-based, statically typed, compiled to bytecode) were essentially different.

Why It Happened

Netscape and Sun had a strategic partnership. Netscape was bundling the Java Virtual Machine in Navigator 2.0 — users could run Java applets in the browser. Sun was providing Java; Netscape was providing distribution. The agreement included a naming arrangement: the scripting language would be called JavaScript, presenting a unified “Java on the web” message.

For Sun, the arrangement made Java appear more pervasive than it was. For Netscape, the Java association provided credibility for a language that had been written in ten days and was not yet proven. For developers, the association produced lasting confusion about which language to use, what the relationship between them was, and why they behaved so differently.

The Long Aftermath

The name confusion has practical consequences. Job postings have asked for “JavaScript and Java experience” treating them as similar skills. Recruiters have filtered Java developers into JavaScript roles and vice versa. Textbooks have described JavaScript as “a simplified version of Java.” None of these is accurate.

Brendan Eich has noted the irony that the name change, made to make the language seem more respectable by association with an established language, produced a permanent stigma. Java was a serious language for serious programmers; JavaScript was “the toy language that kind of looks like Java.” The name that was supposed to confer prestige instead conferred dismissal — until JavaScript’s actual capabilities became too obvious to dismiss, by which time the name was too embedded to change.

The ECMAScript standard (the official specification of the language, maintained by Ecma International as ECMA-262) uses the name “ECMAScript” rather than “JavaScript” specifically to avoid the trademark issue — JavaScript is a trademark of Oracle (acquired via Sun). Every browser’s JavaScript engine implements ECMAScript; “JavaScript” is the colloquial name for what is officially a different trademark.


📚 Sources