TC39 – Technical Committee 39
TC39 (ang. Technical Committee 39) to grupowy organ standaryzacyjny odpowiedzialny za rozwój i utrzymanie specyfikacji ECMAScript, czyli języka programowania, którego najpopularniejszą implementacją jest JavaScript. Działa w ramach Ecma International i koordynuje prace nad nowymi funkcjami, poprawkami błędów oraz procesem ratyfikacji standardu.
Historia
Komitet powstał w 1997 roku, wkrótce po przyjęciu pierwszej wersji specyfikacji języka pod nazwą ECMAScript 1. Początkowo grupę tworzyło niewielu przedstawicieli firm, które już w tamtym okresie wykorzystywały język w przeglądarkach internetowych – m.in. Netscape, Microsoft i Sun Microsystems. W kolejnych latach liczba członków oraz zakres działalności znacznie się rozszerzyły, a TC39 stał się centralnym punktem ekosystemu JavaScript.
Struktura i członkostwo
TC39 składa się z:
- pełnoprawnych członków (full members) – firmy i organizacje, które posiadają prawo głosu i uczestniczą w podejmowaniu decyzji,
- obserwatorów (observers) – podmioty mające dostęp do dokumentacji i dyskusji, ale nie biorące udziału w głosowaniach,
- ekspertów zewnętrznych (external experts) – zapraszani w celu doradzenia przy określonych tematach.
Wśród stałych członków znajdują się m.in. Google, Microsoft, Apple, Mozilla, Meta (Facebook) i Intel. Pełna lista jest dostępna w dokumentacji ECMA International.
Proces tworzenia standardu
TC39 posługuje się jasno określonym procesem, podzielonym na pięć etapów (tzw. stages), które opisują stopień dojrzałości propozycji:
- Stage 0 – Strawman: pomysł w formie krótkiego opisu.
- Stage 1 – Proposal: wstępna specyfikacja i uzasadnienie techniczne.
- Stage 2 – Draft: bardziej szczegółowy opis, testy i przykłady.
- Stage 3 – Candidate: finalna wersja Draftu, gotowa do implementacji i testów interoperacyjnych.
- Stage 4 – Finished: propozycja zostaje przyjęta jako część oficjalnej specyfikacji ECMAScript.
Kluczowym elementem procesu jest test suite – zestaw testów, które muszą przejść wszystkie główne silniki JavaScript (np. V8 w Chrome, SpiderMonkey w Firefox, JavaScriptCore w Safari).
Znaczące propozycje i ich implementacje
W ciągu ostatniej dekady TC39 przyczyniło się do wprowadzenia licznych usprawnień, które zmieniły sposób programowania w JavaScript. Do najważniejszych należą:
- ECMAScript 2015 (ES6) – wprowadzenie klas, modułów,
let/const, arrow functions i wielu innych konstrukcji. - ECMAScript 2016 (ES7) – operator
**i metodaArray.prototype.includes. - ECMAScript 2017 (ES8) – async/await, Object.entries i inne.
- ECMAScript 2020 (ES11) – optional chaining, nullish coalescing.
- Propozycja BigInt – obsługa liczb całkowitych o dowolnej precyzji.
- Propozycja dynamic import – możliwość asynchronicznego ładowania modułów.
- Propozycja top‑level await – użycie
awaitw module bez konieczności opakowywania w funkcję.
Wpływ na ekosystem
Dzięki pracy TC39 nowoczesne frameworki i biblioteki, takie jak React, Vue.js czy Angular, mogą korzystać z zaawansowanych funkcji języka. Narzędzia transpilacyjne, w szczególności Babel, pozwalają programistom pisać kod w najnowszej wersji ECMAScript, a następnie konwertować go na starsze składnie obsługiwane przez istniejące przeglądarki i środowiska Node.js.
Obecny stan i przyszłe kierunki
Na dzień dzisiejszy TC39 pracuje nad kilkoma projektami, które mają trafić do ECMAScript 2024 oraz kolejnych wersji. Do najważniejszych tematów należą:
- Rozszerzenie typów rekordów i tablic (Record & Tuple) – immutowalne struktury danych.
- Standardowe wątki (Web Workers) i lepsza obsługa współbieżności.
- Ulepszenia w obsłudze danych binarnych (np.
ArrayBufferiTypedArray). - Nowe mechanizmy bezpieczeństwa i izolacji kodu.
Powiązane pojęcia
Do tematyki związanej z TC39 zaliczają się także:
- ECMAScript – oficjalna specyfikacja języka.
- JavaScript – najpowszechniejsza implementacja ECMAScript.
- ECMA‑262 – numer normy opisującej ECMAScript.
- V8 – silnik JavaScript używany w przeglądarce Chrome oraz w Node.js.
- SpiderMonkey – silnik JavaScript wykorzystywany w przeglądarce Firefox.
- Babel – transpilator umożliwiający użycie najnowszych funkcji ECMAScript w starszych środowiskach.
Źródła i dalsza lektura
Oficjalne informacje o TC39, w tym protokoły spotkań i bieżące propozycje, można znaleźć w sekcji TC39 na stronie ECMA International.