TC39 та його внески до ECMAScript

Багато людей плутаються в тому, що таке JavaScript, а що таке ECMAScript. Іноді важко сказати, як вони пов'язані між собою і яку роль відіграють ECMA International та TC39 у стандартизації JavaScript.

У цій публікації в блозі я збираюся обговорити TC39 та його внески до ECMAScript.

Почнемо з усіх основних термінологій, що використовуються при розмові про JavaScript та ECMAScript.

Що таке ECMAScript?

ECMAScript - це стандартна мова сценаріїв, розроблена за співпраці Netscape та Microsoft і в основному похідна від JavaScript Netscape. JavaScript - це широко використовувана мова сценаріїв, яка використовується на веб-сторінках, щоб впливати на те, як вони виглядають або поводяться для користувача.

ECMA-262 - це стандарт, опублікований ECMA International. Він містить специфікацію мови сценаріїв загального призначення, яка відома як ECMAScript.

Трохи більше про JavaScript

JavaScript - це мова сценаріїв, що дозволяє створювати динамічно оновлюваний вміст, керувати мультимедіа, анімувати зображення та робити майже все інше. (Гаразд, не все, але дивно, чого ви можете досягти за допомогою декількох рядків коду JavaScript.)

Що таке ECMA?

ECMA - це організація стандартизації інформаційних та комунікаційних систем. ECMA прагне розробити стандарти та технічні звіти для полегшення та стандартизації використання інформаційних комунікаційних технологій та побутової електроніки. Він заохочує правильне використання стандартів, впливаючи на середовище, в якому вони застосовуються, і публікує ці стандарти та звіти в електронному та друкованому вигляді.

А тепер давайте представимо працьовитих людей, які стоять за ECMAScript: TC39.

Що таке TC 39?

TC39 означає Технічний комітет № 39. Він є частиною ECMA, установи, яка стандартизує мову JavaScript відповідно до специфікації “ECMAScript”. Він працює над стандартизацією загальної мети, міжплатформеної, нейтральної для постачальника мови програмування, яка є ECMAScript. Це включає синтаксис мови, семантику, бібліотеки та додаткові технології, що підтримують мову.

TC 39 працює над :

  • Ведення та оновлення стандарту мови програмування ECMAScript.
  • Визначення, розробка та підтримка стандартів для бібліотек, що розширюють можливості ECMAScript.
  • Розробка тестових наборів, які можуть бути використані для перевірки правильності впровадження цих стандартів.
  • Сприяння обраним стандартам комітету ISO / IEC JTC 1.
  • Оцінка та розгляд пропозицій щодо додаткових або додаткових технологій.

З моменту виходу ES6 TC 39 впорядкував процес підготовки пропозицій, щоб відповідати сучасним очікуванням. Новий процес використовує набір HTML для форматування пропозицій. Вони використовують запити на витяг GitHub, що допомогло активізувати участь громади. Також зросла кількість пропозицій.

Специфікація зараз більше відповідає рівню життя, що означає, що пропозиції сприймаються швидше, і ми не витрачаємо роки на очікування виходу нової редакції специфікації.

Більш загальний погляд

Читаючи специфікацію ECMAScript, ви дізнаєтесь, як створюватимова сценаріїв. Читаючи документацію JavaScript, ви дізнаєтесь, як користуватися цією мовою сценаріїв.

Обробка пропозицій

Етап 0: Солом’янець

Будь-яка дискусія, ідея, зміна або доповнення, яка ще не була подана як офіційна пропозиція, на цьому етапі вважається пропозицією “солом’яника”. Тільки члени TC39 можуть створювати ці пропозиції, і сьогодні існує понад десяток активних пропозицій солом'янців.

Етап 1: Пропозиція

На цьому етапі пропозиція формалізується і, як очікується, вирішить наскрізні проблеми, взаємодію з іншими пропозиціями та проблеми реалізації. Пропозиції на цьому етапі визначають дискретну проблему та пропонують конкретне рішення цієї проблеми.

На цьому етапі пропозиція часто включає опис API високого рівня, приклади використання та обговорення внутрішньої семантики та алгоритмів. Ці пропозиції, ймовірно, суттєво зміняться, коли вони пробиватимуться в процесі.

Етап 2: Проект

Пропозиції на цьому етапі повинні пропонувати початковий проект специфікації.

На цьому етапі доцільно, щоб реалізатори почали експериментувати з реальними реалізаціями під час виконання. Реалізація може бути у багатьох формах: полізаповнення, користувацький код, який примушує виконувати час дотримання пропозиції, реалізація механізму (яка спочатку забезпечує підтримку пропозиції) або може бути підтримана компілятором часу побудови, таким як Babel.

3 етап: Кандидат

Пропозиції на цьому етапі - це рекомендації кандидатів. На цьому просунутому етапі редактор специфікації та призначені рецензенти повинні підписати остаточну специфікацію. Пропозиція 3-го етапу навряд чи зміниться за межами виправлення проблем, виявлених у дикій природі.

Організатори-виконавці також мали би зацікавитись пропозицією - пропозиція без підтримки виконавців мертва у воді. На практиці пропозиції переходять на цей рівень, принаймні з однією реалізацією браузера, високоякісним поліфілом або за умови підтримки компілятора часу побудови, такого як Babel.

4 етап: Завершено

Нарешті, пропозиції дістаються до цієї стадії, коли є щонайменше дві незалежні реалізації, які проходять тести приймання.

Що далі?

Пропозиції, які прокладуть шлях до етапу 4, будуть включені до наступного перегляду ECMAScript. Коли специфікація проходить щорічну ратифікацію як стандарт, пропозиція ратифікується як її частина.

Ось як ідеї щодо вдосконалення мови ECMAScript приймаються та додаються до наступного перегляду ECMAScript. І всі ми вдячні за роботу TC39, яка є безцінною.

Цим ми завершили нашу дискусію щодо TC39 та її внесків до ECMAScript.

Дякуємо за читання.

Джерела: TC 39 Process, ECMA International