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
edytujW 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
edytujPraca 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ż
edytuj- JavaScript – jedna z implementacji standardu ECMAScript.
Przypisy
edytuj- ↑ a b TC39 [online], Ecma International [dostęp 2021-11-11] (ang.).
- ↑ Published Standards - TC39 [online], Ecma International [dostęp 2021-11-11] (ang.).
- ↑ TC39-Royalty Free Technical Committee members [online], Ecma International [dostęp 2021-11-11] (ang.).
- ↑ TC39 Meeting Notes [online], Gtihub (ang.).
- ↑ Tyler McGinnis , ECMAScript, TC39, and the History of JavaScript [online], ui.dev, 28 września 2017 [dostęp 2021-11-11] (ang.).
- ↑ a b Brendan Eich , ECMAScript Harmony [online], mail.mozilla.org, 13 sierpnia 2008 (ang.).
- ↑ a b c d Axel Rauschmayer , The TC39 process for ECMAScript features [online], 2ality.com, 15 listopada 2015 .
- ↑ a b The TC39 Process [online], tc39.es [dostęp 2021-11-11] .