SlideShare a Scribd company logo
1 of 42
Download to read offline
PNaClとasm.jsで
- いま、モバイルWebの先端で起こっていること
!
!

2013/11/22 Kラボ部内定例会用資料
なかざわ けい(@muo_jp) / Kラボラトリー
ずっとある要求
Web上でも爆速で

プログラムを実行したい!
Web上でもネイティブ級の

表現力を追求したい!
歴史(いろいろあったね)
ActiveX
Java Applet
NaCl
PNaCl
なぜ、今これが重要なのか
!

Firefox 22(2013年6月)でNotificationがサポートされた
ChromeはWebKitベースのNotificationを以前からサポート
Chrome for Android(一部端末、2013年3月∼)と

Firefox OS上のFirefoxは

WebGLをサポートしている
技術的な障壁はクリアされつつある



なかざわのスタンス(2011年7月∼)
いや、でも
ネイティブアプリあるじゃん?
この先、一定範囲の企業では従来の

ネイティブアプリベースのマネタイズが

立ち行かなくなる可能性がある
プラットフォーム決済手数料
Google Play(Google): 30%
App Store(Apple): 30%
Kindle Store(Amazon): 30%
ちなみにNTT docomoでの料金回収代行では、http://okwave.jp/qa/q318078.html に
よると9%+貸し倒れ分を差し引いた実効15%程度だった模様(出典としては弱い)

image: http://www.freedigitalphotos.net/images/Computers_g62-Dollar_Symbol_Computer_Key_p97450.html by Stuart Miles
なぜ決済手数料が問題か
スマートフォンからアクセスできるコンテンツ量は爆発的
に増大(18ヶ月後: コンテンツ総量10倍、決済規模5倍程度
になってもおかしくない)
一方でコンテンツ原価は上がっていく
真にコンテンツ自体の力でお金になるアプリは

極端に減る(一極集中)
それ以外のアプリは一定以上のプロモーション(広告な
ど)を行わなければ認知すらされない時代へ本格突入する
状況変化予想(∼2015年)
「一部の省力開発されたアプリがまぐれ当たりを出す一
方、多くのリソースを投入して開発されたハイクオリティ
なアプリが大規模なプロモーションとユーザデータ分析
による改善によってのし上がっていくか、既存人気IPや
既存人気タイトルのナンバリングまたはフランチャイズ
でほぼマネタイズ成功アプリが占められる」状況へ
	 こうなるとコスト競争の度合いが高まり、類似コスト構
造を持つ企業同士では原価構造の差がKSFとなる
image: http://www.freedigitalphotos.net/images/gravestones-and-a-cross-at-a-cemetery-photo-p173028 by papaija2008
つまりこのような変化が起こる
あれ、どうせ利用者にはfacebook IDでログインし
てもらうなら、別にこれWebでやってもいいよね?
あれ、どうせ広告を出稿するなら、
リンク先は別にWebでもいいよね?
あれ、どうせコンビニでギフトカードを

買ってWebでチャージしてもらうなら、

最初からWebでいいよね?

※既に、クレジットカードを持たない/使わない人々に
利用してもらう策であると同時に、30%の

プラットフォーム手数料を回避するための策とも言える

引用元: http://www.lawson.co.jp/service/static/giftcard/
あれ、リッチな表現をしたいからアプリでやっ
てたけど、HTML5でのAPIもそろそろ
しWebでいいよね?

ってき
すべての道はWebへと通ず
ユーザアカウント情報の面
広告からのユーザ動線の面
プラットフォーム手数料の面
リッチな表現の面

image: http://www.freedigitalphotos.net/images/Trains_g253-Railway_Tunnel_p42529.html by Sura Naulpradid
どうしてPNaClとasm.jsなの?
技術動向とビジネス的背景
JSランタイムの最適化が
頭打ちに近づいてきた
2012年11月からの1年分
(直近計測ポイントが多い事に注意)

緑=Chrome
青=Safari
橙=Firefox(Ion)
環境: Mac OS X 32bit(Mac Pro)
!
※octaneは計測対象の追加などにより
スコアが大きく変わっている

