TC39

TC39 (Ecma Technical Committee 39) – komisja będąca częścią Ecma International[1], której celem jest wsparcie standaryzacji języka ECMAScript. Komisja przygotowuje przede wszystkim tekst samego standardu, ale pracuje również nad przeglądaniem i oceną propozycji zmian oraz przygotowuje testy używane do weryfikacji standardu ECMA-262 i pokrewnych[1][2]. Według stanu na listopad 2021 w skład TC39 wchodzi 41 organizacji w tym 2 kandydujące[3].

Notatki z posiedzeń komitetu są dostępne online[4].

Historia

W 1996 Netscape zdecydował się przekazać JavaScript do standaryzacji przez Ecma. Dzięki temu język miał stać się mniej zależny od jednej przeglądarki. W ramach Ecma stworzona została komisja nazwana TC39, która miała kierować pracami nad standardem[5]. Członkami TC39 stali się przedstawiciele producentów przeglądarek oraz firm zajmujących się tworzeniem rozwiązań internetowych.

W 2007 roku przy pracach nad nową wersją po ES3 w grupie pojawił się rozłam[6]. Część chciała pracować na wersją ES3.1, która miała być zasadniczo zgodna z ES3, a inni chcieli rozwijać ES4 ze znacznym zmianami składni (w tym klasami). Koniec konfliktu został ogłoszony w 2008 roku na liście dyskusyjnej przez Brendanda Eicha, twórcę JS i wówczas pracownika Mozilli[6]. W skład komisji wchodził wówczas John Neumann (przewodniczący TC39) oraz m.in. Lars Hansen (Adobe), Mark Miller (Google) i Allen Wirfs-Brock (Microsoft). Ostatecznie w wyniku kompromisu w 2009 roku wydano ES5.

6 lat później w 2015 roku wydano ES6. Jednocześnie jednak wypracowano nowe reguły procesu standaryzacji, czyli nowe reguły pracy komisji[7]. Od tego czasu komisja wydaje nową wersję ECMAScript co roku.

Proces standaryzacji

Praca komisji przy dodawaniu nowych funkcjonalności, do standardu ECMAScript, przebiega w 5 etapach (ang. stage)[7][8]. Ponumerowane są one od 0 do 4. Gdzie w trakcie etapu 0 spływają różne propozycje i mogą to robić osoby nie będące członkami TC39.

Etap 1 to czas na przedstawienie nowej funkcji przez wyznaczoną osobę pełniącą rolę opiekunki danej funkcji. Komisja ocenia wówczas wstępnie propozycję i identyfikuje potencjalne problemy i ocenia rozwiązania. Na tym etapie w propozycji mogą zajść bardzo duże zmiany.

Etap 2 to moment w którym powstaje wersja robocza standardu opisującego nową funkcję. Składnia i semantyka jest wtedy opisywana językiem formalnym. Od tego momentu mogą powstawać eksperymentalne implementacje, ale wciąż możliwe są jeszcze znaczące zmiany.

Etap 3 to czas na uwagi od organizacji implementujących standard i użytkowników języka. Po tym etapie standard powinien być już kompletny i nie należy spodziewać się dużych zmian, chyba że przy implementacji zostaną wskazane krytyczne problemy. Standard na tym etapie wciąż może zostać porzucony. W szczególności by przejść dalej muszą być gotowe co najmniej dwie implementacje zgodne ze specyfikacją[8][7].

Etap 4 to moment gdy są już testy i implementacje, które je przechodzą. To na tym etapie dana propozycja i specyfikacja osiąga ostateczną formę i wejdzie do następnej wersji ECMAScript[7].

Zobacz też

  • JavaScript – jedna z implementacji standardu ECMAScript.

Przypisy

  1. a b TC39, Ecma International [dostęp 2021-11-11] (ang.).
  2. Published Standards - TC39, Ecma International [dostęp 2021-11-11] (ang.).
  3. TC39-Royalty Free Technical Committee members, Ecma International [dostęp 2021-11-11] (ang.).
  4. TC39 Meeting Notes, Gtihub (ang.).
  5. Tyler McGinnis, ECMAScript, TC39, and the History of JavaScript, ui.dev, 28 września 2017 [dostęp 2021-11-11] (ang.).
  6. a b Brendan Eich, ECMAScript Harmony, mail.mozilla.org, 13 sierpnia 2008 (ang.).
  7. a b c d Axel Rauschmayer, The TC39 process for ECMAScript features, 2ality.com, 15 listopada 2015.
  8. a b The TC39 Process, tc39.es [dostęp 2021-11-11].