Hungry Web Developer Podcast

play button
00:00 / 00:00

Javascript Features To Use in 2021




In this episode we dive into the history of Javascript aka ECMAScript and its latest features since ES6.

A brief history of Javascript

JavaScript was created in 10 days by Brendan Eich in 1995. In the early days of the web, it was the wild west with companies adding features as they saw fit. Coming together rarely to agree on how the language should function. Eventually, this led to a long period of stagnation in the language that wasn't fixed until 2015 with the release of the ES6.

So what is Javascript and what isn't

You probably have heard the word ECMAScript. ECMAScript is the specification against which JavaScript engines are implemented. By itself, ECMAScript defines a minimal API that each implementation needs to follow. Typically these are your basic programming language features such as loops, variable scope, etc. The rest of what is typically thought of as JavaScript are actually browser APIs which you can learn more about in this blog post

How does adding new features to Javascript Work?

There is a committee in charge of guiding the development of ECMAScript called the TC39. That committee follows the following process when considering new JavaScript features.

Fun note: This process came about since the release of ES6 was massive! So rather than big monolithic releases, we now add small incremental features.

The process

  1. Straw man: A way of an approved member proposing a feature. In summary, you can think of this step as sharing a shower thought and seeing if anyone is interested.
  2. Proposal: A formal proposal. Needs to be championed by a member of TC39.
  3. Draft: The first working version of the feature. It should be pretty much complete. Usually, you can start trying features out via babel at this point.
  4. Candidate: The proposal is mainly finished and receiving feedback. Needs to have at least two implementations.
  5. Finished: The proposal is ready to be included in the standard. At this point, at least two implementations must exist, and tests must also exist.

Social Media

Download: javascript_features.mp3