Flashの未来をFLASH MEETUPで聞いてきた!
先ほどまで、FLASH MEETUP http://atnd.org/events/22297 があり、Adobe Flash の現状・未来についての質疑応答のイベントがありました。Flash の技術の偉い方のちゃんとわかっている人が3名アメリカから来ていて、超内容が濃かったです!7〜9時の予定が11時まで延長して、京都から来た方は泊まりこみになりました!
Flash 関係で、最近誤解を招いてしまったことについて解説があったのですが、まぁ、ネットではたくさん出ているので、Flash の今後について話していたことについてこの記事では書きます。
あと、僕、間違ったことを書いていたらごめんなさい。私見も混じっています。アドビの太田禎一さん @otachan さんに聞くと色々と教えてくださると思います。
全体の方針
現状、Flash がよく使われているのは、「ゲーム」「動画」「広告」なんですが、ゲームと動画に今後は注力していくとしていました。
Stage 3D
Flash Player 11.0 から入った GPU を呼び出せる Stage 3D ですが、方針としては、
- 2D フレームワーク や 3D フレームワーク経由で使ってね。
- Adobe 自前ではこれらのフレームワークを作ることはなく、その下のレイヤーだけに注力する。
- 3D のオーサリングツールも作らない。Flare3D のオーサリングツールを紹介していました。
あと比較的高度な話として、
- 11.0 では Pixel Bender 3D で for ループが出来なかったり、描画命令もすごく種類が少ないのは、広範にいろいろなコンピュータでテストしてみたところ、あまりにもちゃんと動いてくれない GPU が多すぎて、その結果、こういう命令になった。GPU ベンダーにバグ修正の要望を色々出している。
- バグのある GPU は動作させないブラックリストを Flash Player は持っていて、統計的に 50% 近く弾いている。そのリストは今後公開予定。最新のドライバなら動く GPU でも、ドライバのバージョンが古かったりするとブラックリスト入りしている場合がある。最初のインキュベータ版では「2009年1月よりも前にリリースされたドライバ」を全て弾いていたそうです。
- それでも、WebGL のブラックリストよりは広範囲のドライバをサポートしている。(例えば、WebGL の場合、第1世代 Core i の Intel HD Graphics ですらブラックリストに入っています)
モバイル関係としては、
HTML 5 向けのアニメーションツール
Adobe Edge で HTML 5 向けの2Dアニメーションオーサリングツールを公開していますが、スマートフォンが HTML 5 しか使えなくなった以上、これは積極的に投資してく方針みたいです。CS6 -> CS7 とどんどんこの手の機能を良くしてく感じみたいです。話の流れだと、Adobe 製のアニメーションツールで
なんか、話の感じだと、ActionScript 3 → JavaScript のコンパイラも研究している感じでした。本当か?
ここらへんの話は特にデモがなく、詳細は不明です。
プロファイリングツール
Flash の新しいプロファインリグツール(ボトルネックを探すツール)のデモもやりました。フレームごとに、どの処理・スクリプトに何msかかったか見ることができる GUI ツールです。良い感じでしたよ!スマートフォン相手にも Wifi 経由でリモートプロファイリングができるそうです。
サイレントアップデート
Flash Player 11.2 からサイレントアップデートの機能が入り、ユーザーが拒否しない限り、Google Chrome みたく、勝手に自動的にアップデートするようになりました。これを、Mac OS X にも近いうちに入れる予定だそうです。(Liunx は yum や apt などに頼るのでしょう)
サウンド
現状200〜250ms 程度サウンドのレイテンシがあるそうですが、それを 40ms 程度まで短縮した Flash Player を今後出すそうです。
国際化
これは会場の質問から出たのですが、Flash が日本語など非英語圏でテストが甘くバグが多い、という文句が出たのですが、(日本語入力がテキストフィールドでできなくなったり、マイク選択で英語以外のデバイス名が含んでいると動作がおかしくなるなど)、「頑張ります」的な回答しかなかったのですが、日本語でバグレポートを出来る場を作って欲しいと言われていて、これはそのとおりだと思います。
Alchemy 2
C/C++ ライブラリを Flash Player 内で動かす Alchemy ですが、一度死にかかった感じがあるのですが、Alchemy 2 としてちゃんと再生させることが発表されています。(技術的に何が変わるのか質問したかったのですが、タイムオーバーで質問出来なかった)。話によると、ネイティブと変わらないパフォーマンスで動いているよと言っていました。コンパイラは LLVM のコンパイラなので、最適化関係は LLVM の強力な最適化で行われるのですが、あとは、生成される命令がどの程度ちゃんと JIT されるかなんですが、まぁ、期待!
ネイティブエクステンションという選択肢も Adobe AIR ではありますが、
という使い分け方を推奨していました。