Kieran PottsBlog

Should we rebrand JavaScript?

There are several problems with the JavaScript name. Is it time to rebrand JavaScript? If so, what should we call it?

An interesting question was asked recently in LinkedIn's JavaScript group:

Does JavaScript need to be renamed?

The question really got me thinking.

There's no doubt there are problems with JavaScript's branding:

An unofficial, community-made logo for JavaScript.
Source: github.com/voodootikigod/logo.js

But for me, the big problem with the name JavaScript is its fuzzy scope. If a computer program is documented as having been written in JavaScript, that does not tell me everything I need to know to run the program. I do not know:

The confusion is demonstrated by the difficulty of consuming third party libraries. Browse GitHub for open source JavaScript packages that solve a particular problem, and for each solution you must dig deep into the README or the package.json file to discover if that particular JavaScript package is compatible with your own JavaScript application. (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.)

Rebranding JavaScript might help to clear up all this confusion.

A New Name for JavaScript

If we did rebrand JavaScript, what would we call it?

JavaScript has already had lots of names. Brendan Eich — who designed and implemented the first version of the language — had used the codename "Mocha" to refer to his project, but the marketing boffins at Netscape called it LiveScript when it was first shipped in an early beta of the Navigator 2.0 browser, before settling on the name JavaScript for the final public release at the end of 1995 — apparently in an attempt to piggyback on the popularity of Java, an entirely unrelated language.

Alternative implementations of the language were called JScript (Microsoft's version for its Internet Explorer browser) and ActionScript (Adobe's version). And various dialects of JavaScript that have enjoyed their time in the sun over the years include CoffeeScript and, today, TypeScript.

I think Eich was on the right track 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.

But my personal preference is to rename JavaScript to, simply, JS.

Most people refer to JavaScript by its acronym, anyway. It matches the official file extension. And we could turn that ubiquitous black-on-yellow community logo into the official emblem and not have to remake all our merchandise.

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.

And perhaps there could be a ServerJS standard that specifies additional APIs that are expected to be provided by server-side JavaScript runtimes such as Node.js.

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?