検索
連載

外から見るWWDC 2014キーノート――Swiftに感じるAppleの本気ドリキンが斬る!(8)(2/2 ページ)

WWDC常連のドリキンが今年もキーノートを斬ります! 今回はメディアとエンジニアとで、反応が真っ二つに分かれる内容となりました。その理由をエンジニア視点で解き明かしていきたいと思います。

Share
Tweet
LINE
Hatena
前のページへ |       

これでWin系をうらやまなくてすむ? 新グラフィックスAPI、Metal

 Metalの発表直後にSwiftが発表されてしまったので、若干インパクトが薄れてしまった感がありますが、一部の人達(特にゲーム系)から「今度こそAppleがゲームプラットフォームに参入か!」と騒がれる理由となっているのが、このMetal APIの発表でした。


「OpenGLと比較すると10倍近く描画性能が向上する」という触れ込みのMetal API。ゲームプラットフォームとしてのiOSが大きな一歩を踏み出したといえそうです(Apple - Apple Events - WWDC 2014 Keynoteのスクリーンショット)

 MetalとはiOS 8用の新規3Dグラフィックスライブラリの名称で、従来のOpenGL APIに相当するものと考えるとイメージがしやすいと思います。特徴はOSやデバイスに最適化された設計となっていて、Appleいわく、「OpenGLと比較すると10倍近く描画性能が向上する」と発表しています。

 OpenGLはそもそもマルチプラットフォームでの互換性を重視したAPIを目指しているので、パフォーマンスというよりは、同じコードがどの環境でも動くことを目指して作られてきました。

 ですので、パフォーマンスという観点で見ると決して効率の良いAPIではなく、プラットフォームとハードウェアを固定して最適化したAPIを作れば、10倍の性能向上と言われても大げさではないことは想像に難くないのですが、ここ数年、ゲームプラットフォームに乗り込んでくると言われ続けた割に、グラフィクスAPIの観点からは大きな動きがなかったので、ゲームプラットフォームとしてiOSプラットフォームを考えると、いままでにない大きな一歩といえます。

 半導体やグラフィックスチップなどにも詳しい後藤弘茂さんの記事でも詳しく書かれていますが、実はこのMetalの「ハードウェアに特化して、APIを薄くし最適化する」という技術は、AppleがMetalで初めて実現したわけではありません。これはここ最近の3D業界のトレンドでもあり、Appleはむしろようやく3D業界のトレンドに追いついたともいえます。

 実際AMDはMantle(Metalに似てる?)というAPIを発表していますし、MicrosoftもDirectX 12で同様の方向性に進化しています。ですので、独自に開発した新言語Swiftに比べればインパクトも独自性も少ないのですが、個人的にはこれも今後のAppleプラットフォームの可能性を大きく広げると思っています。

 僕はもう20年来のMacユーザーですが、よくあるMac vs Windows議論をするたびに、唯一にして絶対的にWinプラットフォームがうらやましいなと思っていたのがゲームでした。ここに関しては、常にAppleのプライオリティが低いのか、あまり盛り上がることがなく、いわば申し訳程度にゲームが存在してきた感じです。

 最近でこそiOSがブレークして、ゲームがiOSプラットフォームを支えるジャンルとして確立されたので、iOSでのゲームジャンルの充実は言うまでもなく、Macプラットフォームのゲーム環境も着実に良くなってきています。それでも(SpriteKitはあるものの)OpenGL環境を提供し続けるAppleの姿勢を見ていると、やっぱりAppleにとってゲームプラットフォームはあまり優先度が高くないのかなぁと思っていました。

 今回発表されたMetalを使えば、プラットフォームはiOSに限定されますが、他のプラットフォームと比較してパフォーマンスの高いゲームを開発できる、ゲーム開発者にとって、iOSをファーストプライオリティーなゲームプラットフォームにする選択肢を与えたということで、今後のゲーム業界の動向が気になります。

 ごく最近ですが、従来ゲーム専用機でしかリリースされなかったような本格的なゲームタイトルがiOSプラットフォームに登場し始めているので、この流れを後押しするという意味では最適なタイミングでの発表だったと思います。

 ただ、ここまでしてもAppleが本当に既存のゲームプラットフォーム市場に乗り込んでくるのかというと、そのためには、専用のハードウェアや、プラットフォーム独占のゲームなどをApple自ら開発するなど、さらにもう一段上のサポートが必要されるので、そこまでAppleがゲームに力を入れてくるのかは、個人的にはまだちょっと懐疑的です。

 逆に言えば、Apple的にはゲームに最適なAPIまで用意しておけば、後はデベロッパー次第で最高のゲームプラットフォームを実現できるというのりしろを与えただけで十分なのかもしれません(実際iOSは既に十分魅力的なゲームプラットフォームとなっているといえるので)。

 Metalの技術的な内容にもっと興味がある人は、rebuild.fmという人気Podcastのエピソード46で、ゲーム業界、技術に詳しいHakuro MatsudaさんがMetalについて語っています。MetalによってiPadがどのくらいのゲームプラットフォーム性能を引き出せる可能性があるかなど、こちらの内容を聞いてみると、より参考になると思います。

 また、 これまた人気PodcastのModern Syntax Radio Show 398回目において、僕自身もMetalについてもう少し深く語っています。こちらも興味があればぜひ聞いてみてください!

