Windows Mobileがしょぼ過ぎて先行き真っ暗だったときのことを書く
当時を知っている僕からするとMicrosoftがスマートフォンOSの覇権を握れなかったのは当時のWindows Mobileのスペックがおかしかったからというのと、いろいろタイミングが悪かったからだ。
ビルゲイツ氏が
「過去最大の過ちは、私が関与した何らかの経営ミスによって、Microsoftが現在のAndroid、つまり、Appleを除くスマートフォンの標準プラットフォームになれなかったことだ。」
という発言をして話題になっていた。
2000年代を通して、僕は携帯電話端末の開発に関わっていたので。2002年代のモバイル機器向けWindowsであるWindows CE→Pocket PC→Windows Mobileの流れを見て、2年に1回くらいは実際に端末を買って使ったりしていた。2009年頃までのWindows Mobile(Windows Mobile 6.5まで)は致命的にダメなところがあった。
それは当時のWindows CEカーネル(5.Xまで)の下記の仕様だった。
・1プロセスが扱えるメモリが32MBまで
・プロセスの最大数が32個
しかも、これらがいつ解消されるかのロードマップが全く示されていなかった。
当時のi-modeの携帯電話端末はSymbianやLinuxベースで開発されていて、その端末たちですらRAMを128MB以上積んでいて、最大使用量が32MBを超えるプロセスがいくつかあった。そしてそれらの端末で動いているプロセスの数は100近くあった。それと比べるとこの32MB/32個制限がいかに酷いスペックかがわかると思う。当時Webがリッチ化してきていて、JavaScriptやCSSをバリバリ使うWebページを表示しようとすると32MB以上のRAMが当然のように要求された。それをこのスペックのOSで表示するためには簡易的な仕様とせざるを得ない。必然的にPocket Internet Explorerは残念なブラウザとなってしまったし、そういう仕様に制限してさえ、大きなWebページを表示しようとするとRAM不足で突然終了することが避けられなかった(はっきりしていないけど、Windows Mobileでアプリが突然終了することが多かったのはほとんどがメモリ不足が原因だったんだと思う)。
なので、そのCEカーネルの仕様を早急になんとかする必要があったのだが、問題が解消されたCEカーネル6.0がリリースされたのは2006年末だった。
カーネル6.0は「6.0ではプロセス数制限は最大32000個までに拡張され、各プロセスの仮想アドレス空間は2GBまでに広げられる」と説明されていたが、それに載せ替えるためにはソフトウェアの互換性を全部捨てる必要があった。Windows Mobileのカーネル以外の部分をCEカーネル6.0に対応するにも開発期間が必要だし、どのようにアプリをマイグレーションしていけばいいかの戦略を立てづらかった。結局Windows Mobile 7は、それまでの全部の過去資産を捨てて全面刷新となったが、世の中に出たのは2010年だった。大きなOSの初期バージョンは「設計はいいが足りていない機能がたくさんある」というのが普通なのだけど、iPhoneが2007年に、Androidが2008年に出て、足りない機能を追加して使えるようになってきたところで、初物が出てきても、「センスはいいけどいろいろ機能は足りないね」という評価を得るにとどまってしまった。
だから個人的には6.5までのWindows Mobileは「カーネルがダメなせいで、そもそも使い物にならない」であった。Pocket IEがしょぼすぎてだめだとか、すぐ落ちるとか、ユーザインタフェースが悪すぎるだとか、いろいろ言われてたけど、根本原因はカーネルがだめすぎるところにあって、あのカーネルではアプリやUIをいくら工夫しようにも限度があったのだ。工夫する気にもなれなかったと思うけど。
いろいろ間の悪いことに2005~2006年ごろはちょうどDRAMの価格が高かったころにハマっていて、将来RAMが劇的に安くなるなどの予測も立てにくかったんじゃないかと思う。そこからiPhoneが発表されてしばらくでDRAMの価格は1/3くらいになり、携帯電話にもアホみたいにRAMを積むことが可能になった。DRAMタイミング的にも運が悪かった。
割とショックだったのは、そんな中で日本のケータイメーカーが「スマホの波に乗り遅れたくない」などといいつつ2006年から2008年にかけてOSをWindowsにするかAndroidにするかの検討に時間をかけていて、しかも並行して開発リソースを集めているという噂が流れてきたことだ。それが本当なら日本のケータイメーカーは技術的な知見か、必要な情報を収集する能力が致命的に足りなかったのだと思う。常識的に考えれば(もしWindows Mobile 7の情報がないなら)5秒でAndroidしかないという結論が出る話だった(だってWebブラウザが満足に動かないOSなんだぜ? 選ぶ理由はないだろ)。もしWindows Mobile 7について何か情報があったのならそれがリリースされてからの開発になるのでリソースを集める理由がなかった。