SlideShare a Scribd company logo
もう一度来てください、
本当のClosure Compilerを
お見せしますよ。
@teppeis
天下一altJS武闘会 2014/06/08
ClojureScriptとは違うよ!
Closure Compiler
It compiles
from JavaScript
to better JavaScript.
突然のdis
本当のClosure Compilerをお見せしますよ。
Closure Compilerが
最強である理由
本当のClosure Compilerをお見せしますよ。
エンドユーザー数が圧倒的
お前たちのaltJS、
ユーザーに価値届けてんの?
• Google検索: 数十億回/日
• Gmail: 4億2500万ユーザー
• Google+: 3億人アクティブユーザー
さておき
みんなが知ってるClosure Compiler
• 圧縮&最適化
• JSDocベースの静的型付け
• 既に枯れたツール
JSDocベースの静的型付け
JSDocベースの静的型付け
• たしかにだせーw
• でも、既存のJSと親和性がバツグン
• コンパイルなしでもそのまま実行できる

Closure Compilerのコンパイルの遅さはJS界のScala…
• どうせJSDoc書くし。

まさか、ドキュメント書かない気ですか?
本当のClosure Compiler
• 圧縮&最適化
• JSDocベースの静的型チェック
• GitHub化 & 超アクティブに進化中
• ES6 & CommonJS 対応
• Closure Toolsの主軸
5月にGitHub化
超活発にコミット
何やってんの?
• ECMAScript6対応
• 新しい型推論器の実装
• CommonJS対応
• Rhino Parser削除
ECMAScript 6
JavaScriptベースなので、
JavaScriptと一緒に進化する。
Compile ES6 to ES3
java -jar compiler.jar 	
--language_in ECMASCRIPT6 	
--language_out ECMASCRIPT3
もうtrunkでは動くよ。
Arrow Function
Classes
Enhanced object literals
Default, rest, spread params
Other ES6 features
• Module & Loader
• String templates
• Computed property
• Binary & octal literal
• RegExp new flags
Closure Tools
Closure Compilerのポテンシャルを
最大限に引き出すべく、
Googleが総力を結集して作り上げた
フロントエンドツール群
Closure Tools
• Closure Compiler
• Closure Library
• Closure Templates
• Closure Stylesheets
• Closure Linter
全部集めると
さらなる超絶圧縮&連結
• HTML, JS, CSSファイル内のCSSクラス名を圧縮
• HTML, JS内の国際化文字列リソースを

埋め込み&連結
• LibraryのメソッドにCompilerが組み込みで対応
Closure Library
• 現存する唯一の

静的型付けフルスタックJSライブラリ
• DOM操作からハッシュ関数まで
もったいない
• 静的型付け言語を活かすには

型指向ライブラリが不可欠
• Closure Compiler専用だけではもったいない
closure-ts
• Closure LibraryのJSDocから

TypeScriptの型定義ファイルを自動生成
• github.com/teppeis/closure-ts
• 型情報をASTで定義して、

いろんなaltJSから使えるようになる(予定)
typescript-spec-md
• MS文化に耐えきれずdocx/pdfをMarkdown化
• github.com/teppeis/typescript-spec-md
• もはやClosure Tools関係ないw
• 翻訳募集中!
• Swiftと違ってライセンスは安全だよ!
Thanks!

More Related Content

What's hot (20)

PPTX
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
 
PDF
ドメイン駆動設計 基本を理解する
増田 亨
 
PDF
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
 
PPTX
Spanner移行について本気出して考えてみた
techgamecollege
 
PPTX
Spring CloudとZipkinを利用した分散トレーシング
Rakuten Group, Inc.
 
PDF
オブジェクト指向エクササイズのススメ
Yoji Kanno
 
PDF
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
 
PDF
私にとってのテスト
Takuto Wada
 
PDF
TLS, HTTP/2演習
shigeki_ohtsu
 
PDF
zshでコマンドライン履歴を活用する
Hideaki Miyake
 
PPTX
Nginx勉強会
Yuji Otani
 
PDF
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
 
PDF
「ドメイン駆動設計」の複雑さに立ち向かう
増田 亨
 
PPTX
ゲームエンジニアのためのデータベース設計
sairoutine
 
PDF
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
 
PDF
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
 
PDF
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
 
PDF
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
 
PPTX
ぼくとJenkinsおじさんの360日戦争
goccy
 
PPTX
Dockerからcontainerdへの移行
Akihiro Suda
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
 
ドメイン駆動設計 基本を理解する
増田 亨
 
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
 
