Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JavaScriptの未来は誰がどう決めている?

Avatar for high-g high-g
September 28, 2025

 JavaScriptの未来は誰がどう決めている?

Avatar for high-g

high-g

September 28, 2025
Tweet

More Decks by high-g

Other Decks in Technology

Transcript

  1. @high_g_engineer 
 KINTOテクノロジーズ(株)所属 
 フロントエンドエンジニア 
 TSKaigi 2025, TSKaigi Kansai

    Staff 
 フロントエンドカンファレンス関西実行委員 
 谷 郁弥 (high-g) 

  2. 誰が ECMAScript を策定している? 
 Ecma Internationalという団体が策定 
 - Ecma =

    European Computer Manufacturers Association
 - C#、Dart の標準規格もこの団体が策定
 - この団体の中でも ECMAScript の策定 は TC39 という専門の委員会が担当
 
 ※ TC = Technical Committee(技術委員会) 
 ※ 39は通し番号で振られているだけなので、この数字に意味はありません 
 ※ C# → TC49、Dart → TC52 

  3. TC39について 
 メンバー構成 
 - ブラウザベンダー(Google、Microsoft、Mozilla、Apple)
 - 大手テック企業(Meta, IBM, Oracle…)


    - 開発ツール・プラットフォーム企業、学術機関など
 2ヶ月ごとに会議が開かれ、アジェンダをもと2~4日ほど議論される 
 - アジェンダと議事録はすべて GitHub 上に公開されている

  4. TC39 はどうやって ECMAScript を策定している? 
 Stage 0 〜 Stage 4

    の5つの段階を踏んでいる 
 - Stage 0:Strawman → アイデア段階(Contributor登録で、誰でも提案可)
 - Stage 1:Proposal → 解決策の設計, チャンピオン(責任者)の任命
 - Stage 2:Draft → 仕様ドラフト作成、実装実験開始
 - Stage 3:Candidate → 実装・検証段階、複数ブラウザでの実装
 - Stage 4:Finished → 正式採用、ECMAScript仕様への統合
 ⇛ スムーズに Stage 4 まで到達するものもあれば、 
  長年 Stage 1, 2 で滞っているものもある 

  5. // 従来(fetch使用) const response = await fetch('./data.json'); const json =

    await response.json(); // より安全に標準仕様で使えるように import json from "./data.json" with { type: "json" }; JSON modules 

  6. // Iterator を返す関数(仮想的な例) function* readCSVLines(file) { // ファイルを1行ずつ読み込むイテレータ } //

    Array 変換の必要がない!Iteratorをそのままループ処理できる // Array 変換で発生するメモリクラッシュの危険性がなくなった const samples = readCSVLines(hugeFile) .filter(line => line.includes('ERROR')) .map(line => parseCSV(line)) .take(10) .toArray(); Iterator Helpers 

  7. その他の ECMAScript のプロポーザルたち 
 Stage 3 にいる実装間近なプロポーザル 
 - Temporal

    https://github.com/tc39/proposal-temporal 
 - 既存の Date オブジェクトの長年の問題を解決し、日付と時刻を操作するための標準オブ ジェクトと関数を提供することが目的 
 Stage 1 で滞っているプロポーザル 
 - Decimal https://github.com/tc39/proposal-decimal 
 - 2進浮動小数点計算において、正確な計算を行うことが目的 
 - 現状、0.1 + 0.2 = 0.30000000000000004 となってしまう 
 - 既存の仕様との絡みで、ユーザが求める形に着地できない 

  8. その他の ECMAScript のプロポーザルたち 
 Stage 3 にいる実装間近なプロポーザル 
 - Temporal

    https://github.com/tc39/proposal-temporal 
 - 既存の Date オブジェクトの長年の問題を解決し、日付と時刻を操作するための標準オブ ジェクトと関数を提供することが目的 
 Stage 1 で滞っているプロポーザル 
 - Decimal https://github.com/tc39/proposal-decimal 
 - 2進浮動小数点計算において、正確な計算を行うことが目的 
 - 現状、0.1 + 0.2 = 0.30000000000000004 となってしまう 
 - 既存の仕様との絡みで、ユーザが求める形に着地できない 
 これら以外にも多数のプロポーザルが存在!! 

  9. まとめ
 - JavaScript は、ECMAScript という仕様をもとに実装されている 
 - ECMAScript は、Ecma Internatinalの

    TC39 によって策定されている 
 - すべてが GitHub 上で公開されており、誰でも提案の過程を見ることが可能 
 - ECMAScript の現在地を理解することで、将来の技術トレンドを先取りし、
 コミュニティへの貢献につなげていきましょう
 コミュニティ貢献のヒントはたくさん眠っている!!!