“ES7” - Incorrect Name for JavaScript Development Plans

Original author: Jay Phelps
  • Transfer


I am not the first and not the last to tell you this, but the ES2016 (or ES7) standard has already been approved, and does not include those functions that are said to be “Will be in ES7”.
It's time to finish mentioning ES7 in the sense of “various community-proposed features that might someday be brought into the standard.”


Let's define some terms in tl; dr style:

  • ES = ECMAScript = specifications that JavaScript implements.
  • TC39 = people who write these specifications.


How did we get to this


The problem is clear. When the news came out that an update to JavaScript was finally coming out, everyone was shocked. But to understand the process of adopting a new standard, it is important to know a few things.

The first update changed several names: ES.next, Harmony, ES6, and finally Es2015. Such a frequent change is understandable - ES2015 was preparing to release 4 years. In the process of preparation, the scope of the standard has changed. Ultimately, they decided to release a new standard every year, instead of constantly modifying the yet to be released.
And instead of the names ES6, ES7, ES8, etc. TC39 decided to release releases with the year number: ES2015, ES2016, ES2017. Theoretically, this greatly reduces the pressure on the TC39 - there is always a standard for next year to include what we did not have time for. In addition, the regular release of updates allows browsers to better support new standards - you can always plan their release, implementation progress and support. And most important: each subsequent standard will not be large in volume (with the exception of ES2015).

We know what to call them, now what?


The logical question is how to name those opportunities that were proposed, but have not yet reached the final text of the standard? Personally, I think that it is better to call them "proposed functions", because for a wide range of developers it is always useful to understand at what stage of adoption these or other opportunities are.

Stages


Together with the new specification of the cycle and the name of the main release, the “stage" process for individual functions came . All changes and innovations now go through stages from zero to four. It is very important to understand that the status of the stage-0 function essentially means “not rejected right now” (a scarecrow), and stage-4 indicates the final version of the function or revisions, which are completely ready for inclusion in this year’s specification. It is also important to understand that an innovation can be completely rejected at any stage, even at 4. It doesn’t matter how many people and communities refer to it and use it with transpilers or polyphiles - no one can influence this process , regardless of position and authority .
Since we still have a transition period, it should be noted that the functions you are talking about or writing about are still dreams and wishes. Knowing what specific stage of this function you are writing about is extremely necessary for those who will read and use your Articles. Let's say you describe how the X stage-0 function works and all this stuff may not be true for the X function when it reaches stage-4 or is included in the standard.

For example, "stage-1" decorators have changed significantly compared to the "stage-0" version.

Conclusion


Please stop calling "ES7" all unrealized JavaScript functions.

Also popular now: