Skip to content

✨ ECMAScript / JavaScript#6

Merged
ctcpip merged 2 commits intomainfrom
es/js
May 7, 2026
Merged

✨ ECMAScript / JavaScript#6
ctcpip merged 2 commits intomainfrom
es/js

Conversation

@ctcpip
Copy link
Copy Markdown
Member

@ctcpip ctcpip commented May 6, 2026

No description provided.

Copy link
Copy Markdown
Member

@ljharb ljharb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's erroring when i try to add this suggestion:

Historically, the first implementation of what became JavaScript was called "Mocha", and then "LiveScript", which was later rewritten and became SpiderMonkey.

@ctcpip
Copy link
Copy Markdown
Member Author

ctcpip commented May 6, 2026

@ljharb Thanks for the suggestion, but I think it is slightly inaccurate as you are conflating the impl/engine with the language name. Mocha was the original impl (aka engine) name. The language shipped in a beta as LiveScript and was later changed to JavaScript. The implementation itself was not called LiveScript.

@ljharb
Copy link
Copy Markdown
Member

ljharb commented May 6, 2026

Mocha was the original language codename as well.

@ctcpip
Copy link
Copy Markdown
Member Author

ctcpip commented May 6, 2026

True, it was the working name for the project. This is a little sticky because we want the FAQ answer to be clear and accurate but without being too wordy.

@ctcpip
Copy link
Copy Markdown
Member Author

ctcpip commented May 6, 2026

indeed from AWB's book glossary:

Mocha n. the code name of the language that became JavaScript; also, the name of Netscape’s original JavaScript engine.

@jridgewell
Copy link
Copy Markdown
Member

I've also commonly used JavaScript to refer to core ECMAScript + Web APIs.

@ctcpip
Copy link
Copy Markdown
Member Author

ctcpip commented May 6, 2026

@ljharb I updated the last paragraph to something I think strikes a good balance. What do you think?

@ctcpip
Copy link
Copy Markdown
Member Author

ctcpip commented May 6, 2026

I've also commonly used JavaScript to refer to core ECMAScript + Web APIs.

@jridgewell Yeah, I thought about perhaps mentioning this.

from the conversation that inspired this PR:

the root of that is that in many (most?) environments that run JavaScript, you can do many things that are outside the scope of the actual JavaScript language itself.  so people say "do x in JavaScript" where x is not actually available in ECMAScript, but is provided by the environment, e.g. web browser

maybe good for a follow up, perhaps maybe its own question

@ctcpip
Copy link
Copy Markdown
Member Author

ctcpip commented May 6, 2026

the trouble is I don't think it's helpful to encourage that generalization, e.g. that JavaScript necessarily includes web platform APIs

@ljharb
Copy link
Copy Markdown
Member

ljharb commented May 6, 2026

I agree; web APIs are definitely not an inherent part of JavaScript.

@ctcpip ctcpip merged commit 743e661 into main May 7, 2026
2 checks passed
@ctcpip ctcpip deleted the es/js branch May 7, 2026 00:05
Comment thread README.md

"JavaScript" is not an implementation or engine. Examples of implementations include SpiderMonkey in Firefox, V8 in Chrome, and JavaScriptCore in Safari.

Historically, what became JavaScript began at Netscape under the working name "Mocha". The language was later called "LiveScript" in a Netscape Navigator beta, then renamed "JavaScript" for release. The original Mocha implementation was later rewritten and became SpiderMonkey.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tried leaving this feedback yesterday, but GitHub was broken (again):

This isn't related enough to the question. I'd remove it.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's very deliberately there because the idea that "ES is the spec and JS is the impl" is an often-repeated idea that is mostly inaccurate. (it is actually the main reason I added this question to the FAQ.) the historical context sheds light on the root of how/why that started

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants