📜 ⬆️ ⬇️

“ES7” is the wrong name for JavaScript development plans.



I am not the first and not the last who will tell you about this, but the ES2016 (or ES7) standard has already been approved, and does not include those functions that are being said about - “Will be in ES7”.
It’s time to end mentioning ES7 in the sense of “the different community-proposed features that might be included in the standard someday.”


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


How have we come to this?


The problem is clear. When news emerged that an update to JavaScript was finally released, 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 has been preparing for release for 4 years. In the process of preparation, the scale of the standard changed. Ultimately, it was decided to issue a new standard every year, instead of constantly refining the not yet released.
And instead of names ES6, ES7, ES8, etc. TC39 decided to release releases with the number of the year: ES2015, ES2016, ES2017. Theoretically, this greatly reduces the pressure on the TC39 - there is always a standard next year to include in it what was not in time for this. In addition, the regular release of updates allows browsers to better support the new standards - you can always schedule their release, progress and support. And the most important: each subsequent standard will not be large in volume (except for ES2015).

We know how to call them, what now?


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

Stages


Along with the new specification of the cycle and the name of the main release, the “stage” process came for individual functions. All changes and innovations are now going 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” (aka the effigy), and stage-4 denotes the final version of the function or revision, completely ready for inclusion in the specification of this year. It is also important to understand that innovation can be completely rejected at any stage, even at 4. It does not 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 or authority .
Since we still have a certain transitional period, it should be indicated that the functions you are talking about or writing about are still dreams and wishes. Knowing about the specific stage of this function you are writing is extremely necessary for those who will read and use your Articles. Suppose you describe how the X stage-0 function works and all this material 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.

Source: https://habr.com/ru/post/279177/


All Articles