- PVSM.RU - https://www.pvsm.ru -

Я не первый и не последний, кто вам об этом скажет, но стандарт ES2016 (или ES7) уже утвержден, и не включает в себя те функции, про которые говорят — «Будет в ES7».
Пора закончить упоминать ES7 в смысле “разные, предложенные сообществом функции, которые возможно когда-нибудь будут внесены в стандарт”.
Давайте определим некоторые термины в tl;dr стиле:
Проблема понятна. Когда появились новости о том, что наконец-то выйдет обновление к JavaScript, все были шокированы. Но для понимания процесса принятия нового стандарта важно знать несколько вещей.
Первое обновление сменило несколько названий: ES.next, Harmony, ES6, и наконец Es2015. Такая частая смена понятна — ES2015 готовился к выпуску 4 года. В процессе подготовки масштабы стандарта менялись. В конечном счете приняли решение выпускать новый стандарт каждый год, вместо того чтобы постоянно дорабатывать еще не выпущенный.
И вместо названий ES6, ES7, ES8, и т.п. TC39 решили выпускать релизы с номером года: ES2015, ES2016, ES2017. Теоретически, это сильно снижает давление на TC39 – всегда есть стандарт следующего года, чтобы включить в него то, что не успели в этом. Кроме того, регулярный выпуск обновлений позволяет браузерам лучше поддерживать новые стандарты – всегда можно запланировать их выпуск, ход реализации и поддержку. И самое важное: каждый последующий стандарт не будет большим по объему (за исключением ES2015).
Логичный вопрос – как назвать те возможности, которые были предложены, но еще не попали в финальный текст стандарта? Лично я считаю, что лучше называть их «предложенные функции», ведь для широкого круга разработчиков всегда полезно понимать, на какой стадии принятия находятся те или иные возможности.
Вместе с новой спецификацией цикла и названия основного релиза, пришел «stage» процесс [1] для отдельных функций. Все изменения и нововведения теперь проходят стадии от нуля до четырех. Очень важно понимать, что статус функции stage-0 по сути означает «не отвергнуто прямо сейчас» (ака чучело), а stage-4 обозначает финальную версию функции или правки, полностью готовые для включения в спецификацию этого года. Еще важно понимать, что нововведение может быть полностью отвергнуто на любой стадии, даже на 4. Не важно, сколько людей и сообществ ссылаются на него и используют с помощью транспайлеров или полифилов — никто не может повлиять на этот процесс вне зависимости от положения и авторитета [2].
Так как у нас до сих пор есть некий переходный период, следует обозначать, что функции о которых вы говорите или пишите, — пока еще мечты и пожелания. Знать о какой конкретно стадии данной функции вы пишете, крайне необходимо тем, кто будет читать и использовать ваши Статьи. Допустим, вы описываете как работает функция X stage-0 и весь этот материал может быть не верен для функции X, когда она достигнет stage-4 или будет включена в стандарт.
Например, «stage-1» декораторы существенно изменились [3] по сравнению со «stage-0» версией.
Пожалуйста, хватит называть «ES7» все нереализованные JavaScript функции.
Автор: Voximplant
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/115627
Ссылки в тексте:
[1] «stage» процесс: https://tc39.github.io/process-document/
[2] вне зависимости от положения и авторитета: https://esdiscuss.org/topic/an-update-on-object-observe
[3] существенно изменились: https://github.com/wycats/javascript-decorators/commit/caf8f28b665333dc39293d5319fe01f01e3e3c0f
[4] Источник: https://habrahabr.ru/post/279177/
Нажмите здесь для печати.