Skip to main content

Command Palette

Search for a command to run...

Why JavaScript?

Updated
3 min read
Why JavaScript?
G

Software developer with experience in the JS ecosystem. Self-learner, curious, open individual. Committed to learning and growth. Queer advocate. Here to share my views and celebrate my growth. Come with!

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 !

learning javascript with Grace

Part 1 of 1

Notes on JavaScript from the perspective of a non-CS graduate.

More from this blog

Grace

2 posts

Software developer with experience in the JS ecosystem. Self-learner, curious, open individual. Committed to learning and growth. Queer advocate. Here to share and celebrate my growth. Come with!