Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
ESNext の議論に参加しよう / Join the ESNext discussion
森建
November 15, 2019
Programming
3
420
ESNext の議論に参加しよう / Join the ESNext discussion
フロントエンドカンファレンス福岡 2019 前夜祭&リジェクトコン
https://fec-fukuoka.connpass.com/event/154737/
森建
November 15, 2019
Tweet
Share
More Decks by 森建
See All by 森建
Stage 2 Decorators の変遷 / Stage 2 Decorators history
petamoriken
0
1.5k
linaria: Zero-Runtime CSS in JS
petamoriken
2
1.2k
Multithreading WebAssembly by Rust
petamoriken
2
560
WebAssembly で WebP のデコードを試した / Decode WebP with WebAssembly by Pure Rust
petamoriken
0
530
TC39 で提案されている ECMAScript 最新仕様 / ECMAScript latest specification proposed in TC39
petamoriken
2
510
バイト列から整数を得る
petamoriken
1
250
WebAssembly by Rust
petamoriken
0
850
Cloud FunctionsでOpen Graph Protocolの画像を自動生成する
petamoriken
0
620
Other Decks in Programming
See All in Programming
Keep Your Cache Always Fresh With Debezium
gunnarmorling
0
170
読みやすいコードを書こう
yutorin
0
370
How useEvent would change our applications
koba04
1
1.3k
Untangling Coroutine Testing (Android Makers 2022)
zsmb
0
390
Named Document って何?
harunakano
0
230
【PHPerKaigi2022】Mongo に溜まった約1.6億件の記事データを BigQuery へ …
userkazun
0
100
iOSアプリの技術選択2022
tattn
6
2.1k
A technique to implement DSL in Ruby
okuramasafumi
0
510
Loom is Blooming
josepaumard
3
510
Practical Advanced Kotlin in Practice
rock3r
3
130
脱オブジェクト指向講座(5分LT資料)
kishida
8
10k
Android入門
hn410
0
300
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
506
37k
Fantastic passwords and where to find them - at NoRuKo
philnash
25
1.5k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
12
890
KATA
mclloyd
7
8.6k
The MySQL Ecosystem @ GitHub 2015
samlambert
238
11k
No one is an island. Learnings from fostering a developers community.
thoeni
9
1.1k
5 minutes of I Can Smell Your CMS
philhawksworth
196
18k
Art Directing for the Web. Five minutes with CSS Template Areas
malarkey
196
9.4k
What the flash - Photography Introduction
edds
61
9.8k
Fashionably flexible responsive web design (full day workshop)
malarkey
396
62k
Teambox: Starting and Learning
jrom
121
7.6k
Rails Girls Zürich Keynote
gr2m
86
12k
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