Download - 本当のClosure Compilerをお見せしますよ。
![Page 1: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/1.jpg)
もう一度来てください、 本当のClosure Compilerを お見せしますよ。
@teppeis 天下一altJS武闘会 2014/06/08
![Page 2: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/2.jpg)
ClojureScriptとは違うよ!
![Page 3: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/3.jpg)
Closure Compiler
It compiles from JavaScript to better JavaScript.
![Page 4: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/4.jpg)
突然のdis
![Page 5: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/5.jpg)
![Page 6: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/6.jpg)
Closure Compilerが 最強である理由
![Page 7: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/7.jpg)
![Page 8: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/8.jpg)
エンドユーザー数が圧倒的
![Page 9: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/9.jpg)
お前たちのaltJS、 ユーザーに価値届けてんの?• Google検索: 数十億回/日
• Gmail: 4億2500万ユーザー
• Google+: 3億人アクティブユーザー
![Page 10: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/10.jpg)
さておき
![Page 11: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/11.jpg)
みんなが知ってるClosure Compiler
• 圧縮&最適化
• JSDocベースの静的型付け
• 既に枯れたツール
![Page 12: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/12.jpg)
JSDocベースの静的型付け
![Page 13: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/13.jpg)
JSDocベースの静的型付け• たしかにだせーw
• でも、既存のJSと親和性がバツグン
• コンパイルなしでもそのまま実行できるClosure Compilerのコンパイルの遅さはJS界のScala…
• どうせJSDoc書くし。まさか、ドキュメント書かない気ですか?
![Page 14: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/14.jpg)
本当のClosure Compiler
• 圧縮&最適化
• JSDocベースの静的型チェック
• GitHub化 & 超アクティブに進化中
• ES6 & CommonJS 対応
• Closure Toolsの主軸
![Page 15: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/15.jpg)
5月にGitHub化
![Page 16: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/16.jpg)
超活発にコミット
![Page 17: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/17.jpg)
何やってんの?• ECMAScript6対応
• 新しい型推論器の実装
• CommonJS対応
• Rhino Parser削除
![Page 18: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/18.jpg)
ECMAScript 6
JavaScriptベースなので、
JavaScriptと一緒に進化する。
![Page 19: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/19.jpg)
Compile ES6 to ES3
java -jar compiler.jar \ --language_in ECMASCRIPT6 \ --language_out ECMASCRIPT3
もうtrunkでは動くよ。
![Page 20: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/20.jpg)
Arrow Function
![Page 21: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/21.jpg)
Classes
![Page 22: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/22.jpg)
Enhanced object literals
![Page 23: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/23.jpg)
Default, rest, spread params
![Page 24: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/24.jpg)
Other ES6 features
• Module & Loader
• String templates
• Computed property
• Binary & octal literal
• RegExp new flags
![Page 25: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/25.jpg)
Closure Tools
Closure Compilerのポテンシャルを 最大限に引き出すべく、 Googleが総力を結集して作り上げた フロントエンドツール群
![Page 26: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/26.jpg)
Closure Tools
• Closure Compiler
• Closure Library
• Closure Templates
• Closure Stylesheets
• Closure Linter
![Page 27: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/27.jpg)
全部集めると
![Page 28: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/28.jpg)
さらなる超絶圧縮&連結• HTML, JS, CSSファイル内のCSSクラス名を圧縮
• HTML, JS内の国際化文字列リソースを埋め込み&連結
• LibraryのメソッドにCompilerが組み込みで対応
![Page 29: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/29.jpg)
Closure Library
• 現存する唯一の
静的型付けフルスタックJSライブラリ
• DOM操作からハッシュ関数まで
![Page 30: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/30.jpg)
もったいない• 静的型付け言語を活かすには型指向ライブラリが不可欠
• Closure Compiler専用だけではもったいない
![Page 31: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/31.jpg)
closure-ts
• Closure LibraryのJSDocから
TypeScriptの型定義ファイルを自動生成
• github.com/teppeis/closure-ts
• 型情報をASTで定義して、
いろんなaltJSから使えるようになる(予定)
![Page 32: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/32.jpg)
typescript-spec-md
• MS文化に耐えきれずdocx/pdfをMarkdown化
• github.com/teppeis/typescript-spec-md
• もはやClosure Tools関係ないw
• 翻訳募集中!
• Swiftと違ってライセンスは安全だよ!
![Page 33: 本当のClosure Compilerをお見せしますよ。](https://reader034.vdocuments.pub/reader034/viewer/2022052311/55661649d8b42a06318b4fb6/html5/thumbnails/33.jpg)
Thanks!