HomeKitとHelthKit

 基調講演ではかなりさらっと発表されてしまいましたが、今回「HomeKit」と「HealthKit」という2つの新規フレームワークも発表されました。

 これらフレームワークは名前が示す通り、家電制御とヘルス機器制御用の標準フレームワークをiOSが提供するというものです。あまり詳細は触れられませんでしたが、近年盛り上がっている周辺機器を、デバイスやメーカーを問わず横断的、総合的に扱えると考えると、ジワジワと効果を発揮しそうな気がしています。

 従来、この手の機器は単機能だけではなかなか広く普及するようなデバイスの開発が難しかったので、一部の新しい物好きが飛びついては、新しいデバイスに乗り換えるという状況が続く中で、なかなか地道な進化が難しい環境にあるなと思っています。Appleがこのようなフレームワークを提供することで、スタートアップのような小さい会社が、単機能に特化した機器を開発しても、他の機器と連携することによりビジネスプラットフォームとして成立するエコシステムが構築できると、これまた大きなプラットフォームを確立する可能性を秘めています。

まとめ――コンパイル言語はSwift、スクリプト言語はJavaScriptに

 今回は主にSwiftとMetalに着目して、デベロッパー視点から見たWWDC絶賛の訳をひも解いてみたつもりです。非エンジニア系の人でも、少なからず「なぜデベロッパーが今回の発表に熱狂しているのか?」の理由が伝わったら嬉しいです。

 個人的にも一番感心したのは、やっぱり新言語Swiftの発表でした。ここ数年Mac、iOS系の開発から遠ざかっていて、最新のObjective-C文法などにも疎くなっていたので、そろそろ勉強し直さないといけないなぁと本気で危機感を感じていたところに、Appleからリセットボタンを押された気分です(笑)。

 あらためてiOSアプリを開発したいなと肩を押された気がしているデベロッパーは僕だけではないと思います。

 興味深いのは、通常、Swiftのような新言語が発表されると、従来の言語に慣れ親しんだユーザーからは賛否両論の議論が湧き上がるのですが、今回のSwiftに関しては、かなりポジティブな意見が目立つように見えます。こうした反応を見ていても、Swiftがいかに今時の言語をよく研究して、良い所取りをして開発されたのかが見える気がします。

 また、Swiftの実現にはLLVMというコンパイラーの開発が大きく関わっています。Appleはここ数年、従来のコンパイラープログラムのスタンダードであったGCCから、LLVMへのスイッチに力を入れてきました。今時、コンパイラーどころか、OSだって一から開発する企業は少ない中で、地道な努力の成果が多方面のAppleの成果に大きな影響をもたらしているというのも大変興味深いです。

 今回のWWDCではSwiftだけでなく、新しいSafariに搭載されるJavaScriptエンジンでもLLVMの技術を利用してJavaScriptの処理速度を向上させる技術も発表されました。ハードウェアからコンパイラー、ドライバー、OS、ミドルウェア、アプリケーションに至るまで、自身のプラットフォームを実現するために必要な要素全てを自社で開発し実現しているという事実を見ると、まだまだAppleの失速はなさそうだなと実感しました。

 基調講演ではあまり触れていませんでしたが、実はAppleはJavaScriptの強化も進めています。単純に実行速度を向上させるだけでなく、Promiseなど最新のECMAScript 6対応も進めています。AppleScriptの代わりにJavaScriptを使ってOS Xの作業を自動化するJavaScript for Automation(JXA)という技術も発表されています。

 これにより、従来の「コンパイル言語はObjective-C、スクリプト言語はAppleScript」という非常に独自感の強い開発環境から、「コンパイル言語はSwift、スクリプト言語はJavaScript」という、今時のトレンドに沿った、馴染みやすい開発環境という方向性が打ち出され、プラットフォームへの導入障壁が下がり、エンジニアが新しいアイディアを実現しやすいプラットフォームへの進化の方向性が明確になりました。

 新規フレームワークや言語が実践投入され、真価を発揮するまでには、まだしばらく時間がかかりますが、IT分野で先頭を走っているAppleが、一番アグレッシブな進化を続けているというのが本当に興味深く、エンジニアを引きつけている魅力にもつながっていると思います。

あとがき:Podcastも配信中

 最近、腱鞘炎に苦しんでいたりして、なかなか長文を書くのが辛い生活を送っていたのですが、ここ数カ月、毎朝プールに通うことで体質改善を試みていて、腱鞘炎の症状もだいぶ軽減してきました。ということで、これを機にこの連載のペースももう少し上げていければと思っています。

 また、最近は文章を書くのが辛かったこともありPodcastにハマっています。backspace.fmという名前で1週間分のテック・ガジェット系ニュースを配信するPodcastを始めていて、おかげさまでかなり好評です。こちらでもWWDC 2014の基調講演について実況形式で解説するエピソードを配信しているので、より詳しくWWDCについて知りたい人はこちらのPodcastもぜひ聴いてみてください。

著者プロフィール ドリキン

サンフランシスコ在住 ガジェット、テック系ブロガー。ブログはDrift Diary XVにて。最近、1週間分のテック系ニュースを配信するbackspace.fmというラジオ番組をONETOPIチーフキュレーターの松尾さんと始めました。通勤のお供にぜひ聞いてください!


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る