本当のclosure compilerをお見せしますよ。

33
もう一度来てください、 本当のClosure Compilerお見せしますよ。 @teppeis 天下一altJS武闘会 2014/06/08

Upload: teppeis

Post on 28-May-2015

9.968 views

Category:

Technology


0 download

DESCRIPTION

天下一altJS武闘会での発表 http://connpass.com/event/6402/ Google Closure Compilerの最新事情について

TRANSCRIPT

Page 1: 本当のClosure Compilerをお見せしますよ。

もう一度来てください、 本当のClosure Compilerを お見せしますよ。

@teppeis 天下一altJS武闘会 2014/06/08

Page 2: 本当のClosure Compilerをお見せしますよ。

ClojureScriptとは違うよ!

Page 3: 本当のClosure Compilerをお見せしますよ。

Closure Compiler

It compiles from JavaScript to better JavaScript.

Page 4: 本当のClosure Compilerをお見せしますよ。

突然のdis

Page 5: 本当のClosure Compilerをお見せしますよ。
Page 6: 本当のClosure Compilerをお見せしますよ。

Closure Compilerが 最強である理由

Page 7: 本当のClosure Compilerをお見せしますよ。
Page 8: 本当のClosure Compilerをお見せしますよ。

エンドユーザー数が圧倒的

Page 9: 本当のClosure Compilerをお見せしますよ。

お前たちのaltJS、 ユーザーに価値届けてんの?• Google検索: 数十億回/日

• Gmail: 4億2500万ユーザー

• Google+: 3億人アクティブユーザー

Page 10: 本当のClosure Compilerをお見せしますよ。

さておき

Page 11: 本当のClosure Compilerをお見せしますよ。

みんなが知ってるClosure Compiler

• 圧縮&最適化

• JSDocベースの静的型付け

• 既に枯れたツール

Page 12: 本当のClosure Compilerをお見せしますよ。

JSDocベースの静的型付け

Page 13: 本当のClosure Compilerをお見せしますよ。

JSDocベースの静的型付け• たしかにだせーw

• でも、既存のJSと親和性がバツグン

• コンパイルなしでもそのまま実行できるClosure Compilerのコンパイルの遅さはJS界のScala…

• どうせJSDoc書くし。まさか、ドキュメント書かない気ですか?

Page 14: 本当のClosure Compilerをお見せしますよ。

本当のClosure Compiler

• 圧縮&最適化

• JSDocベースの静的型チェック

• GitHub化 & 超アクティブに進化中

• ES6 & CommonJS 対応

• Closure Toolsの主軸

Page 15: 本当のClosure Compilerをお見せしますよ。

5月にGitHub化

Page 16: 本当のClosure Compilerをお見せしますよ。

超活発にコミット

Page 17: 本当のClosure Compilerをお見せしますよ。

何やってんの?• ECMAScript6対応

• 新しい型推論器の実装

• CommonJS対応

• Rhino Parser削除

Page 18: 本当のClosure Compilerをお見せしますよ。

ECMAScript 6

JavaScriptベースなので、

JavaScriptと一緒に進化する。

Page 19: 本当のClosure Compilerをお見せしますよ。

Compile ES6 to ES3

java -jar compiler.jar \ --language_in ECMASCRIPT6 \ --language_out ECMASCRIPT3

もうtrunkでは動くよ。

Page 20: 本当のClosure Compilerをお見せしますよ。

Arrow Function

Page 21: 本当のClosure Compilerをお見せしますよ。

Classes

Page 22: 本当のClosure Compilerをお見せしますよ。

Enhanced object literals

Page 23: 本当のClosure Compilerをお見せしますよ。

Default, rest, spread params

Page 24: 本当のClosure Compilerをお見せしますよ。

Other ES6 features

• Module & Loader

• String templates

• Computed property

• Binary & octal literal

• RegExp new flags

Page 25: 本当のClosure Compilerをお見せしますよ。

Closure Tools

Closure Compilerのポテンシャルを 最大限に引き出すべく、 Googleが総力を結集して作り上げた フロントエンドツール群

Page 26: 本当のClosure Compilerをお見せしますよ。

Closure Tools

• Closure Compiler

• Closure Library

• Closure Templates

• Closure Stylesheets

• Closure Linter

Page 27: 本当のClosure Compilerをお見せしますよ。

全部集めると

Page 28: 本当のClosure Compilerをお見せしますよ。

さらなる超絶圧縮&連結• HTML, JS, CSSファイル内のCSSクラス名を圧縮

• HTML, JS内の国際化文字列リソースを埋め込み&連結

• LibraryのメソッドにCompilerが組み込みで対応

Page 29: 本当のClosure Compilerをお見せしますよ。

Closure Library

• 現存する唯一の

静的型付けフルスタックJSライブラリ

• DOM操作からハッシュ関数まで

Page 30: 本当のClosure Compilerをお見せしますよ。

もったいない• 静的型付け言語を活かすには型指向ライブラリが不可欠

• Closure Compiler専用だけではもったいない

Page 31: 本当のClosure Compilerをお見せしますよ。

closure-ts

• Closure LibraryのJSDocから

TypeScriptの型定義ファイルを自動生成

• github.com/teppeis/closure-ts

• 型情報をASTで定義して、

いろんなaltJSから使えるようになる(予定)

Page 32: 本当のClosure Compilerをお見せしますよ。

typescript-spec-md

• MS文化に耐えきれずdocx/pdfをMarkdown化

• github.com/teppeis/typescript-spec-md

• もはやClosure Tools関係ないw

• 翻訳募集中!

• Swiftと違ってライセンスは安全だよ!

Page 33: 本当のClosure Compilerをお見せしますよ。

Thanks!