http://arewefastyet.com/#machine=11
octaneのスコアは横ばいに近づいている
今日のChrome(2013/11/22)
今日のFirefox(2013/11/22)
Webブラウザがパフォーマンスを
出したい主戦場が変化してきた

5年前=x86ベースのWindows PC
現在=ARMベースの携帯端末
端末部材事情
CPU→プロセス微細化はそろそろ限界。マルチコア化するも、全力で回
し続けると熱的にまずい(big.LITTLEなどで緩和も限界ある)
DRAM→値段上がってる(過去1年で倍ぐらい)
シリコンディスク→一定はサイクルが見えている
バッテリ→集積度はあまり上がっていない。基本的に危険物。大画面化
の流れに便乗して大容量化の傾向
ディスプレイ→IGZOのような低消費電力のものがどの程度の範囲のス
マートフォンに搭載されるかは未知数
ベースバンドほか→QUALCOMMのさじ加減次第(特にLTE)
端末販売の事情
消費電力/サイズ/部材グレード/重量/価格のバランス
新アーキテクチャの低価格端末はそれなりの速度
プレミアム端末と低価格端末の差はより顕著になる
欧州で昨今やたらとWindows Phoneの販売シェア
が伸びている
「ベンダーによるコントロール」へのユーザ感
覚の変化(	過去5年間にWebブラウザが得た物)
「Webの新しい機能は、ユーザの端末に入っているバージョンが上がるまでは使え
ない」鉄則→Webブラウザは自動的に最新版へ更新されて当然というコンセンサス
最新コードベースが数億台の端末に対して数週間以内に適用されることを期待でき
る(10年前にはユーザ側拒否感が強く、難しかった)
モバイルにおいて、同種の状況がどの程度確立されるかには注視する必要がある
AndroidではChrome主体の環境が増加中、比較的実現しつつある
WebViewベース(=基本的にOSのOTA更新まで主要コンポーネントが変わらない)の
サードパーティブラウザのシェア動向へ注意する必要がある
「Webで完結」の前提は、標準ブラウザシェアが85%以上あること(感覚値)
アプリを出す側の事情
プラットフォームへのロックインは避けたい
「ヨコテン」なるべくしたい
platform-independentなものはなるべくWebで、とな
るインセンティブはある(しかしこれをWebViewでや
るのは非常に辛い道のりであった)
という現状で筋の良さそうな
もの二選がPNaClとasm.js
PNaClってなにさ
Googleが推している
ダウンロードしてきたLLVMのbitcodeを端末側で

