Save 37% off PRO during our Black Friday Sale! »

ESNext の議論に参加しよう / Join the ESNext discussion

A4906ea02ea1385bf9a8a18eac62c6da?s=47 森建
November 15, 2019

ESNext の議論に参加しよう / Join the ESNext discussion

フロントエンドカンファレンス福岡 2019 前夜祭&リジェクトコン
https://fec-fukuoka.connpass.com/event/154737/

A4906ea02ea1385bf9a8a18eac62c6da?s=128

森建

November 15, 2019
Tweet

Transcript

  1. ESNext の議論に参加しよう フロントエンドカンファレンス福岡 2019 前夜祭 pixiv Inc. petamoriken 2019.11.15

  2. 2 自己紹介まわり • 主にフロントエンドエンジニア • ECMAScript や WHATWG DOM を追うのが好き

    11/20(水) 19:30~ Three.js Meetup Tokyo #0 サテライト会場を福岡でやるのでよければどうぞ https://connpass.com/event/154480/ petamoriken 課題解決部
  3. 3 知らない間に JavaScript の新機能が ブラウザ / TypeScript に入っていた (例)Optional Chaining

    Nullish Coalescing Operators こんな経験はありませんか?
  4. 4 ES5.1 / ES2015 (ES6) / ES2019 ECMAScript を知っていますか?

  5. 5 Stage 4 (ES2020) / Stage 3 / Stage 2

    ESNext を知っていますか?
  6. 6 ESNext について知ってもらう 更に言語仕様策定に参加してもらう この発表の目的

  7. 7 ESNext の策定プロセス • Stage 1 Proposal ◦ 担当者が決まる •

    Stage 2 Draft ◦ 最初の仕様文書が作られる • Stage 3 Candidate ◦ 仕様文書が完成し、レビューが完了する • Stage 4 Finished (ES2020) ◦ polyfill ではない2つの実装で互換性が確認される
  8. 8 Ecma International TC39 • JavaScript の言語仕様 ECMAScript を策定する専門委員会 •

    提案一覧は GitHub 上で管理されている ◦ https://github.com/tc39/proposals • だいたい2ヶ月おきに会議を開いている ◦ アジェンダ: https://github.com/tc39/agendas ◦ 議事録: https://github.com/rwaldron/tc39-notes
  9. 9 My Scrapbox • 個人的に TC39 の会議の内容をまとめているのでよければどうぞ https://scrapbox.io/petamoriken/ECMAScript

  10. 10 実際の提案を見てみよう • Stage 1 Record / Tuple (2019-10 に議題に出た提案)

    ◦ https://github.com/tc39/proposal-record-tuple ◦ Object / Array のリテラルに # をつけて Immutable な Record Types を作る const tuple1 = #[1, 2, 3]; // 値を取り出すときは普通の Array と同じ assert(tuple1[0] === 1); // Tuple#with によって値を変更した新たな Tuple を作る const tuple2 = tuple1.with(0, 2); assert(tuple1 !== tuple2); assert(tuple2 === #[2, 2, 3]);
  11. 11 議論に参加するには • 新規提案については ES Discuss というメーリングリストへ ◦ TC39 members

    に見られて Stage 1 に入れてもらえることもある (例)Float16Array トピックに polyfill を放り込んだら Stage 1 にしてもらえた
  12. 12 議論に参加するには • 既存の提案については該当のリポジトリの issues へ ◦ Stage 3 はブラウザ

    / TypeScript に実装し始める段階 ◦ Stage 2 以前の段階で意見を言うとよさそう (例)Stage 1 Math Extensions の Math.sum に誤差補正を入れる提案 https://github.com/rwaldron/proposal-mat h-extensions/issues/4
  13. 13 JavaScript and evidence-based language design survey • 今年5月末に Mozilla

    が出した Stage 1 Pipeline Operators についてのアンケート
  14. 14 もうすぐ仕様が確定する提案 • Stage 2 Temporal https://github.com/tc39/proposal-temporal • Date を置き換える提案

    • 現段階の提案仕様の polyfill を用意していて フィードバックを求めている • 年末に Stage 3 になる予定なので それまでに触って何かあれば意見を! https://pipobscure.github.io/temporal-2019-10/#19
  15. 15 まとめ • TC39 はフィードバックを求めています • ブラウザ / TypeScript に実装が入り始める

    Stage 3 では仕様は確定しています ◦ Stage 2 以下の提案もちゃんと見ていこう! ◦ 議論に参加しよう! 意見を言っていこう! • 毎回 TC39 の会議を Scrapbox にまとめているのでよければどうぞ https://scrapbox.io/petamoriken/ECMAScript