What is JavaScript?



The History:

JavaScript is a programming language written for the Netscape Navigator Browser by Brendan Eich in 1995 (ECMA International, 2021), who later went on to co-found Mozilla in 2003 (Eich. B, 2021). 

Initially named "Mocha" during it's development, the language became known as JavaScript sooner after due to it's resemblance to Oracle Corporation's Java language (Severance. C, 2012). It was standardised by ECMA International, a non-profit standards organisation for information and communication systems, as ECMA-262 in June 1997 and given the name ECMAScript (often shortened to ES) as it also incorporated technology from JScript, a legacy dialect from Microsoft (ECMA International, 2021).

Today, ECMA-262 is on it's 12th edition and continues to receive annual updates thanks to it's technical committee, TC-39: a group of collaborators including developers, implementers, academics and more (TS-39, 2021).

How It Works:

According to Fireship (2021), JavaScript is often described as a: “high-level, single-threaded, garbage-collected, interpreted (or just-in-time compiled), prototype-based, multi-paradigm, dynamic language with a non-blocking event loop”. Each term gives a useful description on how the language works, so lets break down each one. 

High-Level

This refers to the level of abstraction of a language that is how close to the hardware it operates.


JavaScript is a high level language and contains many high level features such as dynamic typing and prototype inheritance which we will get into. 

The largest benefit from being a high level language is its simplicity and flexibility. Other similarly high level languages include Python and C#.

Single-Threaded, Asynchronous

Simply put, a single-threaded language is only capable of executing one instruction at a time, it only has on call stack, whatever is the top of that stack is run first.  This would make JavaScript a "synchronous" language then right? While that is True, JavaScript can also be Asynchronous and run instructions later thanks to a browser API and callback queue, a promise to run that instruction later.

Garbage-Collected

Interpreted

Prototype Based

Multi-Paradigm

Dynamic

Non-blocking Even Loop


Comments

Popular posts from this blog

Building a website for sending WOL requests