В нашем недавнем посте о ключевых возможностях ES8 мне напомнили, насколько сильно изменился процесс стандартизации за последние 15 лет. Как человек, который пытался вмешаться раньше, чтобы улучшить стандарты, процесс был нарушен, и я быстро разочаровался. Тем не менее, многое изменилось с момента появления Интернета.
Еще в начале 2000-х органы по стандартизации пытались кодифицировать уже реализованные функции, а попытки расширить сеть часто были чрезмерно сложными. Процесс обычно происходил за закрытыми дверями, обычно с несколькими крупными компаниями, пытающимися продвигать свою технологическую повестку дня, и у общественности было мало возможностей участвовать в процессе, кроме, возможно, списка рассылки. Инструментов для совместной работы, на которые мы полагаемся сегодня, просто не существовало, и большинство реализаций браузеров не основывались на программном обеспечении с открытым исходным кодом. Проще говоря, в такой среде было трудно добиться прогресса.
Здесь мы рассмотрим нетехническую сторону процесса разработки стандартов и то, как современные веб-стандарты развиваются в более открытой и совместной манере, что приводит к улучшению веб-платформы.
Определение всех букв и цифр
ECMA. Орган по стандартизации, наиболее известный в веб-сообществе как родина JavaScript (он же ECMAScript).
ECMAScript – это стандартный язык сценариев, разработанный в сотрудничестве с компаниями Netscape и Microsoft и в основном производный от JavaScript Netscape, широко используемого языка сценариев, который используется на веб-страницах, чтобы влиять на их внешний вид или поведение для веб-страниц. Пользователь.
ECMA-262. Номер стандарта ECMA для ECMAScript.
TC39. Технический комитет 39 — это группа, отвечающая за стандартизацию общего назначения, кроссплатформенного, независимого от поставщика языка программирования ECMAScript. Сюда входят синтаксис языка, семантика, библиотеки и дополнительные технологии, поддерживающие язык.
WHATWG. Рабочая группа по технологиям веб-гипертекстовых приложений (WHATWG) — это сообщество людей, заинтересованных в развитии HTML и связанных с ним технологий. WHATWG была основана представителями Apple, Mozilla Foundation и Opera Software в 2004 году.
W3C. Орган по стандартизации известен множеством рекомендаций, включая HTML, CSS, SVG, DOM и ARIA/WCAG.
TC39 сегодня
Наиболее заметными изменениями, произошедшими за последние годы в подходе TC39 к процессу разработки стандартов, являются:
Повышение вовлеченности сообщества
Формирование WHATWG является ключевым поворотным моментом в том, что органы по стандартизации становятся более открытыми и прозрачными в своем процессе, который частично кодифицирован в Манифесте расширяемой сети. Учитывая возросший интерес к JavaScript, TC39 теперь взаимодействует с более широким сообществом разработчиков открытым и совместным образом.
Ежегодные выпуски
После существенных изменений в ES6 было принято важное решение выпускать меньшие по размеру ежегодные выпуски в будущем, чтобы уменьшить масштаб любой версии ES в будущем. После того, как в ES6 появилось огромное количество функций, в ES7 было добавлено всего несколько небольших функций. ES8 имеет большее, но все еще очень управляемое количество новых функций.
Комитет TC39 собирается несколько раз в год лично для обсуждения различных предложений. Из-за своего размера секционные заседания являются обычным явлением, чтобы обеспечить более активное обсуждение некоторых предложений.
Так как же фича становится частью следующей версии языка?
Идеи представляются в виде предложений и на каждом этапе предложения, а затем дается обратная связь, которая включается в предложение для улучшения его реализации. Вот этапы, через которые проходит функция, чтобы стать стандартом.
Этап 0: Предложение соломенного человека
Идеи вскользь обсуждаются и, возможно, отправляются на Github для дальнейшего обсуждения и рассмотрения.
Этап 1: Предложение
Это более формальное предложение с официальным чемпионом и реализацией полифилла или транспайлера, чтобы продемонстрировать, как эта функция будет работать. Большинство предложений никогда не проходят этап 1, и это хорошо, так как это предотвращает добавление в язык функций, которые не идеально подходят для целей языка.
Этап 2: Черновик
Предложение становится формализованным документом, соответствующим тому, как создается спецификация ES, по крайней мере, с одной экспериментальной реализацией. Самая известная функция, которая будет изъята в рамках нового процесса TC39, — это Object.observe, который был удален на этапе 2.
Этап 3: Кандидат
На данный момент предложение ожидает окончательного отзыва, и в идеале существует по крайней мере две реализации, соответствующие спецификации. Ожидается, что большинство функций этапа 3 в конечном итоге будут реализованы в языке.
Этап 4: завершен
Этап 4 завершает процесс, и функция будет включена в следующую ежегодную версию спецификации языка (ES.Next). Предложения, которые достигли состояния «Завершено» к 1 февраля, добавляются в проект кандидата, который завершается и утверждается в июле.
В этот момент разработчики движка JavaScript, авторы транспилеров и авторы фреймворков работают над тем, чтобы как можно быстрее использовать новые функции! Таблица совместимости kangax отслеживает текущий статус поддержки новых функций языка, а шесть скоростей помогает отслеживать производительность реализации новых функций.
Резюме
С этим усовершенствованным, открытым и совместным подходом к определению стандартов мы видим существенные дополнения к языку быстрыми темпами, что все еще дает время для разумного рассмотрения их использования. Это позволяет платформе, на которой мы создаем веб-приложения, постоянно улучшаться более эффективно, чем в прошлом!
Первоначально опубликовано на SitePen.com