Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ESNext の議論に参加しよう / Join the ESNext discussion
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
petamoriken / 森建
November 15, 2019
Programming
3
920
ESNext の議論に参加しよう / Join the ESNext discussion
フロントエンドカンファレンス福岡 2019 前夜祭&リジェクトコン
https://fec-fukuoka.connpass.com/event/154737/
petamoriken / 森建
November 15, 2019
Tweet
Share
More Decks by petamoriken / 森建
See All by petamoriken / 森建
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
210
Module Harmony
petamoriken
2
770
Denoでフロントエンド開発 2025年春版 / Frontend Development with Deno (Spring 2025)
petamoriken
1
1.5k
非ブラウザランタイムとWeb標準 / Non-Browser Runtimes and Web Standards
petamoriken
0
620
ふかぼれ!CSSセレクターモジュール / Fukabore! CSS Selectors Module
petamoriken
0
300
フロントエンドの標準仕様をどう追っているか / How I follow the frontend standards specs
petamoriken
4
2.5k
ECMAScript、Web標準の型はどう管理されているか / How ECMAScript and Web standards types are maintained
petamoriken
3
620
DOM Observable
petamoriken
1
320
Deno に Web 標準 API を実装する / Implementing Web standards API to Deno
petamoriken
0
750
Other Decks in Programming
See All in Programming
ぼくの開発環境2026
yuzneri
0
250
React Native × React Router v7 API通信の共通化で考えるべきこと
suguruooki
0
100
AtCoder Conference 2025
shindannin
0
1.1k
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
230
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
2k
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
6
680
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
260
AgentCoreとHuman in the Loop
har1101
5
250
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
130
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
150
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
Color Theory Basics | Prateek | Gurzu
gurzu
0
200
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
52k
Design in an AI World
tapps
0
150
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
400
Raft: Consensus for Rubyists
vanstee
141
7.3k
The Cost Of JavaScript in 2023
addyosmani
55
9.5k
Thoughts on Productivity
jonyablonski
74
5k
Transcript
ESNext の議論に参加しよう フロントエンドカンファレンス福岡 2019 前夜祭 pixiv Inc. petamoriken 2019.11.15
2 自己紹介まわり • 主にフロントエンドエンジニア • ECMAScript や WHATWG DOM を追うのが好き
11/20(水) 19:30~ Three.js Meetup Tokyo #0 サテライト会場を福岡でやるのでよければどうぞ https://connpass.com/event/154480/ petamoriken 課題解決部
3 知らない間に JavaScript の新機能が ブラウザ / TypeScript に入っていた (例)Optional Chaining
Nullish Coalescing Operators こんな経験はありませんか?
4 ES5.1 / ES2015 (ES6) / ES2019 ECMAScript を知っていますか?
5 Stage 4 (ES2020) / Stage 3 / Stage 2
ESNext を知っていますか?
6 ESNext について知ってもらう 更に言語仕様策定に参加してもらう この発表の目的
7 ESNext の策定プロセス • Stage 1 Proposal ◦ 担当者が決まる •
Stage 2 Draft ◦ 最初の仕様文書が作られる • Stage 3 Candidate ◦ 仕様文書が完成し、レビューが完了する • Stage 4 Finished (ES2020) ◦ polyfill ではない2つの実装で互換性が確認される
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 My Scrapbox • 個人的に TC39 の会議の内容をまとめているのでよければどうぞ https://scrapbox.io/petamoriken/ECMAScript
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 議論に参加するには • 新規提案については ES Discuss というメーリングリストへ ◦ TC39 members
に見られて Stage 1 に入れてもらえることもある (例)Float16Array トピックに polyfill を放り込んだら Stage 1 にしてもらえた
12 議論に参加するには • 既存の提案については該当のリポジトリの issues へ ◦ Stage 3 はブラウザ
/ TypeScript に実装し始める段階 ◦ Stage 2 以前の段階で意見を言うとよさそう (例)Stage 1 Math Extensions の Math.sum に誤差補正を入れる提案 https://github.com/rwaldron/proposal-mat h-extensions/issues/4
13 JavaScript and evidence-based language design survey • 今年5月末に Mozilla
が出した Stage 1 Pipeline Operators についてのアンケート
14 もうすぐ仕様が確定する提案 • Stage 2 Temporal https://github.com/tc39/proposal-temporal • Date を置き換える提案
• 現段階の提案仕様の polyfill を用意していて フィードバックを求めている • 年末に Stage 3 になる予定なので それまでに触って何かあれば意見を! https://pipobscure.github.io/temporal-2019-10/#19
15 まとめ • TC39 はフィードバックを求めています • ブラウザ / TypeScript に実装が入り始める
Stage 3 では仕様は確定しています ◦ Stage 2 以下の提案もちゃんと見ていこう! ◦ 議論に参加しよう! 意見を言っていこう! • 毎回 TC39 の会議を Scrapbox にまとめているのでよければどうぞ https://scrapbox.io/petamoriken/ECMAScript