エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

WebAssembly の概要

きっかけ

HTML5 ConferenceでWebAssemblyって単語が出てきたが、単語の意味が分からなかったので、調査した。
HTML5 Conferenceの内容は、下記記事でまとめてある。

suzaku-tec.hatenadiary.jp

WebAssembly

WebAssemblyとは?

簡単に言うと、ウェブ向けのバイナリ形式のこと。

背景にあるのは、JavaScriptのファイルサイズがある。
現在の画面に動きがあるWebサービスは、大部分がJavaScriptで動いている。
当然、多種多様な動きをするためには、JavaScriptで多くを実装しなければいけない。
そうなると、JavaScriptのファイルサイズはでかくなる。
JavaScriptのファイルをダウンロードするための通信量がでかくなり、それを解析するのにも時間がかかる。
そういった問題を解決するためのバイナリフォーマットである。

JavaScriptは、そもそもプレーンなテキストである。
膨大化したファイルには、圧縮してブラウザで解凍して実行したほうが速いという試算もある。 なぜ、バイナリなのかもココから来ている。
今後のWebアプリを考えた場合、プレーンテキストをサポートし続けるには、限界が見えてきたとも言える。

WebAssemblyメリット

  • webアプリの高速化
  • サーバーサイドとの言語統一
  • OS依存が無い

影響がありそうなもの

Web上でやれるゲームが、確実に伸びるでしょうね。
今までのカクカクの動きが、ぬるぬるになると思われます。
あと、技術の発展でお決まりの、軍事と医療分野も発達しそうです。
おそらく医療系はブラウザ使って遠隔治療とかありそうですね。
ちょっと、軍事系は疎いので思いつきませんが。。。

あとは、Web上でのデータ分析ツールの進化があると思っています。
サーバーはデータだけを返し、見せ方をクライアントで自由に変えられると、面白いのではないかと思いました。
ビッグデータやデータ解析は、ホットな分野ですし、需要があるのではないかと思います。

あとは、ブラウザをIDEとして使えるのではないかと感じました。
Eclipse cheが、先駆けみたいな事をしています。
全員が共通の設定で、開発が出来ればコードの統一は簡単。
誰かが環境を作ってしまえば、みんなそこを使えば良いので、一番頭を悩ませる環境準備がいらなくなる可能性があるなと思いました。

考えるといろいろな事ができるようになる。
オラ、ワクワクしてきたぞ!

WebAssemblyが抱える問題

  • 普及
  • テクニカルリーダー・マネジメント

普及

当然、普及しなければ、意味はない。
ただの文章で終わってしまう。
この点に関しては、大丈夫だと思われる。
なぜなら、「Google」「Apple」「Microsoft」「Mozilla」が開発に関わってくるので、普及しないことはあり得ない。
つまり、Chrome, Safari, IE/Edge, firefoxがサポート表明したようなものだ。
上記に当てはまらないブラウザを使っている人は、相当コアな人だろうね。

テクニカルリーダー・マネジメント

どっちかというと、大手4者が協力するに当たっての問題かな。
ドリームチームでやるから、失敗することはないと思うが、協調してやれるかが凄く気になる。

調査して思ったこと

個人的に、注目技術の一つに位置づけ。
かなり重要な技術になると思われる。
Webがネイティブに追いつける可能性があるので、即座に使うことは無いにせよ、情報を随時キャッチアップしていきたい。

参考サイト

qiita.com

jp.techcrunch.com

www.ossnews.jp

readwrite.jp

codezine.jp

Brendan Eich » Blog Archive » From ASM.JS to WebAssembly

github.com

WebAssembly | Luke Wagner's Blog