Spanner移行について本気出して考えてみた
techgamecollege
 
Spring CloudとZipkinを利用した分散トレーシング
Rakuten Group, Inc.
 
オブジェクト指向エクササイズのススメ
Yoji Kanno
 
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
 
私にとってのテスト
Takuto Wada
 
TLS, HTTP/2演習
shigeki_ohtsu
 
zshでコマンドライン履歴を活用する
Hideaki Miyake
 
Nginx勉強会
Yuji Otani
 
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
 
「ドメイン駆動設計」の複雑さに立ち向かう
増田 亨
 
ゲームエンジニアのためのデータベース設計
sairoutine
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
 
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
 
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
 
ぼくとJenkinsおじさんの360日戦争
goccy
 
Dockerからcontainerdへの移行
Akihiro Suda
 

Viewers also liked (20)

PDF
DefinitelyTyped良いという話
gyoh_k
 
PDF
非ガチ勢「よし、Coffee script使おう!」
Muyuu Fujita
 
PPTX
IdrisでWebアプリを書く
Hideyuki Tanaka
 
PDF
JavaScript難読化読経
Yosuke HASEGAWA
 
PDF
Elm overview
dsuke Takaoka
 
PDF
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Teppei Sato
 
PPTX
kintoneの大規模フロントエンド開発とツール
Yasuharu Sakai
 
PPTX
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春
Kondo Hitoshi
 
PDF
Closure Compiler vs YUICompressor
lifesinger
 
PPTX
React way at_eight
Hideharu Okuma
 
PDF
goog.ui.Component のはぐれかた
Soichi Takamura
 
PDF
Tcl/Tkクイック入門
nyaocat
 
PDF
GopherJS + Nashorn
Takuya Ueda
 
PDF
php.js
Kenta USAMI
 
PPTX
デザイナさんにGithubでpr投げてもらうまで
Hideharu Okuma
 
PDF
次世代プラットフォームのセキュリティモデル考察(前編)
Yosuke HASEGAWA
 
PDF
怪しいWindowsプログラミング
nagoya313
 
PPTX
Presentation for alison g
Rachel Low
 
PPT
China viscose fiber industry report,2010
ResearchInChina
 
PDF
酒水类网络品牌营销解决方案【砼网B2 c电子商务咨询】
youthjoy
 
DefinitelyTyped良いという話
gyoh_k
 
非ガチ勢「よし、Coffee script使おう!」
Muyuu Fujita
 
IdrisでWebアプリを書く
Hideyuki Tanaka
 
JavaScript難読化読経
Yosuke HASEGAWA
 
Elm overview
dsuke Takaoka
 
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Teppei Sato
 
kintoneの大規模フロントエンド開発とツール
Yasuharu Sakai
 
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春
Kondo Hitoshi
 
Closure Compiler vs YUICompressor
lifesinger
 
React way at_eight
Hideharu Okuma
 
goog.ui.Component のはぐれかた
Soichi Takamura
 
Tcl/Tkクイック入門
nyaocat
 
GopherJS + Nashorn
Takuya Ueda
 
php.js
Kenta USAMI
 
デザイナさんにGithubでpr投げてもらうまで
Hideharu Okuma
 
次世代プラットフォームのセキュリティモデル考察(前編)
Yosuke HASEGAWA
 
怪しいWindowsプログラミング
nagoya313
 
Presentation for alison g
Rachel Low
 
China viscose fiber industry report,2010
ResearchInChina
 
酒水类网络品牌营销解决方案【砼网B2 c电子商务咨询】
youthjoy
 
Ad

Similar to 本当のClosure Compilerをお見せしますよ。 (20)

PDF
入門ClojureScript
sohta
 
PDF
From JS To CLJS
Kent Ohashi
 
PDF
Web制作勉強会 #2
Moto Yan
 
PPTX
TypeScriptでCLIアプリケーション開発
Shuto Suzuki
 
KEY
Clojureの発表など
Kikuta Go
 
PDF
Closure Toolsの紹介
Yusuke Amano
 
PDF
高速!Clojure Web 開発入門
Kazuki Tsutsumi
 
PPTX
TypeScriptをオススメする理由
Yusuke Naka
 
PPTX
webアプリケーションフレームワークの話
Yoshihiro Ura
 
PDF
ちゃんとWeb会議スライド『Coffee script』
H2O Space. Co., Ltd.
 
PDF
DLR言語によるSilverlightプログラミング
terurou
 
PDF
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
hecomi
 
