├── .eslintrc ├── .gitignore ├── .md.eslintrc ├── .textlintrc ├── .travis.yml ├── .travis └── github_deploy_key.enc ├── INTRO.md ├── README.md ├── SUMMARY.md ├── book.json ├── css └── index.css ├── img ├── 2015-09-26_00-15-23.png ├── brian.png └── es6-word.png ├── md └── all.md ├── package.json ├── prh.yml └── slide ├── 1.md ├── 10.md ├── 11.md ├── 12.md ├── 13.md ├── 14.md ├── 15.md ├── 16.md ├── 17.md ├── 18.md ├── 19.md ├── 2.md ├── 20.md ├── 21.md ├── 22.md ├── 23.md ├── 24.md ├── 25.md ├── 26.md ├── 27.md ├── 28.md ├── 29.md ├── 3.md ├── 30.md ├── 31.md ├── 32.md ├── 33.md ├── 34.md ├── 35.md ├── 36.md ├── 37.md ├── 4.md ├── 5.md ├── 6.md ├── 7.md ├── 8.md └── 9.md /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "indent": [ 4 | 2, 5 | 4 6 | ], 7 | "quotes": [ 8 | 2, 9 | "double" 10 | ], 11 | "linebreak-style": [ 12 | 2, 13 | "unix" 14 | ], 15 | "semi": [ 16 | 2, 17 | "always" 18 | ], 19 | "no-console": 0, 20 | "no-var": 2 21 | }, 22 | "env": { 23 | "es6": true, 24 | "node": true, 25 | "browser": true, 26 | "jquery": true, 27 | "mocha": true 28 | }, 29 | "ecmaFeatures": { 30 | "modules": true 31 | }, 32 | "extends": "eslint:recommended" 33 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### https://raw.github.com/github/gitignore/408c616ae0ad8f4b8101d8e876b9b67ac6b14059/Node.gitignore 2 | 3 | # Logs 4 | logs 5 | *.log 6 | 7 | # Runtime data 8 | pids 9 | *.pid 10 | *.seed 11 | 12 | # Directory for instrumented libs generated by jscoverage/JSCover 13 | lib-cov 14 | 15 | # Coverage directory used by tools like istanbul 16 | coverage 17 | 18 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 19 | .grunt 20 | 21 | # node-waf configuration 22 | .lock-wscript 23 | 24 | # Compiled binary addons (http://nodejs.org/api/addons.html) 25 | build/Release 26 | 27 | # Dependency directory 28 | # Commenting this out is preferred by some people, see 29 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git- 30 | node_modules 31 | 32 | 33 | ### https://raw.github.com/github/gitignore/408c616ae0ad8f4b8101d8e876b9b67ac6b14059/Global/JetBrains.gitignore 34 | 35 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm 36 | 37 | *.iml 38 | 39 | ## Directory-based project format: 40 | .idea/ 41 | # if you remove the above rule, at least ignore the following: 42 | 43 | # User-specific stuff: 44 | # .idea/workspace.xml 45 | # .idea/tasks.xml 46 | # .idea/dictionaries 47 | 48 | # Sensitive or high-churn files: 49 | # .idea/dataSources.ids 50 | # .idea/dataSources.xml 51 | # .idea/sqlDataSources.xml 52 | # .idea/dynamic.xml 53 | # .idea/uiDesigner.xml 54 | 55 | # Gradle: 56 | # .idea/gradle.xml 57 | # .idea/libraries 58 | 59 | # Mongo Explorer plugin: 60 | # .idea/mongoSettings.xml 61 | 62 | ## File-based project format: 63 | *.ipr 64 | *.iws 65 | 66 | ## Plugin-specific files: 67 | 68 | # IntelliJ 69 | out/ 70 | 71 | # mpeltonen/sbt-idea plugin 72 | .idea_modules/ 73 | 74 | # JIRA plugin 75 | atlassian-ide-plugin.xml 76 | 77 | # Crashlytics plugin (for Android Studio and IntelliJ) 78 | com_crashlytics_export_strings.xml 79 | crashlytics.properties 80 | crashlytics-build.properties 81 | 82 | 83 | # Book build output 84 | _book 85 | 86 | # eBook build output 87 | *.epub 88 | *.mobi 89 | *.pdf -------------------------------------------------------------------------------- /.md.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "no-undef": 0, 4 | "no-unused-vars": 0 5 | }, 6 | "plugins": [ 7 | "markdown" 8 | ], 9 | "extends": ".eslintrc" 10 | } -------------------------------------------------------------------------------- /.textlintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "spellcheck-tech-word": true, 4 | "no-mix-dearu-desumasu": false, 5 | "no-start-duplicated-conjunction": { 6 | "interval": 2 7 | }, 8 | "prh": { 9 | "rulePaths": [ 10 | "prh.yml" 11 | ] 12 | }, 13 | "preset-jtf-style": { 14 | "r1.1.1.本文": false, 15 | "4.3.8.一重引用符": false, 16 | "2.1.2.漢字": false, 17 | "4.2.2.疑問符(?)": false, 18 | "4.2.7.コロン(:)": false, 19 | "2.1.6.カタカナの長音": false, 20 | "2.1.5.カタカナ": false, 21 | "3.1.1.全角文字と半角文字の間": false, 22 | "4.2.6.ハイフン(-)": false, 23 | "4.3.1.丸かっこ()": false 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | node_js: stable 4 | after_success: 5 | - | 6 | 7 | $(npm bin)/set-up-ssh --key "$encrypted_c726a34f4465_key" \ 8 | --iv "$encrypted_c726a34f4465_iv" \ 9 | --path-encrypted-key ".travis/github_deploy_key.enc" 10 | 11 | $(npm bin)/update-branch --commands "npm run build" \ 12 | --commit-message "Update Build [skip ci]" \ 13 | --directory "_book" \ 14 | --distribution-branch "gh-pages" \ 15 | --source-branch "master" -------------------------------------------------------------------------------- /.travis/github_deploy_key.enc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azu/slide-what-is-ecmascript/85e71facb06f426c0fb67d681495fc803e7fb3bc/.travis/github_deploy_key.enc -------------------------------------------------------------------------------- /INTRO.md: -------------------------------------------------------------------------------- 1 | # ECMAScriptとは何か? 2 | 3 | ECMAScriptの嘘は嘘と見抜けるように 4 | 5 | Fork me on GitHub -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [ECMAScriptとは何か?](https://github.com/azu/slide-what-is-ecmascript) [![Build Status](https://travis-ci.org/azu/slide-what-is-ecmascript.svg?branch=master)](https://travis-ci.org/azu/slide-what-is-ecmascript) 2 | 3 | 4 | - WebPage: http://azu.github.io/slide-what-is-ecmascript/ 5 | - GitHub : https://github.com/azu/slide-what-is-ecmascript 6 | 7 | ## Install 8 | 9 | npm instal 10 | 11 | ## Usage 12 | 13 | Open GitBook preview 14 | 15 | npm start 16 | # Serving book on http://localhost:4000 17 | 18 | ## Tests 19 | 20 | npm test 21 | 22 | ## Contributing 23 | 24 | 1. Fork it! 25 | 2. Create your feature branch: `git checkout -b my-new-feature` 26 | 3. Commit your changes: `git commit -am 'Add some feature'` 27 | 4. Push to the branch: `git push origin my-new-feature` 28 | 5. Submit a pull request :D 29 | 30 | ## License 31 | 32 | MIT 33 | -------------------------------------------------------------------------------- /SUMMARY.md: -------------------------------------------------------------------------------- 1 | - [自己紹介](slide/1.md) 2 | - [ECMAScriptとは?](slide/2.md) 3 | - [ECMA-262](slide/3.md) 4 | - [TC39](slide/4.md) 5 | - [ECMAScript 6 / 2015の呼び方](slide/5.md) 6 | - [ES6のエディタ](slide/6.md) 7 | - [Ecma標準とISO標準の違い](slide/7.md) 8 | - [ECMAScript 7 / 2016](slide/8.md) 9 | - [ES.nextのエディタ](slide/9.md) 10 | - [ES.nextと策定プロセス](slide/10.md) 11 | - [5段階のStage](slide/11.md) 12 | - [TC39 Process: Stage](slide/12.md) 13 | - [例) do式](slide/13.md) 14 | - [ブラウザに実装 ≠ 仕様に入る](slide/14.md) 15 | - [何で1年ごとにリリースするの?](slide/15.md) 16 | - [誰がプロポーザル書いてるの?](slide/16.md) 17 | - [新しいプロポーザルを提案するには](slide/17.md) 18 | - [ECMAScriptとGitHub](slide/18.md) 19 | - [仕様についてはどこで議論?](slide/19.md) 20 | - [最近の面白い議論の流れ](slide/20.md) 21 | - [結局ECMAScript 2016って何が入るの?](slide/21.md) 22 | - [ECMAScriptに静的型って入るの?](slide/22.md) 23 | - [Ecmarkup](slide/23.md) 24 | - [Wordだった頃の様子](slide/24.md) 25 | - [ES.nextの進捗](slide/25.md) 26 | - [次の仕様っていつリリースされるの?](slide/26.md) 27 | - [ECMAScriptとModuleとWHATWG](slide/27.md) 28 | - [ES6に入らなかったプロポーザルって?](slide/28.md) 29 | - [ECMAScriptの実装ってどれぐらいあるの?](slide/29.md) 30 | - [ECMAScriptの実装状況ってどうなの?](slide/30.md) 31 | - [Transpilerって何?](slide/31.md) 32 | - [Transpiler is not Learning tools](slide/32.md) 33 | - [Polyfillって何?](slide/33.md) 34 | - [ずっとBabelを使い続けるのか?](slide/34.md) 35 | - [Contributing](slide/35.md) 36 | - [こんな機能ってES.nextに入るの?](slide/36.md) 37 | - [もっと知りたい](slide/37.md) -------------------------------------------------------------------------------- /book.json: -------------------------------------------------------------------------------- 1 | { 2 | "gitbook": ">=2.0.0", 3 | "name": "what-is-ecmascript", 4 | "title": "ECMAScriptとは何か?", 5 | "description": "ECMAScriptの仕様と策定について", 6 | "structure": { 7 | "readme": "INTRO.md" 8 | }, 9 | "styles": { 10 | "website": "css/index.css" 11 | }, 12 | "plugins": ["-fontsettings"], 13 | "pluginsConfig": { 14 | "fontSettings": { 15 | "theme": "night", 16 | "size": 3 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /css/index.css: -------------------------------------------------------------------------------- 1 | /* h1 size == h2 size */ 2 | .book .book-body .page-wrapper .page-inner section.normal h1 { 3 | font-size: 1.75em; 4 | } 5 | 6 | /* expand width of inner*/ 7 | .page-inner { 8 | max-width: 85% !important; 9 | } 10 | 11 | /* 12 | Deckset like notation 13 | 14 | ![right](img.png) 15 | ![left](img.png) 16 | */ 17 | img[alt *="right"] { 18 | float: right; 19 | margin-left: 1.1em; 20 | } 21 | 22 | img[alt *="left"] { 23 | float: left; 24 | margin-right: 1.1em; 25 | } 26 | 27 | img[alt *="center"] { 28 | margin: 0 auto; 29 | display: block; 30 | } -------------------------------------------------------------------------------- /img/2015-09-26_00-15-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azu/slide-what-is-ecmascript/85e71facb06f426c0fb67d681495fc803e7fb3bc/img/2015-09-26_00-15-23.png -------------------------------------------------------------------------------- /img/brian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azu/slide-what-is-ecmascript/85e71facb06f426c0fb67d681495fc803e7fb3bc/img/brian.png -------------------------------------------------------------------------------- /img/es6-word.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/azu/slide-what-is-ecmascript/85e71facb06f426c0fb67d681495fc803e7fb3bc/img/es6-word.png -------------------------------------------------------------------------------- /md/all.md: -------------------------------------------------------------------------------- 1 | # 自己紹介 2 | 3 | ![アイコン right](https://github.com/azu.png) 4 | 5 | - Name : **azu** 6 | - Twitter : @[azu_re](https://twitter.com/azu_re) 7 | - Website: [Web scratch], [JSer.info] 8 | 9 | [Web scratch]: http://efcl.info/ "Web scratch" 10 | [JSer.info]: http://jser.info/ "JSer.info" 11 | 12 | ---- 13 | 14 | # ECMAScriptとは? 15 | 16 | - [Ecma International](http://www.ecma-international.org/default.htm "Ecma International")によって標準化されてるJavaScriptの仕様の事 17 | - 仕様: ECMAScript 18 | - 実装: JavaScript 19 | - Stableな最新版はECMAScript 2015(aka. ES6) 20 | 21 | ------ 22 | 23 | # ECMA-262 24 | 25 | - ECMAScriptの事 26 | - _262_はEcma Internationalでの管理番号 27 | - [Ecma Standards - list](http://www.ecma-international.org/publications/standards/Standard.htm "Ecma Standards - list") 28 | 29 | 30 | ------ 31 | 32 | # TC39 33 | 34 | - Technical Committee = 専門委員会 35 | - [TC39](http://www.ecma-international.org/memento/TC39.htm): ECMAScriptを策定してる専門委員会のこと 36 | - Ecmaは色々な仕様を策定しているので、その中でECMAScriptを策定してるグループの名前がTC39 37 | - ちなみに同じくEcma標準化されてるDartは[TC52](http://www.ecma-international.org/memento/TC52.htm) 38 | 39 | ------ 40 | 41 | # ECMAScript 6 / 2015の呼び方 42 | 43 | - 一応の正式名称はECMAScript 2015。通称はES6 44 | - ES6から1年毎にリリースしていく予定のため、2015, 2016…となるように変更された 45 | 46 | > ES2015が正式名称であり、来年以降のECMAScriptの策定やリリースのスタイルに名称を合わせるというのが理由 47 | 48 | - [ES6 or ES2015 ?](http://blog.cybozu.io/entry/9081 "ES6 or ES2015 ? 〜WEB+DB PRESS Vol.87 ES6特集に寄せて〜 - Cybozu Inside Out | サイボウズエンジニアのブログ") 49 | 50 | ----- 51 | 52 | ## ES6のエディタ 53 | 54 | [![icon, right](../img/2015-09-26_00-15-23.png)](https://twitter.com/awbjs "Allen Wirfs-Brock (@awbjs) | Twitter") 55 | 56 | - Allen Wirfs-Brock(アレン・ワーフスブラック) @ Mozilla [family business](https://twitter.com/awbjs/status/649995551467945984) 57 | - [@awbjs](https://twitter.com/awbjs "@awbjs") 58 | 59 | ------ 60 | 61 | # Ecma標準とISO標準の違い 62 | 63 | - ECMAScriptは 64 | - デファクト標準([Ecma International](http://www.ecma-international.org/default.htm "Ecma International")により標準化) 65 | - デジュール標準(ISO標準化 [ISO/IEC 16262](http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=55755 "ISO/IEC 16262")) 66 | - 2つの標準化されたものを持ってるけどデファクトの方しか基本見てない 67 | - 日本ではISO/IEC JTC1/SC22のECMAScript Adhoc委員会[@azu](https://github.com/azu)もレビュアとして参加 68 | 69 | 70 | ------ 71 | 72 | # ECMAScript 7 / 2016 73 | 74 | - 大抵の場合は次(ES6の次)のECMAScriptの事 75 | - 「ES7のDecoratorについて」といった言い方はまだ仕様に入ることすら決まってないので話半分 76 | - 「次期ECMAScriptに提案されているDecoratorについて」というのがより正確 77 | - 次期ECMAScriptの事をECMAScript nextとかES.nextと言ったりもする 78 | 79 | ------ 80 | 81 | # ES.nextのエディタ 82 | 83 | [![Brian Terlson, right](../img/brian.png)](https://twitter.com/bterlson) 84 | 85 | - Brian Terlson(ブライアン・テルソン) @ Microsoft 86 | - [@bterlson](https://twitter.com/bterlson "@bterlson") 87 | 88 | ------ 89 | 90 | # ES.nextと策定プロセス 91 | 92 | - ECMAScript 2016からは機能ごとに仕様のプロポーザル(提案)を出し策定 93 | - それぞれのプロポーザルには**Stage**と呼ばれる5段階のラベルがある 94 | - 1年ごとに新しいECMAScript仕様がリリースされる 95 | - Stage 4となったプロポーザルは次期ECMAScriptに取り込まれ、正式にECMAScriptの仕様となる 96 | 97 | ------ 98 | 99 | ## 5段階のStage 100 | 101 | - 0 Strawman - アイデア 102 | - 1 Proposal - 提案 103 | - 2 Draft - ドラフト 104 | - 3 Candidate- 仕様書と同じ形式 105 | - 4 Finished - 策定完了 106 | 107 | 次期ECMAScriptは1年ごとに出るので、その時までにStage 4となったものが次期ECMAScriptに入る。 108 | 109 | ---- 110 | 111 | # TC39 Process: Stage 112 | 113 | 詳しくは[The TC39 Process](https://tc39.github.io/process-document/ "The TC39 Process")を読む。 114 | Stageは条件を満たすと1つずつアップする 115 | 116 | - Stage 0: Strawman 117 | - アイデア 118 | - Stage 1: Proposal 119 | - プロポーザルの目的や解決方法を示す 120 | - Polyfillやデモ等を用いて解説する 121 | - Stage 2: Draft 122 | - いわゆるドラフト 123 | - ECMAScript標準と同じルールでAPIや構文、セマンティックについて説明していなければならない 124 | - Stage 3: Candidate 125 | - 仕様は完成した状態 126 | - 実装や外部のフィードバックを求める状態 127 | - レビュアはその仕様策定者以外ならだれでもなれるが専門的な知識を持っている必要がある 128 | - ECMAScriptのエディタがチェックする必要があり 129 | - Stage 4: Finished 130 | - 2つの実装(not Polyfill)が必要 131 | - ECMAScriptへ取り込まれる準備が完了したことを示す状態 132 | - ECMAScriptのエディタがチェックする必要があり 133 | 134 | ------ 135 | 136 | ## 例) do式 137 | 138 | ![right do](https://monosnap.com/file/Pc9z1jSvOCOZi3q0GUE8E55kfPuRWF.png) 139 | 140 | - [do式が実装された - JS.next](http://js-next.hatenablog.com/entry/2015/10/23/193955 "do式が実装された - JS.next") 141 | - 今の時点でStage 0なのでES7で入ることはほぼない 142 | 143 | ----- 144 | 145 | ## ブラウザに実装 ≠ 仕様に入る 146 | 147 | - ブラウザに実装されても仕様に入るとは限らない 148 | - [`Object.observe`はプロポーザルから取り下げる予定](https://esdiscuss.org/topic/an-update-on-object-observe "An update on Object.observe") 149 | - プロポーザルを出してる人の半分はブラウザベンダーなので実験的に実装するケース 150 | - 机上の空論では困るので、実装に問題ない、現実に即しているかなどを検証 151 | 152 | ---- 153 | 154 | ## 何で1年ごとにリリースするの? 155 | 156 | ES6はリリースするまで結局6年かかったため、もっとスピードアップするため。 157 | 158 | ![ecmascript-timeline](https://monosnap.com/file/XqpEfoMeWxcLw92Jx1UOQ8EWe1e37m.png) 159 | 160 | 161 | ------ 162 | 163 | ## 誰がプロポーザル書いてるの? 164 | 165 | - ブラウザベンダー 166 | - ウェブ開発者 167 | - あなた 168 | 169 | [tc39/proposals](https://github.com/tc39/proposals)にプロポーザル一覧とStageが載っている。 170 | 171 | 172 | ------ 173 | 174 | # 新しいプロポーザルを提案するには 175 | 176 | 一行で書くと[tc39/proposals](https://github.com/tc39/proposals)の`stage0.md`にプロポーザルを追加してPull Request 177 | 178 | 1. 仕様策定のプロセスを理解しましょう 179 | 2. フォームから必要な情報送ってルールに同意してね 180 | 3. ProposalをPull Requestしましょう 181 | 182 | ---- 183 | 184 | # ECMAScriptとGitHub 185 | 186 | ECMAScript 2016のドラフトはGitHubで公開されている。 187 | 188 | - [tc39/ecma262](https://github.com/tc39/ecma262 "tc39/ecma262") 189 | 190 | 191 | ------ 192 | 193 | # 仕様についてはどこで議論? 194 | 195 | - メーリングリスト 196 | - [ES Discuss](https://esdiscuss.org/ "ES Discuss") 197 | - ECMAScriptのGitHub Issue 198 | - [tc39/ecma262](https://github.com/tc39/ecma262 "tc39/ecma262") 199 | - 各種プロポーザルのGitHub Issue 200 | - [tc39/proposals](https://github.com/tc39/proposals) 201 | - ECMAScriptのBugzilla 202 | - [bugs.ecmascript.org](https://bugs.ecmascript.org/) 203 | - SNS 204 | - Twitter/GitHub/Google+ 205 | 206 | ------ 207 | 208 | ## 最近の面白い議論の流れ 209 | 210 | - ウェブ開発者が「ES6のこのdestructuringにユーザーを混乱させる罠がある」 211 | - [ECMAScript 6 destructuring gotcha - NCZOnline](https://www.nczonline.net/blog/2015/10/ecmascript-6-destructuring-gotcha/ "ECMAScript 6 destructuring gotcha - NCZOnline") 212 | - Allen(ES6エディタ)が仕様に対してIssueを立てる 213 | - [Destructuring declarations that bind nothing should probably be an early error · Issue #97 · tc39/ecma262](https://github.com/tc39/ecma262/issues/97 "Destructuring declarations that bind nothing should probably be an early error · Issue #97 · tc39/ecma262") 214 | - GitHubで絶賛議論中 215 | 216 | ---- 217 | 218 | # 結局ECMAScript 2016って何が入るの? 219 | 220 | - 基本的にはES6(ECMAScript 2015)のバグ修正 221 | - 加えて、2016年1月中にStage 4となってるプロポーザルが入る 222 | 223 | 可能性としてありえるのは以下の仕様あたり。 224 | 225 | - [tc39/ecmascript-asyncawait](https://github.com/tc39/ecmascript-asyncawait) 226 | - [tc39/Array.prototype.includes](https://github.com/tc39/Array.prototype.includes/) 227 | - [rwaldron/exponentiation-operator](https://github.com/rwaldron/exponentiation-operator) 228 | 229 | ----- 230 | 231 | ## ECMAScriptに静的型って入るの? 232 | 233 | - 今のところプロポーザルのリストにはない 234 | - 話としては出てきた事あるけど、まだ提案の形になってない 235 | - [tc39-notes/jan-28.md at master · rwaldron/tc39-notes](https://github.com/rwaldron/tc39-notes/blob/master/es6/2015-01/jan-28.md#experimental-new-directions-for-javascript-at-google) 236 | - [sirisian/ecmascript-types](https://github.com/sirisian/ecmascript-types) 237 | 238 | 239 | ---- 240 | 241 | # Ecmarkup 242 | 243 | - 今までのECMAScript(6まで)はWordファイル 244 | - ES.nextでは[Ecmarkup](http://bterlson.github.io/ecmarkup/ "Ecmarkup")を使ったHTMLベース 245 | 246 | ```html 247 | 248 | SourceCharacter::any Unicode code point 249 | 250 | ``` 251 | 252 | [Ecmarkup](http://bterlson.github.io/ecmarkup/ "Ecmarkup")は仕様書向けのCustom Elementを定義したHTML。 253 | 254 | ----- 255 | 256 | ## Wordだった頃の様子 257 | 258 | ![es6 draft](../img/es6-word.png) 259 | 260 | ------ 261 | 262 | # ES.nextの進捗 263 | 264 | - [tc39/proposals](https://github.com/tc39/proposals)にプロポーザルの進捗が載ってる 265 | - Stageは2か月に一度行われるTC39のミーティングにより変化する 266 | - ミーティングの記録を読めばいい 267 | - [rwaldron/tc39-notes](https://github.com/rwaldron/tc39-notes "rwaldron/tc39-notes") 268 | 269 | ------ 270 | 271 | # 次の仕様っていつリリースされるの? 272 | 273 | - ECMAScript 2016のリリース予定は2016年の6月15-16日 274 | - Ecmaの[General Assembly](http://www.ecma-international.org/memento/GA.htm "General Assembly")(GA)で正式に承認された後にリリース 275 | - 次にGAが行われるのは2016年6月15-16日 276 | 277 | ------ 278 | 279 | # ECMAScriptとModuleとWHATWG 280 | 281 | Module loaderはES6から外されたけど、[whatwg/loader](https://github.com/whatwg/loader "whatwg/loader")で議論されてる。 282 | 283 | 284 | 285 | ------ 286 | 287 | # ES6に入らなかったプロポーザルって? 288 | 289 | 仕様として提案されたが、ES6には入らなかったものも多い。 290 | 291 | 仕様そのものが良くない、仕様策定に時間がかかる(Module loaderはコレ)など理由は色々。 292 | 293 | - [ECMAScript没proposal追悼式](http://www.slideshare.net/KMC_JP/ecmascriptproposal "ECMAScript没proposal追悼式") 294 | 295 | 296 | 297 | ------ 298 | 299 | # ECMAScriptの実装ってどれぐらいあるの? 300 | 301 | ES.nextの仕様に入るには2つ以上の実装が必要 302 | 303 | - [Chakra](https://msdn.microsoft.com/en-us/library/dn249673\(v=vs.94\).aspx) @ MicroSoft 304 | - [SpiderMonkey](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey "SpiderMonkey") @ Mozilla 305 | - [V8](https://code.google.com/p/v8/ "V8") @ Google 306 | - [JavaScriptCore](https://www.webkit.org/projects/javascript/ "JavaScriptCore") @ Apple 307 | 308 | ------ 309 | 310 | # ECMAScriptの実装状況ってどうなの? 311 | 312 | [ECMAScript 6 compatibility table](http://kangax.github.io/compat-table/es6/ "ECMAScript 6 compatibility table")で、ブラウザの実装状況を見ることが出来ます。 313 | 314 | それぞれのブラウザの更新履歴などについては以下を参照。 315 | 316 | - [azu/browser-javascript-resource](https://github.com/azu/browser-javascript-resource "azu/browser-javascript-resource") 317 | 318 | 319 | 320 | ------ 321 | 322 | # Transpilerって何? 323 | 324 | - Code to Codeの変換を行うツール 325 | - ECMAScriptではES6以降のコードをES5のコードに変換する[Babel](https://babeljs.io/ "Babel") 326 | - CSSでは[PostCSS](https://github.com/postcss/postcss "PostCSS")とか 327 | 328 | ------- 329 | 330 | ## Transpiler is not Learning tools 331 | 332 | ![slide](http://azu.github.io/slide/nodejs-es6/img/JavaScript_transformation.png) 333 | 334 | ------ 335 | 336 | # Polyfillって何? 337 | 338 | - 一種のライブラリ 339 | - 仕様で策定されている機能だが、古いブラウザなどではまだ実装されていない時に、APIが全く同じ互換実装を提供するライブラリ 340 | - 構文じゃなくてオブジェクトを提供する 341 | - PromiseとかはPolyfillできる 342 | 343 | ------ 344 | 345 | # ずっとBabelを使い続けるのか? 346 | 347 | - YES and NO 348 | - 仕様策定的には使ってもらえるとフィードバックが来やすいので歓迎 349 | - 普通に使うだけならES6の機能 + ライブラリでも十分に使える 350 | - 新しい仕様を試したくない場合は別にBabelを使わなくなるというのはあり得る 351 | 352 | ------ 353 | 354 | ## Contributing 355 | 356 | - ES.nextは殆どの仕様がGitHubにおいてある 357 | - これはW3CやWHATWGも同じ傾向 358 | - ECMAScriptの仕様自体がGitHubにある 359 | - 普通にIssueを立ててPull Requestしましょう! 360 | - [tc39/proposals](https://github.com/tc39/proposals) 361 | 362 | 363 | ------ 364 | 365 | # こんな機能ってES.nextに入るの? 366 | 367 | 検索しましょう。続きはウェブで! 368 | 369 |
370 | 371 | 372 | 373 |
374 | 375 | ----- 376 | 377 | 378 | # もっと知りたい 379 | 380 | - [ECMAScriptの仕様策定に関するカンニングペーパー | Web Scratch](http://efcl.info/2015/10/18/ecmascript-paper/ "ECMAScriptの仕様策定に関するカンニングペーパー | Web Scratch") 381 | - もうちょっと色々かいてある -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "license": "MIT", 4 | "version": "1.0.0", 5 | "directories": { 6 | "test": "test" 7 | }, 8 | "scripts": { 9 | "postinstall": "gitbook install", 10 | "prepublish": "npm run build", 11 | "start": "npm run split && gitbook serve", 12 | "build": "npm run split && gitbook build", 13 | "split": "markdown-splitter ./md/all.md -o slide/ --summary ./SUMMARY.md", 14 | "eslint": "eslint src/**/*.js", 15 | "eslint:md": "eslint -c .md.eslintrc --ext .md md/*.md", 16 | "textlint": "textlint -f pretty-error md/*.md", 17 | "test": "npm-run-all --parallel textlint eslint:md eslint build" 18 | }, 19 | "keywords": [ 20 | "gitbook", 21 | "textlint" 22 | ], 23 | "devDependencies": { 24 | "@alrra/travis-scripts": "^3.0.1", 25 | "eslint": "^2.10.1", 26 | "eslint-plugin-markdown": "git://github.com/eslint/eslint-plugin-markdown.git", 27 | "gitbook-cli": "^2.1.3", 28 | "gitbook-plugin-include-codeblock": "^1.4.0", 29 | "gitbook-plugin-japanese-support": "0.0.1", 30 | "gitbook-summary-to-path": "^1.0.1", 31 | "markdown-splitter": "^1.0.5", 32 | "mdast": "^3.0.0", 33 | "mkdirp": "^0.5.1", 34 | "mocha": "^2.2.5", 35 | "nlcst-to-string": "^1.0.0", 36 | "npm-run-all": "^2.1.0", 37 | "power-assert": "^1.0.0", 38 | "remark": "^4.2.2", 39 | "sanitize-filename": "^1.4.5", 40 | "string.prototype.repeat": "^0.2.0", 41 | "textlint": "^6.8.0", 42 | "textlint-rule-max-ten": "^2.0.1", 43 | "textlint-rule-no-mix-dearu-desumasu": "^3.0.0", 44 | "textlint-rule-no-start-duplicated-conjunction": "^1.0.3", 45 | "textlint-rule-preset-jtf-style": "^2.2.0", 46 | "textlint-rule-prh": "^3.0.1", 47 | "textlint-rule-spellcheck-tech-word": "^5.0.0" 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /prh.yml: -------------------------------------------------------------------------------- 1 | version: 1 2 | rules: 3 | 4 | # 大文字小文字全角半角の統一 5 | - expected: Cookie 6 | # 以下と等価 正規表現には強制でgフラグが付く 7 | # - expected: Cookie 8 | # pattern: "/[CcCc][OoOo][OoOo][KkKk][IiIi][EeEe]/g" 9 | # options: 10 | # wordBoundary: false 11 | # specs: [] 12 | 13 | # 正規表現で置換もできる 14 | - expected: ECMAScript $1 15 | pattern: /ECMAScript([0-9]+)/ 16 | # 変換結果についてテストも書ける 17 | - expected: jQuery 18 | specs: 19 | - from: jquery 20 | to: jQuery 21 | - from: JQUERY 22 | to: jQuery 23 | 24 | # 変換結果が期待通りではなかった場合、ルールのロードに失敗する 25 | # - expected: JavaScript 26 | # specs: 27 | # - from: JAVASCRIPT 28 | # to: JavaScprit # この場合はテスト側が間違ってる! 29 | # Error: JavaScript spec failed. "JAVASCRIPT", expected "JavaScprit", but got "JavaScript", /[JjJj][AaAa][VvVv][AaAa][SsSs][CcCc][RrRr][IiIi][PpPp][TtTt]/g 30 | 31 | # 表現の統一を図る 32 | - expected: デフォルト 33 | pattern: ディフォルト 34 | 35 | # patternは複数記述可能 36 | - expected: ハードウェア 37 | pattern: 38 | - ハードウエアー 39 | - ハードウエア # 正規表現に変換する都合上短いものを後に書いたほうがよい 40 | - ハードウェアー 41 | 42 | # patternには正規表現が利用可能 否定戻り先読みが欲しい…(JSにはない 43 | - expected: $1ソフトウェア 44 | pattern: /([^経])ソフトウエア/ 45 | specs: 46 | # 普通に変換 47 | - from: 広義のソフトウエア 48 | to: 広義のソフトウェア 49 | # 日経ソフトウエア(書名)は変換しない 50 | - from: 日経ソフトウエア 51 | to: 日経ソフトウエア 52 | 53 | # 単語境界の区別 54 | - expected: js 55 | # pattern: "/\b[JjJj][SsSs]\b/g" # と等価 \b が前後に付与される 56 | options: 57 | wordBoundary: true 58 | specs: 59 | - from: foo JS bar 60 | to: foo js bar 61 | - from: foo altJS bar 62 | to: foo altJS bar 63 | # 日本語+単語境界の仕様は自分で調べてね…! 64 | - from: 今日もJS祭り 65 | to: 今日もjs祭り 66 | -------------------------------------------------------------------------------- /slide/1.md: -------------------------------------------------------------------------------- 1 | # 自己紹介 2 | 3 | ![アイコン right](https://github.com/azu.png) 4 | 5 | - Name : **azu** 6 | - Twitter : @[azu_re](https://twitter.com/azu_re) 7 | - Website: [Web scratch], [JSer.info] 8 | 9 | [web scratch]: http://efcl.info/ "Web scratch" 10 | 11 | [jser.info]: http://jser.info/ "JSer.info" 12 | -------------------------------------------------------------------------------- /slide/10.md: -------------------------------------------------------------------------------- 1 | # ES.nextと策定プロセス 2 | 3 | - ECMAScript 2016からは機能ごとに仕様のプロポーザル(提案)を出し策定 4 | - それぞれのプロポーザルには**Stage**と呼ばれる5段階のラベルがある 5 | - 1年ごとに新しいECMAScript仕様がリリースされる 6 | - Stage 4となったプロポーザルは次期ECMAScriptに取り込まれ、正式にECMAScriptの仕様となる 7 | -------------------------------------------------------------------------------- /slide/11.md: -------------------------------------------------------------------------------- 1 | ## 5段階のStage 2 | 3 | - 0 Strawman - アイデア 4 | - 1 Proposal - 提案 5 | - 2 Draft - ドラフト 6 | - 3 Candidate- 仕様書と同じ形式 7 | - 4 Finished - 策定完了 8 | 9 | 次期ECMAScriptは1年ごとに出るので、その時までにStage 4となったものが次期ECMAScriptに入る。 10 | -------------------------------------------------------------------------------- /slide/12.md: -------------------------------------------------------------------------------- 1 | # TC39 Process: Stage 2 | 3 | 詳しくは[The TC39 Process](https://tc39.github.io/process-document/ "The TC39 Process")を読む。 4 | Stageは条件を満たすと1つずつアップする 5 | 6 | - Stage 0: Strawman 7 | - アイデア 8 | - Stage 1: Proposal 9 | - プロポーザルの目的や解決方法を示す 10 | - Polyfillやデモ等を用いて解説する 11 | - Stage 2: Draft 12 | - いわゆるドラフト 13 | - ECMAScript標準と同じルールでAPIや構文、セマンティックについて説明していなければならない 14 | - Stage 3: Candidate 15 | - 仕様は完成した状態 16 | - 実装や外部のフィードバックを求める状態 17 | - レビュアはその仕様策定者以外ならだれでもなれるが専門的な知識を持っている必要がある 18 | - ECMAScriptのエディタがチェックする必要があり 19 | - Stage 4: Finished 20 | - 2つの実装(not Polyfill)が必要 21 | - ECMAScriptへ取り込まれる準備が完了したことを示す状態 22 | - ECMAScriptのエディタがチェックする必要があり 23 | -------------------------------------------------------------------------------- /slide/13.md: -------------------------------------------------------------------------------- 1 | ## 例) do式 2 | 3 | ![right do](https://monosnap.com/file/Pc9z1jSvOCOZi3q0GUE8E55kfPuRWF.png) 4 | 5 | - [do式が実装された - JS.next](http://js-next.hatenablog.com/entry/2015/10/23/193955 "do式が実装された - JS.next") 6 | - 今の時点でStage 0なのでES7で入ることはほぼない 7 | -------------------------------------------------------------------------------- /slide/14.md: -------------------------------------------------------------------------------- 1 | ## ブラウザに実装 ≠ 仕様に入る 2 | 3 | - ブラウザに実装されても仕様に入るとは限らない 4 | - [`Object.observe`はプロポーザルから取り下げる予定](https://esdiscuss.org/topic/an-update-on-object-observe "An update on Object.observe") 5 | - プロポーザルを出してる人の半分はブラウザベンダーなので実験的に実装するケース 6 | - 机上の空論では困るので、実装に問題ない、現実に即しているかなどを検証 7 | -------------------------------------------------------------------------------- /slide/15.md: -------------------------------------------------------------------------------- 1 | ## 何で1年ごとにリリースするの? 2 | 3 | ES6はリリースするまで結局6年かかったため、もっとスピードアップするため。 4 | 5 | ![ecmascript-timeline](https://monosnap.com/file/XqpEfoMeWxcLw92Jx1UOQ8EWe1e37m.png) 6 | -------------------------------------------------------------------------------- /slide/16.md: -------------------------------------------------------------------------------- 1 | ## 誰がプロポーザル書いてるの? 2 | 3 | - ブラウザベンダー 4 | - ウェブ開発者 5 | - あなた 6 | 7 | [tc39/proposals](https://github.com/tc39/proposals)にプロポーザル一覧とStageが載っている。 8 | -------------------------------------------------------------------------------- /slide/17.md: -------------------------------------------------------------------------------- 1 | # 新しいプロポーザルを提案するには 2 | 3 | 一行で書くと[tc39/proposals](https://github.com/tc39/proposals)の`stage0.md`にプロポーザルを追加してPull Request 4 | 5 | 1. 仕様策定のプロセスを理解しましょう 6 | 2. フォームから必要な情報送ってルールに同意してね 7 | 3. ProposalをPull Requestしましょう 8 | -------------------------------------------------------------------------------- /slide/18.md: -------------------------------------------------------------------------------- 1 | # ECMAScriptとGitHub 2 | 3 | ECMAScript 2016のドラフトはGitHubで公開されている。 4 | 5 | - [tc39/ecma262](https://github.com/tc39/ecma262 "tc39/ecma262") 6 | -------------------------------------------------------------------------------- /slide/19.md: -------------------------------------------------------------------------------- 1 | # 仕様についてはどこで議論? 2 | 3 | - メーリングリスト 4 | - [ES Discuss](https://esdiscuss.org/ "ES Discuss") 5 | - ECMAScriptのGitHub Issue 6 | - [tc39/ecma262](https://github.com/tc39/ecma262 "tc39/ecma262") 7 | - 各種プロポーザルのGitHub Issue 8 | - [tc39/proposals](https://github.com/tc39/proposals) 9 | - ECMAScriptのBugzilla 10 | - [bugs.ecmascript.org](https://bugs.ecmascript.org/) 11 | - SNS 12 | - Twitter/GitHub/Google+ 13 | -------------------------------------------------------------------------------- /slide/2.md: -------------------------------------------------------------------------------- 1 | # ECMAScriptとは? 2 | 3 | - [Ecma International](http://www.ecma-international.org/default.htm "Ecma International")によって標準化されてるJavaScriptの仕様の事 4 | - 仕様: ECMAScript 5 | - 実装: JavaScript 6 | - Stableな最新版はECMAScript 2015(aka. ES6) 7 | -------------------------------------------------------------------------------- /slide/20.md: -------------------------------------------------------------------------------- 1 | ## 最近の面白い議論の流れ 2 | 3 | - ウェブ開発者が「ES6のこのdestructuringにユーザーを混乱させる罠がある」 4 | - [ECMAScript 6 destructuring gotcha - NCZOnline](https://www.nczonline.net/blog/2015/10/ecmascript-6-destructuring-gotcha/ "ECMAScript 6 destructuring gotcha - NCZOnline") 5 | - Allen(ES6エディタ)が仕様に対してIssueを立てる 6 | - [Destructuring declarations that bind nothing should probably be an early error · Issue #97 · tc39/ecma262](https://github.com/tc39/ecma262/issues/97 "Destructuring declarations that bind nothing should probably be an early error · Issue #97 · tc39/ecma262") 7 | - GitHubで絶賛議論中 8 | -------------------------------------------------------------------------------- /slide/21.md: -------------------------------------------------------------------------------- 1 | # 結局ECMAScript 2016って何が入るの? 2 | 3 | - 基本的にはES6(ECMAScript 2015)のバグ修正 4 | - 加えて、2016年1月中にStage 4となってるプロポーザルが入る 5 | 6 | 可能性としてありえるのは以下の仕様あたり。 7 | 8 | - [tc39/ecmascript-asyncawait](https://github.com/tc39/ecmascript-asyncawait) 9 | - [tc39/Array.prototype.includes](https://github.com/tc39/Array.prototype.includes/) 10 | - [rwaldron/exponentiation-operator](https://github.com/rwaldron/exponentiation-operator) 11 | -------------------------------------------------------------------------------- /slide/22.md: -------------------------------------------------------------------------------- 1 | ## ECMAScriptに静的型って入るの? 2 | 3 | - 今のところプロポーザルのリストにはない 4 | - 話としては出てきた事あるけど、まだ提案の形になってない 5 | - [tc39-notes/jan-28.md at master · rwaldron/tc39-notes](https://github.com/rwaldron/tc39-notes/blob/master/es6/2015-01/jan-28.md#experimental-new-directions-for-javascript-at-google) 6 | - [sirisian/ecmascript-types](https://github.com/sirisian/ecmascript-types) 7 | -------------------------------------------------------------------------------- /slide/23.md: -------------------------------------------------------------------------------- 1 | # Ecmarkup 2 | 3 | - 今までのECMAScript(6まで)はWordファイル 4 | - ES.nextでは[Ecmarkup](http://bterlson.github.io/ecmarkup/ "Ecmarkup")を使ったHTMLベース 5 | 6 | ```html 7 | 8 | SourceCharacter::any Unicode code point 9 | 10 | ``` 11 | 12 | [Ecmarkup](http://bterlson.github.io/ecmarkup/ "Ecmarkup")は仕様書向けのCustom Elementを定義したHTML。 13 | -------------------------------------------------------------------------------- /slide/24.md: -------------------------------------------------------------------------------- 1 | ## Wordだった頃の様子 2 | 3 | ![es6 draft](../img/es6-word.png) 4 | -------------------------------------------------------------------------------- /slide/25.md: -------------------------------------------------------------------------------- 1 | # ES.nextの進捗 2 | 3 | - [tc39/proposals](https://github.com/tc39/proposals)にプロポーザルの進捗が載ってる 4 | - Stageは2か月に一度行われるTC39のミーティングにより変化する 5 | - ミーティングの記録を読めばいい 6 | - [rwaldron/tc39-notes](https://github.com/rwaldron/tc39-notes "rwaldron/tc39-notes") 7 | -------------------------------------------------------------------------------- /slide/26.md: -------------------------------------------------------------------------------- 1 | # 次の仕様っていつリリースされるの? 2 | 3 | - ECMAScript 2016のリリース予定は2016年の6月15-16日 4 | - Ecmaの[General Assembly](http://www.ecma-international.org/memento/GA.htm "General Assembly")(GA)で正式に承認された後にリリース 5 | - 次にGAが行われるのは2016年6月15-16日 6 | -------------------------------------------------------------------------------- /slide/27.md: -------------------------------------------------------------------------------- 1 | # ECMAScriptとModuleとWHATWG 2 | 3 | Module loaderはES6から外されたけど、[whatwg/loader](https://github.com/whatwg/loader "whatwg/loader")で議論されてる。 4 | -------------------------------------------------------------------------------- /slide/28.md: -------------------------------------------------------------------------------- 1 | # ES6に入らなかったプロポーザルって? 2 | 3 | 仕様として提案されたが、ES6には入らなかったものも多い。 4 | 5 | 仕様そのものが良くない、仕様策定に時間がかかる(Module loaderはコレ)など理由は色々。 6 | 7 | - [ECMAScript没proposal追悼式](http://www.slideshare.net/KMC_JP/ecmascriptproposal "ECMAScript没proposal追悼式") 8 | -------------------------------------------------------------------------------- /slide/29.md: -------------------------------------------------------------------------------- 1 | # ECMAScriptの実装ってどれぐらいあるの? 2 | 3 | ES.nextの仕様に入るには2つ以上の実装が必要 4 | 5 | - [Chakra](https://msdn.microsoft.com/en-us/library/dn249673(v=vs.94).aspx) @ MicroSoft 6 | - [SpiderMonkey](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey "SpiderMonkey") @ Mozilla 7 | - [V8](https://code.google.com/p/v8/ "V8") @ Google 8 | - [JavaScriptCore](https://www.webkit.org/projects/javascript/ "JavaScriptCore") @ Apple 9 | -------------------------------------------------------------------------------- /slide/3.md: -------------------------------------------------------------------------------- 1 | # ECMA-262 2 | 3 | - ECMAScriptの事 4 | - _262_はEcma Internationalでの管理番号 5 | - [Ecma Standards - list](http://www.ecma-international.org/publications/standards/Standard.htm "Ecma Standards - list") 6 | -------------------------------------------------------------------------------- /slide/30.md: -------------------------------------------------------------------------------- 1 | # ECMAScriptの実装状況ってどうなの? 2 | 3 | [ECMAScript 6 compatibility table](http://kangax.github.io/compat-table/es6/ "ECMAScript 6 compatibility table")で、ブラウザの実装状況を見ることが出来ます。 4 | 5 | それぞれのブラウザの更新履歴などについては以下を参照。 6 | 7 | - [azu/browser-javascript-resource](https://github.com/azu/browser-javascript-resource "azu/browser-javascript-resource") 8 | -------------------------------------------------------------------------------- /slide/31.md: -------------------------------------------------------------------------------- 1 | # Transpilerって何? 2 | 3 | - Code to Codeの変換を行うツール 4 | - ECMAScriptではES6以降のコードをES5のコードに変換する[Babel](https://babeljs.io/ "Babel") 5 | - CSSでは[PostCSS](https://github.com/postcss/postcss "PostCSS")とか 6 | -------------------------------------------------------------------------------- /slide/32.md: -------------------------------------------------------------------------------- 1 | ## Transpiler is not Learning tools 2 | 3 | ![slide](http://azu.github.io/slide/nodejs-es6/img/JavaScript_transformation.png) 4 | -------------------------------------------------------------------------------- /slide/33.md: -------------------------------------------------------------------------------- 1 | # Polyfillって何? 2 | 3 | - 一種のライブラリ 4 | - 仕様で策定されている機能だが、古いブラウザなどではまだ実装されていない時に、APIが全く同じ互換実装を提供するライブラリ 5 | - 構文じゃなくてオブジェクトを提供する 6 | - PromiseとかはPolyfillできる 7 | -------------------------------------------------------------------------------- /slide/34.md: -------------------------------------------------------------------------------- 1 | # ずっとBabelを使い続けるのか? 2 | 3 | - YES and NO 4 | - 仕様策定的には使ってもらえるとフィードバックが来やすいので歓迎 5 | - 普通に使うだけならES6の機能 + ライブラリでも十分に使える 6 | - 新しい仕様を試したくない場合は別にBabelを使わなくなるというのはあり得る 7 | -------------------------------------------------------------------------------- /slide/35.md: -------------------------------------------------------------------------------- 1 | ## Contributing 2 | 3 | - ES.nextは殆どの仕様がGitHubにおいてある 4 | - これはW3CやWHATWGも同じ傾向 5 | - ECMAScriptの仕様自体がGitHubにある 6 | - 普通にIssueを立ててPull Requestしましょう! 7 | - [tc39/proposals](https://github.com/tc39/proposals) 8 | -------------------------------------------------------------------------------- /slide/36.md: -------------------------------------------------------------------------------- 1 | # こんな機能ってES.nextに入るの? 2 | 3 | 検索しましょう。続きはウェブで! 4 | 5 |
6 | 7 | 8 | 9 |
10 | -------------------------------------------------------------------------------- /slide/37.md: -------------------------------------------------------------------------------- 1 | # もっと知りたい 2 | 3 | - [ECMAScriptの仕様策定に関するカンニングペーパー | Web Scratch](http://efcl.info/2015/10/18/ecmascript-paper/ "ECMAScriptの仕様策定に関するカンニングペーパー | Web Scratch") 4 | - もうちょっと色々かいてある 5 | -------------------------------------------------------------------------------- /slide/4.md: -------------------------------------------------------------------------------- 1 | # TC39 2 | 3 | - Technical Committee = 専門委員会 4 | - [TC39](http://www.ecma-international.org/memento/TC39.htm): ECMAScriptを策定してる専門委員会のこと 5 | - Ecmaは色々な仕様を策定しているので、その中でECMAScriptを策定してるグループの名前がTC39 6 | - ちなみに同じくEcma標準化されてるDartは[TC52](http://www.ecma-international.org/memento/TC52.htm) 7 | -------------------------------------------------------------------------------- /slide/5.md: -------------------------------------------------------------------------------- 1 | # ECMAScript 6 / 2015の呼び方 2 | 3 | - 一応の正式名称はECMAScript 2015。通称はES6 4 | - ES6から1年毎にリリースしていく予定のため、2015, 2016…となるように変更された 5 | 6 | > ES2015が正式名称であり、来年以降のECMAScriptの策定やリリースのスタイルに名称を合わせるというのが理由 7 | 8 | - [ES6 or ES2015 ?](http://blog.cybozu.io/entry/9081 "ES6 or ES2015 ? 〜WEB+DB PRESS Vol.87 ES6特集に寄せて〜 - Cybozu Inside Out | サイボウズエンジニアのブログ") 9 | -------------------------------------------------------------------------------- /slide/6.md: -------------------------------------------------------------------------------- 1 | ## ES6のエディタ 2 | 3 | [![icon, right](../img/2015-09-26_00-15-23.png)](https://twitter.com/awbjs "Allen Wirfs-Brock (@awbjs) | Twitter") 4 | 5 | - Allen Wirfs-Brock(アレン・ワーフスブラック) @ Mozilla [family business](https://twitter.com/awbjs/status/649995551467945984) 6 | - [@awbjs](https://twitter.com/awbjs "@awbjs") 7 | -------------------------------------------------------------------------------- /slide/7.md: -------------------------------------------------------------------------------- 1 | # Ecma標準とISO標準の違い 2 | 3 | - ECMAScriptは 4 | - デファクト標準([Ecma International](http://www.ecma-international.org/default.htm "Ecma International")により標準化) 5 | - デジュール標準(ISO標準化 [ISO/IEC 16262](http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=55755 "ISO/IEC 16262")) 6 | - 2つの標準化されたものを持ってるけどデファクトの方しか基本見てない 7 | - 日本ではISO/IEC JTC1/SC22のECMAScript Adhoc委員会[@azu](https://github.com/azu)もレビュアとして参加 8 | -------------------------------------------------------------------------------- /slide/8.md: -------------------------------------------------------------------------------- 1 | # ECMAScript 7 / 2016 2 | 3 | - 大抵の場合は次(ES6の次)のECMAScriptの事 4 | - 「ES7のDecoratorについて」といった言い方はまだ仕様に入ることすら決まってないので話半分 5 | - 「次期ECMAScriptに提案されているDecoratorについて」というのがより正確 6 | - 次期ECMAScriptの事をECMAScript nextとかES.nextと言ったりもする 7 | -------------------------------------------------------------------------------- /slide/9.md: -------------------------------------------------------------------------------- 1 | # ES.nextのエディタ 2 | 3 | [![Brian Terlson, right](../img/brian.png)](https://twitter.com/bterlson) 4 | 5 | - Brian Terlson(ブライアン・テルソン) @ Microsoft 6 | - [@bterlson](https://twitter.com/bterlson "@bterlson") 7 | --------------------------------------------------------------------------------