日本マイクロソフトが主催したWindows 8向けアプリケーション開発者カンファレンス「Windows Developer Days」のため、2泊のみという強行日程で来日した開発責任者のスティーブン・シノフスキー氏に話を伺った。
シノフスキー氏は生粋のエンジニアで、WindowsとWindows Live全体の責任者でありながら、今でもプログラムコードを書いているという人物。もちろん、どのようにWindowsを普及させていくのか、といった戦略面も含めたディレクションを決めつつ、自己紹介では「スティーブン・シノフスキー、プログラマーです」とあいさつする。
新卒でマイクロソフトに入り、Visual C++の開発に携わった後、Excel 4.0からリードプログラマーに。その後、Office全体の開発責任者を経て、Windows Vista販売不振の中でWindows 7の開発責任者に指名された。
Windows 7の好評がVistaの不評を覆したとはいえ、シノフスキー氏の開発責任者としての手腕が発揮されるのは、Windows 8からと言っていいだろう。Windows 8はWindows 7を基本としながら、徹底したチューニングでメモリフットプリントを激減させ、アプリケーション起動速度の高速化など、応答性のいいキビキビとした動きを実現している一方、Metroユーザーインタフェースの導入、ARMアーキテクチャへの対応といった新しいテーマにも挑戦している。
30分という限られた時間ではあったが、単独インタビューの内容を、背景も交えながらリポートしたい。
―― Windows 8のラインアップが発表されました。インテルアーキテクチャ版は通常の「Windows 8」と企業向け機能を搭載する「Windows 8 Pro」の2つに統合。加えてARMアーキテクチャに対応した「Windows RT」が提供されました。
Windows 8で導入される新API、WinRTはx86版では従来からのWin32 APIの上に載っていますよね? しかし、デスクトップアプリケーションが動作しないWindows RT(ARM版)はWin32のフルセットが必要ではないように思います。ARM版もx86版と同じ構造なのでしょうか?
シノフスキー氏 まったく同じです。Windows RTと通常版のWindowsは同じOSで、ハードウェアプラットフォームの違いによる細かな特徴(例えば、ARMの機能を用いてデバイスを丸ごと暗号化する機能など)を除けば、APIの構造やレイヤー構成もまったく同じです。
―― デスクトップアプリケーションの動作が不要なARM版ならば、もっとコンパクトな実装も可能に思えますが、このあたりの実装方法によって、実際の動作パフォーマンスに影響は出ないのでしょうか?
シノフスキー氏 メモリ使用量の最適化や、動かしている機能に応じた最適な動作をするよう設計されていますから、これ以上に機能セットを絞り込んでコンパクトにしたからといって、パフォーマンスが大幅に上がるわけではありません。Windowsが用意しているあまたのAPIとの完全な互換性があるほうが、これ以上にコンパクト化するよりも重要です。
―― 実はWindows RTのx86版……例えば、インテルAtomベースのSoCを用いたWindowsタブレットなどに向けて最適化したエディションもあるのでは? と想像していたのですが、そこは関係ないということですね。
シノフスキー氏 そうですね。インテルアーキテクチャ向けには、提供予定のエディションのみですべてのプラットフォームをカバーできます。もともと、ARM版で機能を落としているわけではないですから。
―― Windows 8向けにMetroアプリケーションを書く場合、開発者はWindowsで利用可能だったさまざまな開発言語をそのまま使えますが、Windows 8のすぐ後に出てくると予想されているWindows Phone 8と同じコードを共有したい場合は、HTML5を用いる必要があるのでしょうか? 例えば、Silverlightで互換性をとることはできませんか?
シノフスキー氏 HTML5でアプリケーションを書き、ユーザーインタフェースを両対応にすれば、それは両方で動くでしょう。しかし、アプリケーションを実際に作る過程を考えると、その考え方はあまり意味がないことに気付くはずです。
アプリケーションを設計、開発する際には、まず核となる部分をサービスとして構築します。コンピュータ上で動かす場合も、ネットワーク上で動かす場合もありますが、まずはサービスの構築です。そして、そのサービスを利用するためのユーザーインタフェースを、フロントエンド処理のプログラムとして書きます。フロントエンドとなるプログラムは画面サイズによって最適な設計が変化するので、画面サイズごとに設計を行います。
つまり、サービスを利用するためのフロントエンドアプリケーションは、画面サイズごとに設計しなければならないので、Windows PhoneとWindowsでまったく同じアプリケーションを動かす必要はないと考えています。
Copyright © ITmedia, Inc. All Rights Reserved.