«ES7» — неправильное название для планов по развитию JavaScript

в 7:32, , рубрики: es2016, es7, javascript, Блог компании Voximplant, Программирование, разработка, метки: ,

«ES7» — неправильное название для планов по развитию JavaScript - 1

Я не первый и не последний, кто вам об этом скажет, но стандарт ES2016 (или ES7) уже утвержден, и не включает в себя те функции, про которые говорят — «Будет в ES7».
Пора закончить упоминать ES7 в смысле “разные, предложенные сообществом функции, которые возможно когда-нибудь будут внесены в стандарт”.

Давайте определим некоторые термины в tl;dr стиле:

  • ES = ECMAScript = спецификации, которые JavaScript имплементирует.
  • TC39 = люди, которые пишут эти спецификации.

Как мы до такого докатились

Проблема понятна. Когда появились новости о том, что наконец-то выйдет обновление к JavaScript, все были шокированы. Но для понимания процесса принятия нового стандарта важно знать несколько вещей.

Первое обновление сменило несколько названий: ES.next, Harmony, ES6, и наконец Es2015. Такая частая смена понятна — ES2015 готовился к выпуску 4 года. В процессе подготовки масштабы стандарта менялись. В конечном счете приняли решение выпускать новый стандарт каждый год, вместо того чтобы постоянно дорабатывать еще не выпущенный.
И вместо названий ES6, ES7, ES8, и т.п. TC39 решили выпускать релизы с номером года: ES2015, ES2016, ES2017. Теоретически, это сильно снижает давление на TC39 – всегда есть стандарт следующего года, чтобы включить в него то, что не успели в этом. Кроме того, регулярный выпуск обновлений позволяет браузерам лучше поддерживать новые стандарты – всегда можно запланировать их выпуск, ход реализации и поддержку. И самое важное: каждый последующий стандарт не будет большим по объему (за исключением ES2015).

Мы знаем, как их называть, что теперь?

Логичный вопрос – как назвать те возможности, которые были предложены, но еще не попали в финальный текст стандарта? Лично я считаю, что лучше называть их «предложенные функции», ведь для широкого круга разработчиков всегда полезно понимать, на какой стадии принятия находятся те или иные возможности.

Стадии

Вместе с новой спецификацией цикла и названия основного релиза, пришел «stage» процесс для отдельных функций. Все изменения и нововведения теперь проходят стадии от нуля до четырех. Очень важно понимать, что статус функции stage-0 по сути означает «не отвергнуто прямо сейчас» (ака чучело), а stage-4 обозначает финальную версию функции или правки, полностью готовые для включения в спецификацию этого года. Еще важно понимать, что нововведение может быть полностью отвергнуто на любой стадии, даже на 4. Не важно, сколько людей и сообществ ссылаются на него и используют с помощью транспайлеров или полифилов — никто не может повлиять на этот процесс вне зависимости от положения и авторитета.
Так как у нас до сих пор есть некий переходный период, следует обозначать, что функции о которых вы говорите или пишите, — пока еще мечты и пожелания. Знать о какой конкретно стадии данной функции вы пишете, крайне необходимо тем, кто будет читать и использовать ваши Статьи. Допустим, вы описываете как работает функция X stage-0 и весь этот материал может быть не верен для функции X, когда она достигнет stage-4 или будет включена в стандарт.

Например, «stage-1» декораторы существенно изменились по сравнению со «stage-0» версией.

Вывод

Пожалуйста, хватит называть «ES7» все нереализованные JavaScript функции.

Автор: Voximplant

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js