互換性の継続に時間をかけるより
新プラットフォームに勝負をかける
ではなぜマイクロソフトは、これまでに蓄積された資産を捨ててまでも、新たなプラットフォームを作ることにしたのだろうか?
1つには、カーネル切り替えという問題がある。Windows Phone 7には、Windows CE 6.xカーネルが採用されており、Windows Mobile 6.xには、Windows CE 5.xカーネルが採用されている。CE 6.xと5.xの違いは大きく、メモリモデルや、アプリケーション、デバイスドライバの動作モデルなどが大きく変わってしまっている。
Windows MobileはWindows CE 1.0やPocketPCといった古くからある資産を受け継ぐため、互換性を重視した形で作られた。このため、過去に作られた多くのアプリケーションが動作できた。
現在のWindows Mobileの直接の祖先になるPocketPCはWindows CE 3.0の上に作られた。これを携帯電話に対応させたのがSmartphone 2002。その後名称がWindows Mobileとなり、CEカーネルの進歩とともにバージョンを上げてきた。しかし、Windows Mobile 6.0では、CE 6.0カーネルを採用せずCE 5.xカーネルにとどまっていた。
Windows Mobile 6.xでCE 6.0カーネルが採用できなかったのは、Windows Mobileとして提供しているほとんどのコードが作りおなしになること、従来とメモリモデルなどが違うことから、アプリケーションへの互換性を持たせるためのなんらかの仕組みが必要になることなどが原因だと考えられる。
もちろん、時間をかけることで互換性を持たせることは不可能ではなかったはずだ。しかし、マイクロソフトはそこに時間や人員を割くより、新規のプラットフォームとして、最新の技術へと対応させることを選択したのだと思われる。
特にここ数年で、スマートフォンを取り巻く環境が一転した。iPhoneが登場し、Linuxを使う携帯電話も普通になった。これらに対抗するにはCE 6.0カーネルを使って、新しいプラットフォームを立ち上げたほうが得策と判断したのであろう。ただしそのための時間はほとんど無かった。実際現行のWindows Mobile 6.5は苦戦を強いられている。
そこで考えられたのが、「シャーシ戦略」とよばれる、ほぼ固定化されたハードウェア仕様だ。ハードウェアを固定することで、少なくとも当初の開発は、これだけをターゲットにして開発が行なえる。CPUやGPUの性能が決まれば、それに対してのみ最適化することはそれほど難しくない。
この選択により、マイクロソフトは、ほぼ1年半程度(2009年2月にWindows Mobile 6.5を発表してから今年の米国クリスマス商戦に間に合うようなタイミングまで)でWindows Phone 7を開発できたのである。