This content originally appeared on Bits and Pieces - Medium and was authored by Keerti Kotaru
Making changes to JavaScript language is complex. The features are implemented by various browsers including Google Chrome, Firefox, Microsoft Edge, Apple Safari etc. Ensuring security, usability and stability across platforms is complex.
How ECMA International and the TC39 review and process new features and updates to the JavaScript programming language
JavaScript is not owned by a single organization or an entity. Then how does the language continue to evolve and keep up with changes to the technology? Moreover, there are a variety of browsers (and JavaScript engines) implementing the language. A change needs to be updated by all the browsers, which is a challenge considering they are often developed and maintained by a variety of organizations.
Introduction to ECMA
ECMA (European Computer Manufacturers Association) is an institution that facilitates Information Technology and Consumer Electronics standards. The scope of standardization includes software, hardware, storage, electronics etc. Few examples for areas of the work include programming languages, NFC (Near Field Communication), IoT and wearable technologies, describe environmental attributes for consumer electronics and many more.
TC39
TC39, Technical Committee number 39 is part of ECMA. They are responsible for standardizing and maintaining JavaScript. It includes developers, academics collaborating with the community.
The committee develops and evolves a specification named ECMAScript (ES for short). It is implemented by various browsers. The versions ES5, ES2015 (also known as ES6) are often popular.
A new version of the ECMAScript is released every year in the June month’s time frame. The latest version of the specification is ES2021, which was published in June 2021.
TC39 Process
How are the new features selected to be added to the language? TC39 defined the following process for identifying, driving consensus and adding features to the ECMAScript specification. Finished specifications are implemented by the browsers.
Stage 0: Strawperson
An idea for a new specification or a change to an existing specification is input to the system. It need not be a formal proposal yet; It could just be a discussion. The idea need not have an acceptance criteria.
Stage 1: Proposal
At this stage idea turns in to a formal proposal. An outline for the problem and a solution are created. Examples and use cases for the new specification are defined.
This stage not only describes the shape of a solution, but also lists potential problems.
At this stage, a public repository is created for the specification, typically on GitHub.
Stage 2: Draft
At this stage, an initial specification is created. Semantics and syntax are defined. An API is created.
Stage 3: Candidate
At this stage, design work is completed. The committee expects feedback from implementation. Most browsers implement the feature at this stage.
Stage 4: Finished
Final semantics are approved. At this stage only critical and editorial changes are accepted. The specification is ready to be formally included in the ES (ECMAScript) standard.
GitHub Repository for TC39 Proposals
Please find a TC39 GitHub repository and useful links below,
- A list of finished proposals — link
- A list of changes planned to be presented to TC39; In other words, a list of Stage 0 ideas — link
- A list of stage 1 proposals that the committee (TC39) is interested in spending time in finding solutions for— link
- A list of abandoned or rejected proposals — link
Resources and links
ECMA International — Areas of work
CanIUse.com for browser support
ECMA International Building image
Unlock 10x development with independent components
Building monolithic apps means all your code is internal and is not useful anywhere else. It just serves this one project. And as you scale to more code and people, development becomes slow and painful as everyone works in one codebase and on the same version.
But what if you build independent components first, and then use them to build any number of projects? You could accelerate and scale modern development 10x.
OSS Tools like Bit offer a powerful developer experience for building independent components and composing modular applications. Many teams start by building their Design Systems or Micro Frontends, through independent components. Give it a try →
Find out more about me at codevenkey.com
How New Features Get Added to JavaScript was originally published in Bits and Pieces on Medium, where people are continuing the conversation by highlighting and responding to this story.
This content originally appeared on Bits and Pieces - Medium and was authored by Keerti Kotaru
Keerti Kotaru | Sciencx (2022-02-07T19:43:43+00:00) How New Features Get Added to JavaScript. Retrieved from https://www.scien.cx/2022/02/07/how-new-features-get-added-to-javascript/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.