KEY
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
Masaki Muranaka
 
PDF
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
Jun-ichi Sakamoto
 
PDF
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Kazuhiro Hara
 
PDF
Yet Another DLR for Silverlightの試作
terurou
 
PDF
scheme処理系の実装
bobuhiro11
 
PDF
LT#7 Hello coffeeしてきた
Shingo Inoue
 
PDF
OpenGL ES Introduction
Daiki Ijima
 
PPTX
DroidKaigi アプリの内部を見る
Kenichi Tatsuhama
 
入門ClojureScript
sohta
 
From JS To CLJS
Kent Ohashi
 
Web制作勉強会 #2
Moto Yan
 
TypeScriptでCLIアプリケーション開発
Shuto Suzuki
 
Clojureの発表など
Kikuta Go
 
Closure Toolsの紹介
Yusuke Amano
 
高速!Clojure Web 開発入門
Kazuki Tsutsumi
 
TypeScriptをオススメする理由
Yusuke Naka
 
webアプリケーションフレームワークの話
Yoshihiro Ura
 
ちゃんとWeb会議スライド『Coffee script』
H2O Space. Co., Ltd.
 
DLR言語によるSilverlightプログラミング
terurou
 
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
hecomi
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
Masaki Muranaka
 
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
Jun-ichi Sakamoto
 
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Kazuhiro Hara
 
Yet Another DLR for Silverlightの試作
terurou
 
scheme処理系の実装
bobuhiro11
 
LT#7 Hello coffeeしてきた
Shingo Inoue
 
OpenGL ES Introduction
Daiki Ijima
 
DroidKaigi アプリの内部を見る
Kenichi Tatsuhama
 
Ad

More from Teppei Sato (20)

PDF
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
 
PDF
サイボウズの給与交渉戦 - Boss Side -
Teppei Sato
 
PDF
Recent compat-table issues
Teppei Sato
 
PDF
kintoneがAWSで目指すDevOpsQAな開発
Teppei Sato
 
PDF
Automated Dependency Updates with Renovate
Teppei Sato
 
PDF
君はyarn.lockをコミットしているか?
Teppei Sato
 
PDF
サイボウズのフロントエンド開発 現在とこれからの挑戦
Teppei Sato
 
PDF
サイボウズの現在と未来
Teppei Sato
 
PDF
離れた場所でも最高のチームワークを実現する方法 ーサイボウズ開発チームのリモートワーク事例ー
Teppei Sato
 
PDF
サイボウズの開発を支えるKAIZEN文化
Teppei Sato
 
PDF
SPAと覚悟
Teppei Sato
 
PDF
JavaScript Language Update 2016 (LLoT)
Teppei Sato
 
PDF
You Don't Know ES Modules
Teppei Sato
 
PDF
Closure Compiler Updates for ES6
Teppei Sato
 
PDF
ES6 in Practice
Teppei Sato
 
PDF
Our wish to Flowtype
Teppei Sato
 
PDF
Effective ES6
Teppei Sato
 
PDF
Flowtype Introduction
Teppei Sato
 
PDF
DockerがYAVAY!
Teppei Sato
 
PDF
JavaScript Unit Test Why? What? How?
Teppei Sato
 
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
 
サイボウズの給与交渉戦 - Boss Side -
Teppei Sato
 
Recent compat-table issues
Teppei Sato
 
kintoneがAWSで目指すDevOpsQAな開発
Teppei Sato
 
Automated Dependency Updates with Renovate
Teppei Sato
 
君はyarn.lockをコミットしているか?
Teppei Sato
 
サイボウズのフロントエンド開発 現在とこれからの挑戦
Teppei Sato
 
サイボウズの現在と未来
Teppei Sato
 
離れた場所でも最高のチームワークを実現する方法 ーサイボウズ開発チームのリモートワーク事例ー
Teppei Sato
 
サイボウズの開発を支えるKAIZEN文化
Teppei Sato
 
SPAと覚悟
Teppei Sato
 
JavaScript Language Update 2016 (LLoT)
Teppei Sato
 
You Don't Know ES Modules
Teppei Sato
 
Closure Compiler Updates for ES6
Teppei Sato
 
ES6 in Practice
Teppei Sato
 
Our wish to Flowtype
Teppei Sato
 
Effective ES6
Teppei Sato
 
Flowtype Introduction
Teppei Sato
 
DockerがYAVAY!
Teppei Sato
 
JavaScript Unit Test Why? What? How?
Teppei Sato
 

Recently uploaded (9)

PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PDF
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 

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