Submit Search
Upload
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
•
20 likes
•
18,408 views
Teppei Sato
Follow
ES6+カジュアルトークの発表資料です。 http://connpass.com/event/9113/
Read less
Read more
Technology
Report
Share
Report
Share
1 of 36
Download now
Download to read offline
Recommended
Closure Compiler Updates for ES6
Closure Compiler Updates for ES6
Teppei Sato
本当のClosure Compilerをお見せしますよ。
本当のClosure Compilerをお見せしますよ。
Teppei Sato
Flowtype Introduction
Flowtype Introduction
Teppei Sato
ライブラリにあらず! 〜Google Closure Toolsの事始め〜
ライブラリにあらず! 〜Google Closure Toolsの事始め〜
Kazuya Hiruma
コンパイラ指向ReVIEW
コンパイラ指向ReVIEW
Masahiro Wakame
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3
Masahiro Wakame
Isomorphic web development with scala and scala.js
Isomorphic web development with scala and scala.js
TanUkkii
Ember コミュニティとわたし
Ember コミュニティとわたし
Ryunosuke SATO
Recommended
Closure Compiler Updates for ES6
Closure Compiler Updates for ES6
Teppei Sato
本当のClosure Compilerをお見せしますよ。
本当のClosure Compilerをお見せしますよ。
Teppei Sato
Flowtype Introduction
Flowtype Introduction
Teppei Sato
ライブラリにあらず! 〜Google Closure Toolsの事始め〜
ライブラリにあらず! 〜Google Closure Toolsの事始め〜
Kazuya Hiruma
コンパイラ指向ReVIEW
コンパイラ指向ReVIEW
Masahiro Wakame
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3
Masahiro Wakame
Isomorphic web development with scala and scala.js
Isomorphic web development with scala and scala.js
TanUkkii
Ember コミュニティとわたし
Ember コミュニティとわたし
Ryunosuke SATO
Web socket and gRPC
Web socket and gRPC
TIS Inc
React.js + Reduxで作るSPA
React.js + Reduxで作るSPA
Shohei Saeki
Ansibleハンズオン勉強会
Ansibleハンズオン勉強会
Takahisa Iwamoto
Presentation on your terminal
Presentation on your terminal
Takuya ASADA
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミング
TanUkkii
About Reauire.js
About Reauire.js
Kyohei Morimoto
Containerで変わるDevOps
Containerで変わるDevOps
shokiri
OSC 2011 KeySnail
OSC 2011 KeySnail
Masafumi Oyamada
LocalStack
LocalStack
chibochibo
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話
Yoshihiro Ura
Reactとbabelで簡易タスク管理ツール作ってみた
Reactとbabelで簡易タスク管理ツール作ってみた
Tsuyoshi Maeda
うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?
Masahiro Sano
Babelで先取り次世代javascript
Babelで先取り次世代javascript
Tsuyoshi Maeda
LT#7 Hello coffeeしてきた
LT#7 Hello coffeeしてきた
Shingo Inoue
Ppl
Ppl
Seizan Shimazaki
Yesodを支える技術
Yesodを支える技術
Hiromi Ishii
Yesod勉強会
Yesod勉強会
Hideyuki Tanaka
高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編
Kazuya Numata
仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法
Hideo Takahashi
200k/sec
200k/sec
Sugawara Genki
React Canvasで作るFlappy Bird
React Canvasで作るFlappy Bird
Takuya Tejima
AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ
AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ
アシアル株式会社
More Related Content
What's hot
Web socket and gRPC
Web socket and gRPC
TIS Inc
React.js + Reduxで作るSPA
React.js + Reduxで作るSPA
Shohei Saeki
Ansibleハンズオン勉強会
Ansibleハンズオン勉強会
Takahisa Iwamoto
Presentation on your terminal
Presentation on your terminal
Takuya ASADA
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミング
TanUkkii
About Reauire.js
About Reauire.js
Kyohei Morimoto
Containerで変わるDevOps
Containerで変わるDevOps
shokiri
OSC 2011 KeySnail
OSC 2011 KeySnail
Masafumi Oyamada
LocalStack
LocalStack
chibochibo
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話
Yoshihiro Ura
Reactとbabelで簡易タスク管理ツール作ってみた
Reactとbabelで簡易タスク管理ツール作ってみた
Tsuyoshi Maeda
うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?
Masahiro Sano
Babelで先取り次世代javascript
Babelで先取り次世代javascript
Tsuyoshi Maeda
LT#7 Hello coffeeしてきた
LT#7 Hello coffeeしてきた
Shingo Inoue
Ppl
Ppl
Seizan Shimazaki
Yesodを支える技術
Yesodを支える技術
Hiromi Ishii
Yesod勉強会
Yesod勉強会
Hideyuki Tanaka
高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編
Kazuya Numata
仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法
Hideo Takahashi
200k/sec
200k/sec
Sugawara Genki
What's hot
(20)
Web socket and gRPC
Web socket and gRPC
React.js + Reduxで作るSPA
React.js + Reduxで作るSPA
Ansibleハンズオン勉強会
Ansibleハンズオン勉強会
Presentation on your terminal
Presentation on your terminal
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミング
About Reauire.js
About Reauire.js
Containerで変わるDevOps
Containerで変わるDevOps
OSC 2011 KeySnail
OSC 2011 KeySnail
LocalStack
LocalStack
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話
Reactとbabelで簡易タスク管理ツール作ってみた
Reactとbabelで簡易タスク管理ツール作ってみた
うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?
Babelで先取り次世代javascript
Babelで先取り次世代javascript
LT#7 Hello coffeeしてきた
LT#7 Hello coffeeしてきた
Ppl
Ppl
Yesodを支える技術
Yesodを支える技術
Yesod勉強会
Yesod勉強会
高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編
仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法
200k/sec
200k/sec
Viewers also liked
React Canvasで作るFlappy Bird
React Canvasで作るFlappy Bird
Takuya Tejima
AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ
AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ
アシアル株式会社
Kotlinこんなん出ましたけど
Kotlinこんなん出ましたけど
yy yank
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
Kensaku Komatsu
非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」
Muyuu Fujita
9 anti-patterns for node.js teams
9 anti-patterns for node.js teams
Jeff Harrell
Next Generation Web Application Architecture
Next Generation Web Application Architecture
Koji SHIMADA
これからはじめるCoda2とSublime Text 2
これからはじめるCoda2とSublime Text 2
masaaki komori
Sinatraのススメ
Sinatraのススメ
@odailly_jp Odai
new Objctive-C literal syntax
new Objctive-C literal syntax
Wataru Kimura
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べ
Masahiro Nagano
Rubyはとても「人間的」
Rubyはとても「人間的」
Kazuhiro Serizawa
本格的に始めるzsh
本格的に始めるzsh
Hideaki Miyake
Ruby1.9のfiberのかっこいい使い方
Ruby1.9のfiberのかっこいい使い方
Kindai University
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
Kunihiro TANAKA
プログラマとして仕事をするために勉強すること
プログラマとして仕事をするために勉強すること
なおき きしだ
Project Lambdaの基礎
Project Lambdaの基礎
Yuichi Sakuraba
DefinitelyTyped良いという話
DefinitelyTyped良いという話
gyoh_k
受託開発時におけるAWSクラウド活用術
受託開発時におけるAWSクラウド活用術
Hiroshi Koyama
Code as data as code.
Code as data as code.
Mike Fogus
Viewers also liked
(20)
React Canvasで作るFlappy Bird
React Canvasで作るFlappy Bird
AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ
AngularとOnsen UIで作る最高のHTML5ハイブリッドアプリ
Kotlinこんなん出ましたけど
Kotlinこんなん出ましたけど
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」
9 anti-patterns for node.js teams
9 anti-patterns for node.js teams
Next Generation Web Application Architecture
Next Generation Web Application Architecture
これからはじめるCoda2とSublime Text 2
これからはじめるCoda2とSublime Text 2
Sinatraのススメ
Sinatraのススメ
new Objctive-C literal syntax
new Objctive-C literal syntax
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べ
Rubyはとても「人間的」
Rubyはとても「人間的」
本格的に始めるzsh
本格的に始めるzsh
Ruby1.9のfiberのかっこいい使い方
Ruby1.9のfiberのかっこいい使い方
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
プログラマとして仕事をするために勉強すること
プログラマとして仕事をするために勉強すること
Project Lambdaの基礎
Project Lambdaの基礎
DefinitelyTyped良いという話
DefinitelyTyped良いという話
受託開発時におけるAWSクラウド活用術
受託開発時におけるAWSクラウド活用術
Code as data as code.
Code as data as code.
Similar to Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Startup JavaScript
Startup JavaScript
Akinari Tsugo
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
Itaru Kitagawa
ES6,7で書ける JavaScript
ES6,7で書ける JavaScript
Shin Sekaryo
Js frameworkの紹介
Js frameworkの紹介
Ryo Shimada
今日から使って先取り ECMAScript6
今日から使って先取り ECMAScript6
Ryo Ohe
ES6で始めるNode.js / Starting NodeJS Development with ES6
ES6で始めるNode.js / Starting NodeJS Development with ES6
Taro Odashima
JBoss AS7 rev3
JBoss AS7 rev3
nekop
ASP.NETからASP.NET Coreに移行した話
ASP.NETからASP.NET Coreに移行した話
Taiga Takahari
Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介
Makoto Nishimura
dimSTATから見るベンチマーク
dimSTATから見るベンチマーク
hiroi10
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶ
dcubeio
LT#8 乗るしかないこのECMA Script 2015に
LT#8 乗るしかないこのECMA Script 2015に
do7be
OpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjug
Yuji Kubota
Scala.jsはじめました!
Scala.jsはじめました!
K Kinzal
Chef(Server)と AWS OpsWorks(tm)の比較
Chef(Server)と AWS OpsWorks(tm)の比較
Yukihiko SAWANOBORI
ななめ45°から見たJavaOne
ななめ45°から見たJavaOne
AdvancedTechNight
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
Koichi Sakata
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
Kohei Saito
1周遅れのScala入学 #nds41
1周遅れのScala入学 #nds41
Kazumune Katagiri
Nodejs+socket ioを試す
Nodejs+socket ioを試す
uzundk
Similar to Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
(20)
Startup JavaScript
Startup JavaScript
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
ES6,7で書ける JavaScript
ES6,7で書ける JavaScript
Js frameworkの紹介
Js frameworkの紹介
今日から使って先取り ECMAScript6
今日から使って先取り ECMAScript6
ES6で始めるNode.js / Starting NodeJS Development with ES6
ES6で始めるNode.js / Starting NodeJS Development with ES6
JBoss AS7 rev3
JBoss AS7 rev3
ASP.NETからASP.NET Coreに移行した話
ASP.NETからASP.NET Coreに移行した話
Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介
dimSTATから見るベンチマーク
dimSTATから見るベンチマーク
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶ
LT#8 乗るしかないこのECMA Script 2015に
LT#8 乗るしかないこのECMA Script 2015に
OpenJDK コミュニティに参加してみよう #jjug
OpenJDK コミュニティに参加してみよう #jjug
Scala.jsはじめました!
Scala.jsはじめました!
Chef(Server)と AWS OpsWorks(tm)の比較
Chef(Server)と AWS OpsWorks(tm)の比較
ななめ45°から見たJavaOne
ななめ45°から見たJavaOne
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
1周遅れのScala入学 #nds41
1周遅れのScala入学 #nds41
Nodejs+socket ioを試す
Nodejs+socket ioを試す
More from Teppei Sato
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
サイボウズの給与交渉戦 - Boss Side -
サイボウズの給与交渉戦 - Boss Side -
Teppei Sato
Recent compat-table issues
Recent compat-table issues
Teppei Sato
kintoneがAWSで目指すDevOpsQAな開発
kintoneがAWSで目指すDevOpsQAな開発
Teppei Sato
Automated Dependency Updates with Renovate
Automated Dependency Updates with Renovate
Teppei Sato
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Teppei Sato
サイボウズのフロントエンド開発 現在とこれからの挑戦
サイボウズのフロントエンド開発 現在とこれからの挑戦
Teppei Sato
サイボウズの現在と未来
サイボウズの現在と未来
Teppei Sato
離れた場所でも最高のチームワークを実現する方法 ーサイボウズ開発チームのリモートワーク事例ー
離れた場所でも最高のチームワークを実現する方法 ーサイボウズ開発チームのリモートワーク事例ー
Teppei Sato
サイボウズの開発を支えるKAIZEN文化
サイボウズの開発を支えるKAIZEN文化
Teppei Sato
SPAと覚悟
SPAと覚悟
Teppei Sato
JavaScript Language Update 2016 (LLoT)
JavaScript Language Update 2016 (LLoT)
Teppei Sato
You Don't Know ES Modules
You Don't Know ES Modules
Teppei Sato
ES6 in Practice
ES6 in Practice
Teppei Sato
Our wish to Flowtype
Our wish to Flowtype
Teppei Sato
Effective ES6
Effective ES6
Teppei Sato
DockerがYAVAY!
DockerがYAVAY!
Teppei Sato
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?
Teppei Sato
Effective JavaScript Ch.1
Effective JavaScript Ch.1
Teppei Sato
Browser oh browser browser
Browser oh browser browser
Teppei Sato
More from Teppei Sato
(20)
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
サイボウズの給与交渉戦 - Boss Side -
サイボウズの給与交渉戦 - Boss Side -
Recent compat-table issues
Recent compat-table issues
kintoneがAWSで目指すDevOpsQAな開発
kintoneがAWSで目指すDevOpsQAな開発
Automated Dependency Updates with Renovate
Automated Dependency Updates with Renovate
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
サイボウズのフロントエンド開発 現在とこれからの挑戦
サイボウズのフロントエンド開発 現在とこれからの挑戦
サイボウズの現在と未来
サイボウズの現在と未来
離れた場所でも最高のチームワークを実現する方法 ーサイボウズ開発チームのリモートワーク事例ー
離れた場所でも最高のチームワークを実現する方法 ーサイボウズ開発チームのリモートワーク事例ー
サイボウズの開発を支えるKAIZEN文化
サイボウズの開発を支えるKAIZEN文化
SPAと覚悟
SPAと覚悟
JavaScript Language Update 2016 (LLoT)
JavaScript Language Update 2016 (LLoT)
You Don't Know ES Modules
You Don't Know ES Modules
ES6 in Practice
ES6 in Practice
Our wish to Flowtype
Our wish to Flowtype
Effective ES6
Effective ES6
DockerがYAVAY!
DockerがYAVAY!
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?
Effective JavaScript Ch.1
Effective JavaScript Ch.1
Browser oh browser browser
Browser oh browser browser
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
1.
Closure CompilerのES6対応 あるいは
ES6時代のAltJS生存戦略 @teppeis ES6 Casual 2014/10/29
2.
Hello! • @teppeis
• cybozu kintone • Closure Compiler, TypeScript, Testing, Scaling..
3.
Closure Compiler
4.
Closure Compiler •
compile JS to better JS • 超圧縮&最適化 • JSDocベースの静的型付け
5.
あなたも毎日使ってます!
6.
JSDocベースの静的型付け
7.
JSDocベースの静的型付け • 冗長だけど、既存のJSとの親和性がバツグン
• JavaScriptの進化に追随できる(後述) • コンパイルなしでも実行可能 • どうせJSDoc書くし。 まさか、ドキュメント書かない気ですか?
8.
5月にGitHub化
9.
活発に開発中
10.
最近何やってんの? • ECMAScript6対応
• 型推論の強化 • RefasterJS(自動リファクタリング) • Conformance(規約チェック)
11.
ECMAScript 6
12.
Compile ES6 to
ES3 java -jar compiler.jar --language_in ECMASCRIPT6 --language_out ECMASCRIPT3 --js foo.js
13.
Arrow Function
14.
Class
15.
Enhanced object literals
16.
Default, rest, spread
params
17.
and already supported
! • const/let • Generator • Destructuring • String templates • Binary & octal literal • …
18.
実装中の大物 • Modules
• super (Class)
19.
ES6 compatibility table
各種ブラウザとコンパイラのES6対応表 http://kangax.github.io/compat-table/es6/
20.
21.
22.
対応状況のチェックを自動化 • かなりの書きなぐりコード
• 6to5とかも対応しようと思ったけど面 (ry
23.
Why doesn’t Closure
use Traceur?
24.
Tracuerを使わなかった理由 • Tracuerは変換結果にコメントを残せない
• Closure CompilerではJSDocが肝 • パフォーマンス問題 • TraceurはJS実装、ClosureはJava実装 • ASTとソースの変換が2回
25.
コンパイルのコスト • Traceur
+ Closure • ES6 > Traceur AST > ES5 > Closure AST > Optimized ES5 • Closure only • ES6 > Closure AST (ES6 > ES5) > Optimized ES5
26.
nodeconf.eu 2014 http://yosuke-furukawa.hatenablog.com/entry/2014/09/10/191140
27.
ちょw
28.
Tracuerの微妙なところ • 自前で実装する基準がよくわからない
• String.prototype.startsWith とか • そのおかげでランタイムがめちゃでかい。 • コンパイル不要な機能は es6shimに任せれば良いのでは?
29.
ES6 vs. AltJS
30.
AltJS黎明期 • 各種AltJSがオレオレ最強Syntaxを実装
• そのうち有用なものをES6/7が取り込む • ES6だけでも十分モダンなsyntaxに • 各ブラウザとコンパイラがES6対応開始 • いまここ
31.
AltJSの選定基準 • そのコンテキストにおけるJSの不満を解決
• 主目的はそれぞれ • 学習コスト、開発者の確保 • ECMAScriptベースだと楽じゃない? • AltJSからの出口戦略(プロダクトとAltJSどっちが長生き?) • 開発の継続性 • コミュニティが活発 • 強力な後ろだて(政治) • 移行コスト • 元コードがキレイ or 生成コードがキレイ(標準に近い)
32.
ECMAScript準拠の強み • Closure
Compilerは基本文法はJSそのまま • JS (ECMAScript) が進化すれば、 Closure Compilerも合わせて進化できる • 独自syntaxのAltJSではそうもいかない • 進化しないと、機能落ち、 類似だけど微妙に違う仕様、などに陥る
33.
ES6時代のAltJS • 欲張らないES6ベース
+ 独自色(主目的) • Closure(型、圧縮) • TypeScript(型) • AngularJS AtScript(型、アノテーション) • Facebook Flow(型、高速化?)
34.
型ばっかりでゴメンw • でも
Google, Microsoft, Facebook, ビッグネームが型付きJS始めたのは 偶然じゃあない。 • ECMAScript Types が提案に(次の発表で!) • 最強の出口戦略: 標準化 • 来るか大統一型定義時代!
35.
http://teppeis.hatenablog.com/entry/2014/10/facebook-flow-in-3-minutes
36.
Thanks!
Download now