Movatterモバイル変換
[0]
ホーム
URL:
画像なし
夜間モード
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
京大 マイコンクラブ
PDF, PPTX
17,264 views
ECMAScript没proposal追悼式
ECMAScript没proposal追悼式
Technology
◦
Read more
43
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 121
2
/ 121
3
/ 121
4
/ 121
5
/ 121
6
/ 121
7
/ 121
8
/ 121
9
/ 121
10
/ 121
11
/ 121
12
/ 121
13
/ 121
14
/ 121
15
/ 121
16
/ 121
17
/ 121
18
/ 121
19
/ 121
20
/ 121
21
/ 121
22
/ 121
23
/ 121
24
/ 121
25
/ 121
26
/ 121
27
/ 121
28
/ 121
29
/ 121
30
/ 121
31
/ 121
32
/ 121
33
/ 121
34
/ 121
35
/ 121
36
/ 121
37
/ 121
38
/ 121
39
/ 121
40
/ 121
41
/ 121
42
/ 121
43
/ 121
44
/ 121
45
/ 121
46
/ 121
47
/ 121
48
/ 121
49
/ 121
50
/ 121
51
/ 121
52
/ 121
53
/ 121
54
/ 121
55
/ 121
56
/ 121
57
/ 121
58
/ 121
59
/ 121
60
/ 121
61
/ 121
62
/ 121
63
/ 121
64
/ 121
65
/ 121
66
/ 121
67
/ 121
68
/ 121
69
/ 121
70
/ 121
71
/ 121
72
/ 121
73
/ 121
74
/ 121
75
/ 121
76
/ 121
77
/ 121
78
/ 121
79
/ 121
80
/ 121
81
/ 121
82
/ 121
83
/ 121
84
/ 121
85
/ 121
86
/ 121
87
/ 121
88
/ 121
89
/ 121
90
/ 121
91
/ 121
92
/ 121
93
/ 121
94
/ 121
95
/ 121
96
/ 121
97
/ 121
98
/ 121
99
/ 121
100
/ 121
101
/ 121
102
/ 121
103
/ 121
104
/ 121
105
/ 121
106
/ 121
107
/ 121
108
/ 121
109
/ 121
110
/ 121
111
/ 121
112
/ 121
113
/ 121
114
/ 121
115
/ 121
116
/ 121
117
/ 121
118
/ 121
119
/ 121
120
/ 121
121
/ 121
Recommended
PDF
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
by
Unity Technologies Japan K.K.
PPTX
C++のビルド高速化について
by
AimingStudy
PDF
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
by
ssuser070fa9
PDF
自由エネルギー原理から エナクティヴィズムへ
by
Masatoshi Yoshida
PDF
ジャストシステムJava100本ノックのご紹介
by
JustSystems Corporation
PDF
いつやるの?Git入門
by
Masakazu Matsushita
PDF
レシピの作り方入門
by
Nobuhiro Iwamatsu
PDF
Form認証で学ぶSpring Security入門
by
Ryosuke Uchitate
PDF
【Unite Tokyo 2019】Understanding C# Struct All Things
by
UnityTechnologiesJapan002
PDF
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
by
Unity Technologies Japan K.K.
PDF
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
by
Hiroshi Tokumaru
PDF
ゲームAI製作のためのワークショップ(II)
by
Youichiro Miyake
PDF
Ml system in_python
by
yusuke shibui
PDF
Node-REDのworldmapの活用
by
OSgeo Japan
PPTX
F.E.A.Rにおけるゴール指向プランニング
by
Youichiro Miyake
PDF
【de:code 2020】 React Native で Windows アプリ開発 ~React Native for Windows~
by
日本マイクロソフト株式会社
PPTX
KillzoneにおけるNPCの動的な制御
by
Youichiro Miyake
PPTX
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
by
Hideki Takase
PDF
個人開発でも使ってみようAddressableAssetSystem
by
Takuma Sugaya
PPTX
Msを16倍出し抜くwpf開発1回目
by
cct-inc
PPTX
位置データもPythonで!!!
by
hide ogawa
PDF
コロナで大打撃を受けた宿泊業のエンジニアの逆境との闘い
by
崇介 藤井
PDF
バーチャルリアリティ(VR)概要
by
Kurata Takeshi
PDF
JavaScript難読化読経
by
Yosuke HASEGAWA
PPTX
UE4で実現できた理想のゲーム開発ワークフロー
by
historia_Inc
PDF
PlayStation®4向けARPGのUnity開発事例 最適化と効率化の秘密
by
Gemdrops Inc.
PDF
やりなおせる Git 入門
by
Tomohiko Himura
PDF
ディープラーニングの2値化(Binarized Neural Network)
by
Hideo Terada
PDF
C++コミュニティーの中心でC++をDISる
by
Hideyuki Tanaka
PDF
Haxeについて
by
Moriyoshi Koizumi
More Related Content
PDF
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
by
Unity Technologies Japan K.K.
PPTX
C++のビルド高速化について
by
AimingStudy
PDF
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
by
ssuser070fa9
PDF
自由エネルギー原理から エナクティヴィズムへ
by
Masatoshi Yoshida
PDF
ジャストシステムJava100本ノックのご紹介
by
JustSystems Corporation
PDF
いつやるの?Git入門
by
Masakazu Matsushita
PDF
レシピの作り方入門
by
Nobuhiro Iwamatsu
PDF
Form認証で学ぶSpring Security入門
by
Ryosuke Uchitate
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
by
Unity Technologies Japan K.K.
C++のビルド高速化について
by
AimingStudy
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
by
ssuser070fa9
自由エネルギー原理から エナクティヴィズムへ
by
Masatoshi Yoshida
ジャストシステムJava100本ノックのご紹介
by
JustSystems Corporation
いつやるの?Git入門
by
Masakazu Matsushita
レシピの作り方入門
by
Nobuhiro Iwamatsu
Form認証で学ぶSpring Security入門
by
Ryosuke Uchitate
What's hot
PDF
【Unite Tokyo 2019】Understanding C# Struct All Things
by
UnityTechnologiesJapan002
PDF
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
by
Unity Technologies Japan K.K.
PDF
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
by
Hiroshi Tokumaru
PDF
ゲームAI製作のためのワークショップ(II)
by
Youichiro Miyake
PDF
Ml system in_python
by
yusuke shibui
PDF
Node-REDのworldmapの活用
by
OSgeo Japan
PPTX
F.E.A.Rにおけるゴール指向プランニング
by
Youichiro Miyake
PDF
【de:code 2020】 React Native で Windows アプリ開発 ~React Native for Windows~
by
日本マイクロソフト株式会社
PPTX
KillzoneにおけるNPCの動的な制御
by
Youichiro Miyake
PPTX
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
by
Hideki Takase
PDF
個人開発でも使ってみようAddressableAssetSystem
by
Takuma Sugaya
PPTX
Msを16倍出し抜くwpf開発1回目
by
cct-inc
PPTX
位置データもPythonで!!!
by
hide ogawa
PDF
コロナで大打撃を受けた宿泊業のエンジニアの逆境との闘い
by
崇介 藤井
PDF
バーチャルリアリティ(VR)概要
by
Kurata Takeshi
PDF
JavaScript難読化読経
by
Yosuke HASEGAWA
PPTX
UE4で実現できた理想のゲーム開発ワークフロー
by
historia_Inc
PDF
PlayStation®4向けARPGのUnity開発事例 最適化と効率化の秘密
by
Gemdrops Inc.
PDF
やりなおせる Git 入門
by
Tomohiko Himura
PDF
ディープラーニングの2値化(Binarized Neural Network)
by
Hideo Terada
【Unite Tokyo 2019】Understanding C# Struct All Things
by
UnityTechnologiesJapan002
【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
by
Unity Technologies Japan K.K.
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
by
Hiroshi Tokumaru
ゲームAI製作のためのワークショップ(II)
by
Youichiro Miyake
Ml system in_python
by
yusuke shibui
Node-REDのworldmapの活用
by
OSgeo Japan
F.E.A.Rにおけるゴール指向プランニング
by
Youichiro Miyake
【de:code 2020】 React Native で Windows アプリ開発 ~React Native for Windows~
by
日本マイクロソフト株式会社
KillzoneにおけるNPCの動的な制御
by
Youichiro Miyake
ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク
by
Hideki Takase
個人開発でも使ってみようAddressableAssetSystem
by
Takuma Sugaya
Msを16倍出し抜くwpf開発1回目
by
cct-inc
位置データもPythonで!!!
by
hide ogawa
コロナで大打撃を受けた宿泊業のエンジニアの逆境との闘い
by
崇介 藤井
バーチャルリアリティ(VR)概要
by
Kurata Takeshi
JavaScript難読化読経
by
Yosuke HASEGAWA
UE4で実現できた理想のゲーム開発ワークフロー
by
historia_Inc
PlayStation®4向けARPGのUnity開発事例 最適化と効率化の秘密
by
Gemdrops Inc.
やりなおせる Git 入門
by
Tomohiko Himura
ディープラーニングの2値化(Binarized Neural Network)
by
Hideo Terada
Similar to ECMAScript没proposal追悼式
PDF
C++コミュニティーの中心でC++をDISる
by
Hideyuki Tanaka
PDF
Haxeについて
by
Moriyoshi Koizumi
PPTX
Node.jsでつくるNode.js ミニインタープリター&コンパイラー
by
mganeko
PDF
Pfi Seminar 2010 1 7
by
Preferred Networks
PDF
JSX / Haxe / TypeScript
by
bleis tift
ODP
これから Haskell を書くにあたって
by
Tsuyoshi Matsudate
PDF
これからのJavaScriptー関数型プログラミングとECMAScript6
by
TanUkkii
PDF
JavaScript.Next
by
dynamis
PDF
JavaScript (ECMAScript) 2013
by
dynamis
PDF
Kanazawa.js.Next
by
dynamis
PDF
ECMAScript 6 Features(PDF 版)
by
taskie
PPTX
Nds meetup8 lt
by
ushiboy
PDF
JavaScript/CSS 2015 Autumn
by
Koji Ishimoto
PDF
ジェネリック関数の呼び出され方 #cocoa_kansai
by
Tomohiro Kumagai
PDF
DSL by JRuby at JavaOne2012 JVM language BoF #jt12_b101
by
Takeshi AKIMA
PDF
Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)
by
takesako
PDF
BNN CAMP vol.3 インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2
by
Atsushi Tadokoro
PDF
Swift 2.0 大域関数の行方から #swift2symposium
by
Tomohiro Kumagai
PDF
Web技術勉強会 20110723
by
龍一 田中
PPT
オブジェクト指向入門7
by
Kenta Hattori
C++コミュニティーの中心でC++をDISる
by
Hideyuki Tanaka
Haxeについて
by
Moriyoshi Koizumi
Node.jsでつくるNode.js ミニインタープリター&コンパイラー
by
mganeko
Pfi Seminar 2010 1 7
by
Preferred Networks
JSX / Haxe / TypeScript
by
bleis tift
これから Haskell を書くにあたって
by
Tsuyoshi Matsudate
これからのJavaScriptー関数型プログラミングとECMAScript6
by
TanUkkii
JavaScript.Next
by
dynamis
JavaScript (ECMAScript) 2013
by
dynamis
Kanazawa.js.Next
by
dynamis
ECMAScript 6 Features(PDF 版)
by
taskie
Nds meetup8 lt
by
ushiboy
JavaScript/CSS 2015 Autumn
by
Koji Ishimoto
ジェネリック関数の呼び出され方 #cocoa_kansai
by
Tomohiro Kumagai
DSL by JRuby at JavaOne2012 JVM language BoF #jt12_b101
by
Takeshi AKIMA
Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)
by
takesako
BNN CAMP vol.3 インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 2
by
Atsushi Tadokoro
Swift 2.0 大域関数の行方から #swift2symposium
by
Tomohiro Kumagai
Web技術勉強会 20110723
by
龍一 田中
オブジェクト指向入門7
by
Kenta Hattori
More from 京大 マイコンクラブ
PDF
プログラムを高速化する話Ⅱ 〜GPGPU編〜
by
京大 マイコンクラブ
PDF
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
by
京大 マイコンクラブ
PDF
暗号技術入門 秘密の国のアリス 総集編
by
京大 マイコンクラブ
PPTX
女の子になれなかった人のために
by
京大 マイコンクラブ
PDF
ドット絵でプログラミング!難解言語『Piet』勉強会
by
京大 マイコンクラブ
PDF
多倍長整数の乗算と高速フーリエ変換
by
京大 マイコンクラブ
PDF
つくってあそぼ ラムダ計算インタプリタ
by
京大 マイコンクラブ
PDF
Geometry with Unity
by
京大 マイコンクラブ
PDF
Pietで競プロしよう
by
京大 マイコンクラブ
ODP
もし太陽のコアがIntelCoreだったら
by
京大 マイコンクラブ
PDF
かわいくなろうとしたら語彙力が下がった話
by
京大 マイコンクラブ
PDF
エンジニアと健康
by
京大 マイコンクラブ
PDF
セミコロンレスc++
by
京大 マイコンクラブ
PDF
C#でゲームを作る2016 第8回
by
京大 マイコンクラブ
PDF
Common Lisp入門
by
京大 マイコンクラブ
PDF
No SSH (@nojima; KMC関東例会)
by
京大 マイコンクラブ
PPTX
hideya流 テストプレイ観察術
by
京大 マイコンクラブ
PDF
Altseed
by
京大 マイコンクラブ
PDF
テキストファイルを読む💪 第1回
by
京大 マイコンクラブ
PDF
DTM練習会2017第1.5回 「伴奏の付け方」
by
京大 マイコンクラブ
プログラムを高速化する話Ⅱ 〜GPGPU編〜
by
京大 マイコンクラブ
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
by
京大 マイコンクラブ
暗号技術入門 秘密の国のアリス 総集編
by
京大 マイコンクラブ
女の子になれなかった人のために
by
京大 マイコンクラブ
ドット絵でプログラミング!難解言語『Piet』勉強会
by
京大 マイコンクラブ
多倍長整数の乗算と高速フーリエ変換
by
京大 マイコンクラブ
つくってあそぼ ラムダ計算インタプリタ
by
京大 マイコンクラブ
Geometry with Unity
by
京大 マイコンクラブ
Pietで競プロしよう
by
京大 マイコンクラブ
もし太陽のコアがIntelCoreだったら
by
京大 マイコンクラブ
かわいくなろうとしたら語彙力が下がった話
by
京大 マイコンクラブ
エンジニアと健康
by
京大 マイコンクラブ
セミコロンレスc++
by
京大 マイコンクラブ
C#でゲームを作る2016 第8回
by
京大 マイコンクラブ
Common Lisp入門
by
京大 マイコンクラブ
No SSH (@nojima; KMC関東例会)
by
京大 マイコンクラブ
hideya流 テストプレイ観察術
by
京大 マイコンクラブ
Altseed
by
京大 マイコンクラブ
テキストファイルを読む💪 第1回
by
京大 マイコンクラブ
DTM練習会2017第1.5回 「伴奏の付け方」
by
京大 マイコンクラブ
ECMAScript没proposal追悼式
1.
ECMAScript没Proposal追悼式tyage@KMC
2.
本日はお集まりいただきありがとうございます
3.
司会担当
4.
● id: tyage●
京大工学部情報学科3回● JavaScriptとか書いてる● 趣味○ 脆弱性報告○ CTF司会担当
5.
ECMAScriptとは● JavaScriptやActionScriptの実装基盤となっている言語● Ecma
Internationalによって標準化される● (例会講座でも一度紹介しました)
6.
ECMAScript標準化の流れ● Strawman(仕様提案)● →Proposal(具体化・デモ・試案)●
→Draft(仕様書作成)○ イマココ○ 3/4にRC2が出来た● →Candidate(実装・フィードバック)● →完成
7.
ECMAScript Proposalとは● 様々な人から仕様に入れてほしい提案(Proposal)が送られてくる○
提案を検討して、仕様に組み込んだり却下したり○ Proposalフェーズでなくても送られてくる
8.
採用されたECMAScript Proposal● ECMAScript6勉強会でやりました○
class○ generator○ Symbol○ Map○ const○ Promise○ Proxy○ etc...
9.
今日話すこと● Proposalだったが、ECMAScript6の仕様書(RC2)に入らなかったもの(死者)を一部紹介○ ※覚えてもメリットはないかも●
英語の誤訳が多数含まれているかと思いますがご了承下さい
10.
1つ目
11.
"use" keyword
12.
"use" keyword● https://esdiscuss.org/topic/proposal-use-keyword○
生年月日: 2014年7月25日○ 没年月日: 2014年7月26日● 「なんでPHPの”use”みたいな物が無いんや」
13.
なんだそれは???
14.
"use" keyword● PHP5.3くらいから追加されてたkeyword●
無名関数を宣言する際に、親のスコープから変数を引き継ぐことができる○ こんな機能使ったことないし知らなかったゾ...
15.
"use" keyword> //
通常、無名関数は外のスコープの変数を参照できない> $message = ‘hoge’;> $fun = function() { echo $message; };> $fun();PHP Notice: Undefined variable: message in php shellcode on line 1
16.
"use" keyword> //
use keywordを使うと外のスコープの変数が参照できる> $message = ‘hoge’;> $fun = function() use ($message) { echo $message; };> $fun();hoge
17.
なるほど
18.
一方ECMAScriptでは// 暗黙的に外のスコープの変数を見に行くvar message
= 'hoge';var fun = function() { console.log(message); };fun();hoge
19.
あれ、”use” keyword要らなくね?
20.
どうやらそうではないらしい引数を使わず、関数から別スコープにあるローカル変数が参照したいようだ(追記: dynamic scopeというらしい)
21.
どうやらそうではないらしいfunction fun1() {var
message = ‘hoge’;fun2.attachContext();};function fun2() {console.log(message);};fun1のスコープにあるmessageを参照できる
22.
えっ、何これは・・・(ドン引き
23.
皆様の反応● PHP関係ないやんけ● 何がしたいのかわからん
24.
皆様の反応● デメリットのほうが圧倒的に大きいのでは○ 人間もコンピュータも解析しづらい●
どう考えてもダメ
25.
ご愁傷さまです
26.
2つ目
27.
typeof null
28.
typeof null● http://wiki.ecmascript.org/doku.php?id=harmony:typeof_null●
typeof null が “null” を返すようにしてほしいという提案
29.
typeof演算子● オブジェクトやプリミティブ値のデータ型を文字で返すtypeof 37
=== “number”typeof “hoge” === “string”typeof {a: 1} === “object”typeof undefined === “undefined”
30.
typeof null ===
???ではこれは何になるでしょうかtypeof null
31.
typeof null ===
???ではこれは何になるでしょうかtypeof null === “object”※nullはプリミティブ値です
32.
どうしてこうなった
33.
歴史的経緯初期のJavaScriptの実装では各値の32bit領域中に以下のtype tagデータが入っていたhttp://www.2ality.com/2013/10/typeof-null.html● 000:
object● 1: int● 010: double● 100: string● 110: boolean
34.
歴史的経緯typeof演算子はtype tagでチェックしていたif (JSVAL_IS_VOID(v))
{type = JSTYPE_VOID;} else if (JSVAL_IS_OBJECT(v)) {…type = JSTYPE_OBJECT
35.
歴史的経緯nullはnull pointer(0x00)で表されていたので、type tagがobjectと同じになる!!→
typeof null === “object”
36.
歴史的経緯Brendan Eichが納期に追われて作ってしまったらしい...
37.
糞言語かよ!!
38.
typeof null● 10年くらい前からtypeof
nullが”null”を返すように変更するかは議論されていた○ http://wiki.ecmascript.org/doku.php?id=discussion:typeof
39.
typeof null● 当然ECMAScript6で修正しようという風潮はあったが...○
V8では実装されていたらしい
40.
typeof null● typeof
nullが”object”を返すことに依存したコードが多く存在した○ このまま仕様を変えると古いWebページが見れなくなるかも○ 古いコードの解釈が変わらないようにしないといけない■ 前方互換性
41.
typeof null● typeof
nullが”object”を返すことに依存したコードが多く存在した○ このまま仕様を変えると古いWebページが見れなくなるかも○ 古いコードの解釈が変わらないようにしないといけない■ 前方互換性
42.
手遅れ
43.
余談● この件に関して、Brendan EichとDouglas
Crockfordの意見は当初の段階で分かれてるっぽい○ Brendan Eich: JavaScript作った人。偉い○ Douglas Crockford: JSONとか作った人。偉い
44.
余談● Eich「前方互換性を壊すので慎重にすべき」● Crockford「古いコードが壊れてでもやるべき」
45.
そのうち解決されますように...
46.
3つ目
47.
array & generatorcomprehensions
48.
array & generator
comprehensions● array comprehension○ [for (i of [1, 2, 3]) i * i] // => [1, 4, 9]● generator comprehension○ (for (i of [1, 2, 3]) i * i) // => 1, 4, 9を順に返すgeneratorあっ、これPythonで見たことあるやつだ!(Pythonだとリスト内包表記って呼ばれてるよね)
49.
実は● ECMAScript勉強会でやりました○ http://kmc.hatenablog.jp/entry/2014/07/26/181228●
2014/7/26日時点(Rev26)では仕様に含まれていた○ Firefoxでは実装されてて動く● 個人的には便利そうだしかなり気に入ってた
50.
悲劇は突然
53.
つらい・・・
54.
何があったのか● https://esdiscuss.org/notes/2014-07-30#4-7-revisit-comprehension-decision-from-last-meeting-● このミーティングでDave
Hermanがcomprehensionの問題点を指摘○ JavaScriptで書いた3種類の数独ソルバーを提示■ no comprehension style■ LINQ style■ pythonic style
55.
no comprehensions stylehttps://github.com/dherman/sudoku/blob/master/solver.methods.js
56.
LINQ stylehttps://github.com/dherman/sudoku/blob/master/solver.linq.js
57.
pythonic stylehttps://github.com/dherman/sudoku/blob/master/solver.pythonic.js
58.
どれがよい?
59.
no comprehensions style●
iteratorにmapやfilter等の便利メソッドを追加した形● 今まで通りのJavaScriptって感じで読める
60.
LINQ style● generator
comprehensionを使ってLINQを意識した形● comprehensionとメソッドチェインが混ざっている
61.
pythonic style● array
comprehensionを使ってpythonを意識した形● comprehensionとメソッドチェインが混ざっている
62.
流れ変わったな● これを見る前は支持していた人も多かったようだが...○ 既に仕様に入ってたし●
見たあとは○ comprehensions使わなくても書けるじゃん○ むしろ使いたくない
63.
流れ変わったな
64.
comprehensions、敗北
65.
いや、まだ死んでない● 結局、ECMAScript7まで延期とのこと● 今後の状況では復活する可能性も○
が、現状ではほぼ死にかけな気がする
66.
内包表記君、どこ行ってしもうたんや● 突然の消失に惜しむ声が多数○ https://esdiscuss.org/topic/comprehensions-where-art-thou
67.
内包表記君、どこ行ってしもうたんや● ミーティングに参加していなかった人から不満が出てくる
68.
内包表記君、どこ行ってしもうたんや「あんなコードはPythonicじゃないし、comprehensionが80文字を超えてる時点でなんか変でしょ」
69.
内包表記君、どこ行ってしもうたんやBrendan Eich「求められていたのはArrayを(iterableや即時と遅延等に分けて)一般化することだった。それにデリミタ(区切り文字)が足りてないのに、わざわざ消費する必要はないよね」
70.
comprehensionまたお会いしましょう
71.
4つ目
72.
Private Symbols
73.
Symbol● SymbolオブジェクトがECMAScript6から導入された● RubyのSymbolとスコシニテル●
用途としては、文字列以外の特殊なプロパティとして使われることが想定されていそう○ obj[Symbol.toStringTag] = ‘tag’● ユニークなSymbolを生み出すことができる○ Symbol('foo') !== Symbol('foo')
74.
Symbol● オブジェクトのプロパティのうち、キーがSymbolになっているものを取り出すことができるvar obj
= {};var sym = Symbol();obj[sym] = 1;Object.getOwnPropertySymbols(obj)[0] === sym;
75.
Private Symbol● https://esdiscuss.org/topic/proposal-about-private-symbol●
「getOwnPropertySymbolsで取り出せないPrivate Symbolが欲しい」● 提案したのは中国の高校生
76.
Private SymbolPrivate Symbolがあればvar
obj = function() {var privateSym = Symbol(‘hoge’, true);this[privateSym] = ‘秘密のデータ’};privateSymが分からないのでobjから秘密のデータが見えない
77.
と、思いきや
78.
Private SymbolPrivate Symbolがあればvar
obj = function() {var privateSym = Symbol(‘hoge’, true);this[privateSym] = ‘秘密のデータ’};var x = {};obj.call(x); // => xにproxyを設定しておけばprivateSymがわかる
79.
コード書きなおし
80.
Private SymbolSymbolを外から参照できないようにするためだけなのに、長い!!
81.
簡単に安全なコードをかけないようじゃダメ
82.
余談● Private Symbolに関しては、過去にもっと条件をつけて提案した人がいたが、WeakMapとProxyの関係上失敗したらしい○
https://github.com/zenparsing/es-abstract-refs/issues/11#issuecomment-65723350
83.
社会は厳しい
84.
5つ目
85.
いつの間にかなくなってたけど理由がはっきり分からないやつ
86.
いつの間にかなくなってたけど理由がはっきり分からないやつ時間が足りませんでした!(土下座
87.
Object Literal Extensions●
http://wiki.ecmascript.org/doku.php?id=harmony:object_literals● Objectの文法拡張提案○ Set Literal [[Prototype]] Operator○ Object Literal Property Shorthands○ Object Literal Property Value Shorthand○ Object Literal Computed Property Keys○ Object Initialiser super References○ Object Extension Literal
88.
Object Literal Extensions●
http://wiki.ecmascript.org/doku.php?id=harmony:object_literals● Objectの文法拡張提案○ Set Literal [[Prototype]] Operator → 死亡○ Object Literal Property Shorthands → 一部死亡○ Object Literal Property Value Shorthand → 生存○ Object Literal Computed Property Keys → 生存○ Object Initialiser super References → 一部死亡○ Object Extension Literal → 死亡
89.
Set Literal [[Prototype]]
Operator
90.
Set Literal [[Prototype]]
Operator● http://wiki.ecmascript.org/doku.php?id=harmony:proto_operator● MemberExpression <| ProtoLiteral○ という構文
91.
基本的な機能右の値(RHS)の[[Prototype]]に左のオブジェクト(LHS)を代入して返す(LHSを継承したRHSを返すみたいなイメージ)var obj =
{c: 3};var newObj = obj <| {a: 1, b: 2};newObj.c // => 3
92.
ただし、右が関数式の場合は
93.
RHSにくるもので挙動が異なる!
94.
なんとなく死んだ理由がわかった気がする...(そもそも <| って気持ち悪い)
95.
要調査● class(ECMAScript6から追加された)のextendsとして生まれ変わったのかも?○ https://esdiscuss.org/topic/alternative-syntax-forclass
Parent { … }class Child extends Parent { … }class Child2 extends (function() {}) { … }
96.
Object Literal Property
Shorthands
97.
Object Literal Property
Shorthandsvar old = {bar: 1,foo: function() { return 1 }};var new = {bar := 1,foo() { return 1 }};// ※newオブジェクトのpropertyは全てnon-writable
98.
Object Literal Property
Shorthandsvar old = {bar: 1,foo: function() { return 1 }};var new = {bar := 1, → 死亡foo() { return 1 } → 生存};// ※newオブジェクトのpropertyは全てnon-writable
99.
なんでそうなったかは不明
100.
Object Initialiser super
References
101.
Object Initialiser super
References● http://wiki.ecmascript.org/doku.php?id=harmony:object_initialiser_super● super keywordを使って継承元のclassのメソッドが呼び出せる○ Pythonで見たことあるkeywordだな...
102.
Object Initialiser super
References生き残った例class Parent {foo() { … }}class Child extend Parent {foo() { super(); }}
103.
Object Initialiser super
References生き残った例2class Parent {foo() { … }}class Child extend Parent {bar() { super.foo(); }}
104.
Object Initialiser super
References死んだ例(当初はclassはなかったので、classがあったと想定)class Child extend Parent {get super set f(v) { f = v; }}
105.
Object Initialiser super
Referencesclass Child extend Parent {get super set f(v) { f = v; }}上と下は同じclass Child extend Parent {set f(v) { f=v; }get f() { return super.f; }}
106.
get super set…うーん...(set
super getもある)
107.
Object Extension Literal
108.
Object Extension Literal.を使ってオブジェクトを拡張できるリテラルvar
obj = {};obj.{ a: 1, b: 2, c: 3 };obj.a // => 1
109.
過激だ!
110.
Object Extension Literal●
そこそこ物議を醸した○ https://esdiscuss.org/topic/new-object-extension-literal-strawman● さらに、これを使ったclass定義を考える人も○ http://wiki.ecmascript.org/doku.php?id=harmony:object_extension_literal_class_pattern
111.
Object Extension Literal
112.
過激だ!!
113.
ところで、生き残った構文は?
114.
Object Literal Property
ValueShorthand
115.
Object Literal Property
Value Shorthandオブジェクトの初期化時に、変数名とプロパティ名が同じ場合に使える省略記法var a = 1, b = 2;var old = { a: a, b: b };var new = { a, b };
116.
Object Literal ComputedProperty
Keys
117.
Object Literal Computed
Property Keysオブジェクトの初期化時に、プロパティ名に式の評価結果を与えることができるvar a = ‘key’;var old = {}; old[a] = 1;var new = { [a]: 1 };
118.
個人的にはあまり使いたくない
119.
終わりに
120.
まとめ● Proposalにもいろいろある○ こんなん考えたんだけどどう?程度のものから○
Abstruct Syntax Tree入りの仕様を持ってくるものまで● コミュニティの皆様方、お疲れ様です...○ 特に前者のProposalは意図を把握するのが大変そう○ ミーティングが思ったより戦いっぽくて大変そう
121.
死んでいったProposalに黙祷
Download
[8]
ページ先頭
©2009-2025
Movatter.jp