The question really got me thinking.
1. The official specification for the language is actually called ECMAScript – a somewhat clumsy bit of branding on the part of the standards organisation that oversees the language's specification, Ecma International.
- What host APIs – language extensions added by the runtime environment – the program depends on. Is the program intended to run "client-side" (in a web browser), "server-side" (in the Node.js runtime environment), or is it universal?
(The problem is made worse by the current period of transition between module systems: from community-derived conventions such as CommonJS, AMD and UMD, towards ECMAScript's standard module notation.)
I think Eich was right all along. Mocha is a great name. In the software space, this name conflicts only with the Mocha test framework for Node.js and a legacy decompiler for Java.
Over time, the origins of the JS name would be largely forgotten, in the same way most PHP developers couldn't tell you what PHP stands for.
Flavours and Versions
What would be better still is to come up with a standard convention to refer to the extended APIs made available to JS programs by particular runtime environments for the purpose of communication with the host system.
For example, if today's ECMAScript becomes JS, then something like WebJS could become the official name for the JS superset that is supported in web browsers, as specified by the World Wide Web Consortium.
Finally, ECMAScript's yearly release cycle and versioning convention is hugely convenient, and this should be extended to all flavours of the newly rebranded JS. Thus, WebJS 2020 would refer to a snapshot of ECMAScript plus all the web APIs that are standardised as of the year 2020.
What do you think? Comment on Reddit, please.
Update 2019-11-10: The JS Party podcast devoted episode 101 to this idea.
Update 2020-07-06: Separately, a similar question posed on Twitter became a rather lively thread in early July 2020.