ネイティブコードにコンパイルして実行する仕組み
実行時のメモリ保護や権限管理には、Chromeが従来
からNaCl用に持っているサンドボックスを利用する
Chrome 31(2013/11/12公開)で標準サポート
asm.jsってなにさ
Mozillaが推している
LLVMのbitcodeをJSコードへ変換すると共に型情報な
どのアノテーションを付け、これに対応するJS実行環
境ではAOTコンパイルにより高速実行する仕組み
ArrayBufferをヒープとして利用する
Firefox 22(2013/06/25公開)で標準サポート
PNaClとasm.jsのノリ
PNaCl
「Androidプラットフォームのシェアが70%ぐらいあるなら、その
プラットフォームで十分高速に動けば問題ないよね」のノリ
おそらく他プラットフォームで実装されることは期待すらしてない
asm.js
「普通のJSエンジンでも実行出来て、専用最適化加えたランタイ
ムなら更に高速に実行出来たほうが嬉しいよね」のノリ
思想はDartやTypeScriptのものに近く「純粋な演算はなるべくバリ
アントな型にするのを避け評価のコストを減らす」アプローチ
asm.jsのキモ
AOTコンパイルフェイズ(http://asmjs.org/spec/latest/ より)
実行前にコードパスを読み切り、ネイティブコードを生成するのがポイント(Pythonに対するCythonと近い)
関数冒頭で”use asm”;というコードを含むと、最適化対応エンジンはAOTコンパイルを試みる
AOTコンパイル可能なコードパターンは限られている
静的型付けを実現するためのアノテーション
例: 関数冒頭で x = +x;とすると、最適化対応JSエンジンではこの変数をdoubleとして扱う
モジュールの構築時点でバリデーションを行うことで、ミスを検出する
動的に置き換えられる可能性のあるコードを含む場合、当該asm.jsモジュールのAOTコンパイルは失敗して
通常通りインタプリタ実行される(当然、この場合でもJITコンパイルは効くがasm.jsの良さは活きない)
基本的に、人が手で書くものではない(そういう芸はあってもいい)
asm.jsモジュールの例

http://asmjs.org/spec/latest/ より
PNaClのキモ
どの程度の標準ライブラリを呼び出すことが出来るか
pthread(および、おそらくC++11のstd::thread)は使えそ
う
プロセスのforkなどは出来ない
JSとの連携部分がJNIほどダルくないか
(まだまだ調査中です)
だから私はPNaClを見ていく
	Unreal EngineのPNaCl版とか、Unity Web Playerの
PNaCl版とか出ると熱い
	Playground( https://github.com/KLab/
PlaygroundOSS )をPNaClベースにポーティングして
みると、多分色々なことが見えてくる←今ココ
この先、注目すべき動向
基本ライン

「強力なプラットフォームを持つベンダーが自社ビジ
ネスとカニバるエリアへどこまで攻めていくか」と
いう話
AppleがMobile Safariでの
asm.js高速化に動くか
まずあり得ない
asm.jsベンチマークは、JSエンジンの力をドヤるのに
用いられる多くの他ベンチマークとは明らかに異なる
「スコアで挑発されたからこっちは更に倍速にしたぜ!
ヒャッハー」という純粋なエンジニアリングの世界ではない
なので、もし起こったら重要な意味を持つ
Googleがasm.js用の

AOTコンパイルサポートへ動くか
今のところ、まずあり得ない
PNaClとDartを捨てるというジャッジに近い
C++の標準ライブラリへのコール以外に特段意味
は残らない
なので、もし起こったら重要な意味を(ry
asm.js独自拡張要素
asm.js専用アプリ(パフォーマンス面でなく)の登場
現在のところ「asm.jsのコードは、最適化の施されてい
ないJSエンジンでも完全に動作する」ことが売りのひ
とつになっている
「じゃ、WebViewの中で」という話ではない
若干ふわっとしているけれど、これも起こると重要な(ry
Webからのプッシュ通知
OS X MavericksではSafariにおいてサポートされた
Chromeはしばらく前から実装している
ではモバイルでは?まだまだ
リテンションにおいてプッシュ通知が果たす役割は非常
に大きい
なので、もし起こったら重(ry
データダウンロードや
オフラインキャッシュは?
「WebだからF5叩けばいつでも最新コード」は場面によって真でない。
高解像度なテクスチャを利用するWebGLベースのゲームを作ろうとすると、データダウンロード
タイミングは確実に問題となる(基本的にはApplicationCacheによって解決する部分)
現状は50MBが上限とされる(http://stackoverflow.com/questions/14876018/what-is-the-maximumcache-size-for-ios6-web-apps-and-how-can-i-extend-it)が、これが引き上げられることがあるか?
「アクセスした際にすぐ最新ゲームを遊べるユーザ体験の実現」には、ユーザがWebサイトを訪
れていないタイミングでのキャッシュ更新が必要
iOS 7で実装されたようなバックグラウンドダウンロードの仕組みが必要になる
データサイズによってWeb向けのアプリとインストール向けのアプリがセグメントされていくよ
うになるのか?の判断ポイントでもある
番外編: Firefox OS事情
大切なのは、Firefox OS=「変化を引き起こし、他者へ圧をか
けていくプレイヤーのひとつ」ということ
端末販売者に推されるプラットフォームでなければ、引き起
こした変化も他プラットフォームから無視されて消えていく
プラットフォームの成熟度は、端末販売者としての推しやす
さに直結する
バリエーションの豊富な端末が多く出荷され、結果としての
バージョンアップ地獄に対する練度がどの程度まで高まって
いくかを注視
番外編: Tizen事情
状況がよく分からないので、変化あれば見ていく感じ
HTML5原理主義ということでもないので、PNaClアプ
ローチが割とハマる感もする
車載端末用など、ドメイン特化するのであればまた別の
考え方が必要なので引き続き見ていく。
「本気でこれ行くで」となったら本気の資本と技術を投
下出来る会社が進めているので、完全な無視は筋悪
未来は僕らの手の中
(端末的な意味で)

More Related Content

What's hot

大阪Node学園 七時限目 「ゼロからはじめるnode.js」
大阪Node学園 七時限目 「ゼロからはじめるnode.js」大阪Node学園 七時限目 「ゼロからはじめるnode.js」
大阪Node学園 七時限目 「ゼロからはじめるnode.js」Shunsuke Watanabe
 
React系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えようReact系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えようKazuhiro Hara
 
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −Kohei Asai
 
RustでWebAssembly
RustでWebAssemblyRustでWebAssembly
RustでWebAssemblyceres-inc
 
JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013Kazuho Oku
 
Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築AimingStudy
 
入門ClojureScript
入門ClojureScript入門ClojureScript
入門ClojureScriptsohta
 
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話Yutaro Miyazaki
 
SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」Naoyuki Kataoka
 
AngularJS2でつまづいたこと
AngularJS2でつまづいたことAngularJS2でつまづいたこと
AngularJS2でつまづいたことTakehiro Takahashi
 
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのかなぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのかYoichi Toyota
 
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺Yusuke Wada
 
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみるづや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみるzuya
 
RailsでReact.jsを動かしてみた話
RailsでReact.jsを動かしてみた話RailsでReact.jsを動かしてみた話
RailsでReact.jsを動かしてみた話yoshioka_cb
 
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたItaru Kitagawa
 
S14 t3 yosuke_yamashita
S14 t3 yosuke_yamashitaS14 t3 yosuke_yamashita
S14 t3 yosuke_yamashitaTakeshi Akutsu
 
WebXR TechTokyo #3 in Cluster発表資料
WebXR TechTokyo #3 in Cluster発表資料WebXR TechTokyo #3 in Cluster発表資料
WebXR TechTokyo #3 in Cluster発表資料WheetTweet
 

What's hot (20)

大阪Node学園 七時限目 「ゼロからはじめるnode.js」
大阪Node学園 七時限目 「ゼロからはじめるnode.js」大阪Node学園 七時限目 「ゼロからはじめるnode.js」
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
 
React系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えようReact系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えよう
 
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
 
RustでWebAssembly
RustでWebAssemblyRustでWebAssembly
RustでWebAssembly
 
JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013
 
Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築
 
入門ClojureScript
入門ClojureScript入門ClojureScript
入門ClojureScript
 
Node js 入門
Node js 入門Node js 入門
Node js 入門
 
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話
Vue.js 2.0 で自社プロダクトを SPA + SSR 化した話
 
React Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリングReact Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
 
SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」
 
AngularJS2でつまづいたこと
AngularJS2でつまづいたことAngularJS2でつまづいたこと
AngularJS2でつまづいたこと
 
Node.js Hands-On
Node.js Hands-OnNode.js Hands-On
Node.js Hands-On
 
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのかなぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
 
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
 
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみるづや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
 
RailsでReact.jsを動かしてみた話
RailsでReact.jsを動かしてみた話RailsでReact.jsを動かしてみた話
RailsでReact.jsを動かしてみた話
 
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
 
S14 t3 yosuke_yamashita
S14 t3 yosuke_yamashitaS14 t3 yosuke_yamashita
S14 t3 yosuke_yamashita
 
WebXR TechTokyo #3 in Cluster発表資料
WebXR TechTokyo #3 in Cluster発表資料WebXR TechTokyo #3 in Cluster発表資料
WebXR TechTokyo #3 in Cluster発表資料
 

Viewers also liked

emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略祐司 伊藤
 
Emscriptenと不思議のダンジョン
Emscriptenと不思議のダンジョンEmscriptenと不思議のダンジョン
Emscriptenと不思議のダンジョン兎 伊藤
 
C++11やemscriptenと付き合って1年間の振り返り
C++11やemscriptenと付き合って1年間の振り返りC++11やemscriptenと付き合って1年間の振り返り
C++11やemscriptenと付き合って1年間の振り返りpaosidufgythrj
 
TensorFlow を使った 機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った 機械学習ことはじめ (GDG京都 機械学習勉強会)徹 上野山
 
この3D全盛時代にもう一度考えたい2Dゲームのこと
この3D全盛時代にもう一度考えたい2Dゲームのことこの3D全盛時代にもう一度考えたい2Dゲームのこと
この3D全盛時代にもう一度考えたい2DゲームのことKei Nakazawa
 
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~KLab株式会社
 
PHP7はなぜ速いのか
PHP7はなぜ速いのかPHP7はなぜ速いのか
PHP7はなぜ速いのかYoshio Hanawa
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南Mikiya Okuno
 
Videoタグはつらいよ・・・
Videoタグはつらいよ・・・Videoタグはつらいよ・・・
Videoタグはつらいよ・・・Tatsuya Kosuge
 
FUSEe(β)で技術書プリティ化計画 公開版
FUSEe(β)で技術書プリティ化計画 公開版FUSEe(β)で技術書プリティ化計画 公開版
FUSEe(β)で技術書プリティ化計画 公開版Shunsuke Ito
 
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPUTakuro Iizuka
 
とある会社のエンジニアたちのAndroidへのフリーダムな取り組み
とある会社のエンジニアたちのAndroidへのフリーダムな取り組みとある会社のエンジニアたちのAndroidへのフリーダムな取り組み
とある会社のエンジニアたちのAndroidへのフリーダムな取り組みKei Nakazawa
 
Android好きがWindows Phone開発を始めてみた / 12.04.23 Bar Windows Phone LT
Android好きがWindows Phone開発を始めてみた / 12.04.23 Bar Windows Phone LTAndroid好きがWindows Phone開発を始めてみた / 12.04.23 Bar Windows Phone LT
Android好きがWindows Phone開発を始めてみた / 12.04.23 Bar Windows Phone LTKei Nakazawa
 
TechFeedというテクノロジーキュレーションサービスを作った話
TechFeedというテクノロジーキュレーションサービスを作った話TechFeedというテクノロジーキュレーションサービスを作った話
TechFeedというテクノロジーキュレーションサービスを作った話yoshikawa_t
 
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記Yoshiyuki Nakamura
 
13.08.10 7行110bytesで構文を拡張 出来るReVIEWの話
13.08.10 7行110bytesで構文を拡張 出来るReVIEWの話13.08.10 7行110bytesで構文を拡張 出来るReVIEWの話
13.08.10 7行110bytesで構文を拡張 出来るReVIEWの話Kei Nakazawa
 
PHP7実環境ベンチ2016春
PHP7実環境ベンチ2016春PHP7実環境ベンチ2016春
PHP7実環境ベンチ2016春Ryo Tomidokoro
 
PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話Rui Hirokawa
 
Webブラウザで使えるいろんな処理系
Webブラウザで使えるいろんな処理系Webブラウザで使えるいろんな処理系
Webブラウザで使えるいろんな処理系祐司 伊藤
 
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探るZend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探るYoshio Hanawa
 

Viewers also liked (20)

emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
 
Emscriptenと不思議のダンジョン
Emscriptenと不思議のダンジョンEmscriptenと不思議のダンジョン
Emscriptenと不思議のダンジョン
 
C++11やemscriptenと付き合って1年間の振り返り
C++11やemscriptenと付き合って1年間の振り返りC++11やemscriptenと付き合って1年間の振り返り
C++11やemscriptenと付き合って1年間の振り返り
 
TensorFlow を使った 機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った 機械学習ことはじめ (GDG京都 機械学習勉強会)
 
この3D全盛時代にもう一度考えたい2Dゲームのこと
この3D全盛時代にもう一度考えたい2Dゲームのことこの3D全盛時代にもう一度考えたい2Dゲームのこと
この3D全盛時代にもう一度考えたい2Dゲームのこと
 
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
 
PHP7はなぜ速いのか
PHP7はなぜ速いのかPHP7はなぜ速いのか
PHP7はなぜ速いのか
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南
 
Videoタグはつらいよ・・・
Videoタグはつらいよ・・・Videoタグはつらいよ・・・
Videoタグはつらいよ・・・
 
FUSEe(β)で技術書プリティ化計画 公開版
FUSEe(β)で技術書プリティ化計画 公開版FUSEe(β)で技術書プリティ化計画 公開版
FUSEe(β)で技術書プリティ化計画 公開版
 
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU
 
とある会社のエンジニアたちのAndroidへのフリーダムな取り組み
とある会社のエンジニアたちのAndroidへのフリーダムな取り組みとある会社のエンジニアたちのAndroidへのフリーダムな取り組み
とある会社のエンジニアたちのAndroidへのフリーダムな取り組み
 
Android好きがWindows Phone開発を始めてみた / 12.04.23 Bar Windows Phone LT
Android好きがWindows Phone開発を始めてみた / 12.04.23 Bar Windows Phone LTAndroid好きがWindows Phone開発を始めてみた / 12.04.23 Bar Windows Phone LT
Android好きがWindows Phone開発を始めてみた / 12.04.23 Bar Windows Phone LT
 
TechFeedというテクノロジーキュレーションサービスを作った話
TechFeedというテクノロジーキュレーションサービスを作った話TechFeedというテクノロジーキュレーションサービスを作った話
TechFeedというテクノロジーキュレーションサービスを作った話
 
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記
 
13.08.10 7行110bytesで構文を拡張 出来るReVIEWの話
13.08.10 7行110bytesで構文を拡張 出来るReVIEWの話13.08.10 7行110bytesで構文を拡張 出来るReVIEWの話
13.08.10 7行110bytesで構文を拡張 出来るReVIEWの話
 
PHP7実環境ベンチ2016春
PHP7実環境ベンチ2016春PHP7実環境ベンチ2016春
PHP7実環境ベンチ2016春
 
PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話
 
Webブラウザで使えるいろんな処理系
Webブラウザで使えるいろんな処理系Webブラウザで使えるいろんな処理系
Webブラウザで使えるいろんな処理系
 
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探るZend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探る
 

Similar to Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること

~初心者がこれから Web アプリの開発をするために~
~初心者がこれから Web アプリの開発をするために~~初心者がこれから Web アプリの開発をするために~
~初心者がこれから Web アプリの開発をするために~Oda Shinsuke
 
PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化Takashi Okamoto
 
ゲームだけじゃないHTML5
ゲームだけじゃないHTML5ゲームだけじゃないHTML5
ゲームだけじゃないHTML5Osamu Shimoda
 
Java scriptの進化
Java scriptの進化Java scriptの進化
Java scriptの進化maruyama097
 
Firefox mobile for android internals
Firefox mobile for android internalsFirefox mobile for android internals
Firefox mobile for android internalsMakoto Kato
 
Web OSで可能になる世界
Web OSで可能になる世界Web OSで可能になる世界
Web OSで可能になる世界Kensaku Komatsu
 
フロントエンド技術の変遷
フロントエンド技術の変遷フロントエンド技術の変遷
フロントエンド技術の変遷Ryo Higashigawa
 
.NET の過去、現在、そして未来
.NET の過去、現在、そして未来.NET の過去、現在、そして未来
.NET の過去、現在、そして未来Akira Inoue
 
HTML5ハイブリッドアプリ開発のベストプラクティス
HTML5ハイブリッドアプリ開発のベストプラクティスHTML5ハイブリッドアプリ開発のベストプラクティス
HTML5ハイブリッドアプリ開発のベストプラクティスアシアル株式会社
 
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Pathdynamis
 
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール WeinerをつかってみたMasakazu Muraoka
 
OWIN って何?
OWIN って何?OWIN って何?
OWIN って何?miso- soup3
 
インタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlashインタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlashYasunobu Ikeda
 
マイクロソフトにとってのWebって?
マイクロソフトにとってのWebって?マイクロソフトにとってのWebって?
マイクロソフトにとってのWebって?Microsoft
 
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデートAkira Inoue
 
2014年メディア工房勉強会 第1章「Webの仕組みとHTML5」
2014年メディア工房勉強会 第1章「Webの仕組みとHTML5」2014年メディア工房勉強会 第1章「Webの仕組みとHTML5」
2014年メディア工房勉強会 第1章「Webの仕組みとHTML5」Takashi Endo
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組みKouji Matsui
 

Similar to Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること (20)

~初心者がこれから Web アプリの開発をするために~
~初心者がこれから Web アプリの開発をするために~~初心者がこれから Web アプリの開発をするために~
~初心者がこれから Web アプリの開発をするために~
 
PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化
 
ゲームだけじゃないHTML5
ゲームだけじゃないHTML5ゲームだけじゃないHTML5
ゲームだけじゃないHTML5
 
Java scriptの進化
Java scriptの進化Java scriptの進化
Java scriptの進化
 
Firefox mobile for android internals
Firefox mobile for android internalsFirefox mobile for android internals
Firefox mobile for android internals
 
Web OSで可能になる世界
Web OSで可能になる世界Web OSで可能になる世界
Web OSで可能になる世界
 
フロントエンド技術の変遷
フロントエンド技術の変遷フロントエンド技術の変遷
フロントエンド技術の変遷
 
Mvc conf session_5_isami
Mvc conf session_5_isamiMvc conf session_5_isami
Mvc conf session_5_isami
 
.NET の過去、現在、そして未来
.NET の過去、現在、そして未来.NET の過去、現在、そして未来
.NET の過去、現在、そして未来
 
HTML5ハイブリッドアプリ開発のベストプラクティス
HTML5ハイブリッドアプリ開発のベストプラクティスHTML5ハイブリッドアプリ開発のベストプラクティス
HTML5ハイブリッドアプリ開発のベストプラクティス
 
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Path
 
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみた
 
OWIN って何?
OWIN って何?OWIN って何?
OWIN って何?
 
インタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlashインタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlash
 
マイクロソフトにとってのWebって?
マイクロソフトにとってのWebって?マイクロソフトにとってのWebって?
マイクロソフトにとってのWebって?
 
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
 
Html5/JSモバイルアプリ最前線
Html5/JSモバイルアプリ最前線Html5/JSモバイルアプリ最前線
Html5/JSモバイルアプリ最前線
 
OSGi概要
OSGi概要OSGi概要
OSGi概要
 
2014年メディア工房勉強会 第1章「Webの仕組みとHTML5」
2014年メディア工房勉強会 第1章「Webの仕組みとHTML5」2014年メディア工房勉強会 第1章「Webの仕組みとHTML5」
2014年メディア工房勉強会 第1章「Webの仕組みとHTML5」
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
 

More from Kei Nakazawa

ScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChiselScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChiselKei Nakazawa
 
C#からSORACOMを管理できるようにした話(SoraCommonNet)
C#からSORACOMを管理できるようにした話(SoraCommonNet)C#からSORACOMを管理できるようにした話(SoraCommonNet)
C#からSORACOMを管理できるようにした話(SoraCommonNet)Kei Nakazawa
 
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)Kei Nakazawa
 
15.05.17 ゆるふわRe:VIEW'erの近況
15.05.17 ゆるふわRe:VIEW'erの近況15.05.17 ゆるふわRe:VIEW'erの近況
15.05.17 ゆるふわRe:VIEW'erの近況Kei Nakazawa
 
13.11.12 Tech Hills #7 Playground - introduction
13.11.12 Tech Hills #7 Playground - introduction13.11.12 Tech Hills #7 Playground - introduction
13.11.12 Tech Hills #7 Playground - introductionKei Nakazawa
 
13.11.02 inside playground(抄)
13.11.02 inside playground(抄)13.11.02 inside playground(抄)
13.11.02 inside playground(抄)Kei Nakazawa
 
13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築Kei Nakazawa
 
12.11.12 めいめいについて考えること
12.11.12 めいめいについて考えること12.11.12 めいめいについて考えること
12.11.12 めいめいについて考えることKei Nakazawa
 
12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッションKei Nakazawa
 
12.08.25 tab api hackathon
12.08.25 tab api hackathon12.08.25 tab api hackathon
12.08.25 tab api hackathonKei Nakazawa
 
キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐Kei Nakazawa
 
12.04.22 勉強会イントロ
12.04.22 勉強会イントロ12.04.22 勉強会イントロ
12.04.22 勉強会イントロKei Nakazawa
 
12.03.17 第1回NFC勉強会資料
12.03.17 第1回NFC勉強会資料12.03.17 第1回NFC勉強会資料
12.03.17 第1回NFC勉強会資料Kei Nakazawa
 
11.12.21 Lecturedroid 02
11.12.21 Lecturedroid 0211.12.21 Lecturedroid 02
11.12.21 Lecturedroid 02Kei Nakazawa
 
11.11.01 非公式懇親会LT(せきとばったー)
11.11.01 非公式懇親会LT(せきとばったー)11.11.01 非公式懇親会LT(せきとばったー)
11.11.01 非公式懇親会LT(せきとばったー)Kei Nakazawa
 
11.11.22 かなり役立つ競技プログラミング
11.11.22 かなり役立つ競技プログラミング11.11.22 かなり役立つ競技プログラミング
11.11.22 かなり役立つ競技プログラミングKei Nakazawa
 
11.05.21 Google I/O報告会 in 東京 なかざわ資料
11.05.21 Google I/O報告会 in 東京 なかざわ資料11.05.21 Google I/O報告会 in 東京 なかざわ資料
11.05.21 Google I/O報告会 in 東京 なかざわ資料Kei Nakazawa
 
ABC2011W 翻訳プロジェクト@muo_jp
ABC2011W 翻訳プロジェクト@muo_jpABC2011W 翻訳プロジェクト@muo_jp
ABC2011W 翻訳プロジェクト@muo_jpKei Nakazawa
 

More from Kei Nakazawa (18)

ScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChiselScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChisel
 
C#からSORACOMを管理できるようにした話(SoraCommonNet)
C#からSORACOMを管理できるようにした話(SoraCommonNet)C#からSORACOMを管理できるようにした話(SoraCommonNet)
C#からSORACOMを管理できるようにした話(SoraCommonNet)
 
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
 
15.05.17 ゆるふわRe:VIEW'erの近況
15.05.17 ゆるふわRe:VIEW'erの近況15.05.17 ゆるふわRe:VIEW'erの近況
15.05.17 ゆるふわRe:VIEW'erの近況
 
13.11.12 Tech Hills #7 Playground - introduction
13.11.12 Tech Hills #7 Playground - introduction13.11.12 Tech Hills #7 Playground - introduction
13.11.12 Tech Hills #7 Playground - introduction
 
13.11.02 inside playground(抄)
13.11.02 inside playground(抄)13.11.02 inside playground(抄)
13.11.02 inside playground(抄)
 
13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築13.11.02 playgroundthon環境構築
13.11.02 playgroundthon環境構築
 
12.11.12 めいめいについて考えること
12.11.12 めいめいについて考えること12.11.12 めいめいについて考えること
12.11.12 めいめいについて考えること
 
12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション
 
12.08.25 tab api hackathon
12.08.25 tab api hackathon12.08.25 tab api hackathon
12.08.25 tab api hackathon
 
キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐
 
12.04.22 勉強会イントロ
12.04.22 勉強会イントロ12.04.22 勉強会イントロ
12.04.22 勉強会イントロ
 
12.03.17 第1回NFC勉強会資料
12.03.17 第1回NFC勉強会資料12.03.17 第1回NFC勉強会資料
12.03.17 第1回NFC勉強会資料
 
11.12.21 Lecturedroid 02
11.12.21 Lecturedroid 0211.12.21 Lecturedroid 02
11.12.21 Lecturedroid 02
 
11.11.01 非公式懇親会LT(せきとばったー)
11.11.01 非公式懇親会LT(せきとばったー)11.11.01 非公式懇親会LT(せきとばったー)
11.11.01 非公式懇親会LT(せきとばったー)
 
11.11.22 かなり役立つ競技プログラミング
11.11.22 かなり役立つ競技プログラミング11.11.22 かなり役立つ競技プログラミング
11.11.22 かなり役立つ競技プログラミング
 
11.05.21 Google I/O報告会 in 東京 なかざわ資料
11.05.21 Google I/O報告会 in 東京 なかざわ資料11.05.21 Google I/O報告会 in 東京 なかざわ資料
11.05.21 Google I/O報告会 in 東京 なかざわ資料
 
ABC2011W 翻訳プロジェクト@muo_jp
ABC2011W 翻訳プロジェクト@muo_jpABC2011W 翻訳プロジェクト@muo_jp
ABC2011W 翻訳プロジェクト@muo_jp
 

Webの未来 〜 PNaClとasm.jsでカワルミライ - いま、モバイルWebの先端で起こっていること