Why JavaScript?

Table of contents
Why the name?
An openly handled language
Mismatches between JS run in browser and JS specifications
A multi-paradigm language
Backwards compatibility
Forwards compatibility
Resources used for this article
Questions?
JavaScript (JS) was born in 1995 as a mean to start giving lightweight interactivity to the browser.
Why the name?
It was initially called "Mocha", then "LiveScript", but in the end JavaScript was used as a way to market it better to an audience of mostly Java developers. Its official name though is ECMAScript. It's been decided by ECMA, the standards organisation that manages the specification (syntax and behaviour) of the language.
An openly handled language
The TC39 committee (comprised of both browser makers and device makers) votes on the changes for the language through a five-stage process which is entirely open and handled on GitHub here . Technically anyone has a voice on the next evolution of the language but only members of the committee can vote on proposals and changes. The current ECMAScript standard is ECMAScript 2023.
Mismatches between JS run in browser and JS specifications
For the most part, JS specifications decided by the TC39 committee and the actual JS run in browser via JS engines (eg. v8 for Chrome) match but it's not always the case for historical reasons. For example, TC39 planned to add a contains(..) method for Arrays, but it was found that this name conflicted with old JS frameworks still in use on some sites, so they changed the name to a non-conflicting includes(..). As such, sometimes the JS engines will refuse to conform to a specification-dictated change because it would break that web content.
Any known mismatches are detailed out in the Appendix B called "Additional ECMAScript Features for Web Browsers".
A multi-paradigm language
Moving from the assumption that a paradigm is an approach to how best structure code, we can say that JS has a multi-paradigm approach.
Different paradigms widely known and used are:
object-oriented: it organises code in units called classes.
functional: it organises code into functions.
Being JavaScript a very flexible language, it offers the possibility to adopt those approaches line by line.
Backwards compatibility
The JS written in 1995 is still valid today.
Forwards compatibility
Using newer JS in an older JS engine could break a program. For example, f you run a program that uses an ES2019 feature in an engine from 2016, you’re very likely to see the program break and crash. If the issue is related to syntax, it can be solved by transpilers such as Babel, which translates newer JS syntax to older JS syntax.
If the issue is related to a missing API method (meaning a function that communicates with another program) only recently defined, polyfills are used (usually provided by Babel too): they are methods that acts as if the older syntax had that missing API method natively defined.
Resources used for this article
You Don't Know JS Yet - Get Started, Chapter 1 - by Kyle Simpson
Questions?
If you found this article useful or you'd like to suggest improvements such as things that are not clear enough, feel free to reach out on my LinkedIn !
