「昨日は、Windows Phone Developer Dayというイベントがあった」
「それで?」
「忙しいので行けなかったが、Ustreamで見たよ。というか、半分は見られなかったよ」
「わははは。貧乏はつらいね」
驚異の世界 §
「中身は凄かったぞ」
「どんな風に?」
「悪評がほとんどない」
「でもイベントで壇上に立つなら、そういう人は選ばないだろう」
「いや。Ustreamでは横にTwitterの発言がずっと出ていたのだ」
「えっ?」
「別にUstreamで見て、Twitterで無責任なつぶやきをするなら、誰でもできる。MSの許可は要らない。事前に足切りもできない」
「アンチMSの知ったかぶり少年達が大挙して押し寄せて、根拠も定かではないいい加減な悪評を垂れ流して帰って行ったのでは無いの?」
「不思議とそういう展開にならないかった」
「それで?」
「その代わり、Ustreamで聞いていた人たちは見ていた範囲では最大520人ぐらいまで増えた」
「520人。多いか少ないか微妙だね。もっと人気のあるデバイスなら一瞬で万単位の視聴者を集められそうじゃ無いか」
「おいおい。ちょっと待て。前提がおかしいぞ」
「えっ? 何が?」
「これじゃ開発者向けイベントなんだ。ひたすら、こうコードを書くという話が続くのだぞ」
「えっ?」
「しかも、日本で実際にコードを書く人口は減る一方だろう。どんどん海外にアウトソースされちゃうし、人気のサービスも海外製ばかり」
「では君の感触だとどうなるの?」
「iPhoneはデザイナーの支持が手厚い。Androidはキャリアの支持が手厚い。しかし、おそらくWindows Phone 7はソフト開発者の支持が手厚い」
「綺麗に棲み分けだね」
「そうじゃない」
「違うの?」
「結果はもう出たのも同じだ」
「どういう意味?」
「昔からよく言うだろう。『コンピュータ、ソフト無ければただの箱』」
「それはそうだけど」
「昔からそうだよ。凄いハードを作ったメーカーは珍しくも無い。たとえば、最強の8bitパソコンの日立MB-S1を知っているかい? まるで売れなかったよ。実際に売れたのは、はるかに貧弱なNEC PC-8801シリーズさ。なぜだか分かるかい?」
「ソフトが揃っているから?」
「そうだ。その差は圧倒的だよ」
「なるほど」
「他にも例を挙げよう。富士通の初期のパソコンのFMシリーズはローエンドのFM-7ばかりが売れていた。上位機種のFM-11はあまり売れてない。なぜだか分かるかい?」
「これもソフトの問題かい?」
「そうだ。ハードには上位互換が無かった。だから、FM-7用のソフトが充実するとみんなそれを買う。金があるから上位機種を買おうとは誰も思わない。ソフトが動かないからだ。その結果、FM-77という互換性のある上位機種があとから作られることになる」
「うーむ」
「だからさ。デザイナーは見かけでほとんど決まるコンテンツは作れるから、iPhoneの存在価値はあるかのように見せかけられる。多数派にはなれないが、シェアの一角は確保できるだろう。でも、キャリアは金を出してソフトを作らせることはできるが、自発的にできてくるソフトはあまり見込めない。その点で制約が大きい」
「でもさ。Androidの基盤はLinuxなんだろ? Linuxで動くソフトの蓄積は膨大なんだろう?」
「デバイスが持つ様々な条件が違うから、既存のソース資産はあまり役に立たないんだよ。役に立つとしてもそのままというわけには行かない。コードは書き換えを要する」
「書き換えたらいいじゃん」
「でも書き換えるスキルを持っているのはソフト開発者なのだ。彼らからはおそらく支持されていない」
「えっ?」
「更に言えば、書き換えというのは実はとても難しい。そもそも実用ソフトのソースを理解するのは凄く大変なことなんだ。僅かな思い違いで変な挙動を引き起こす書き換えが行われてしまうからね。だから、片手間でひょいひょいとは行かない」
「なるほど」
「だから、ソフトの主戦場はWP7に行くかもしれないぞ。ハードは数ヶ月おきにしか新機種で話題を作れないが、ソフトは毎日のように新作の話題ができるからな。話題性も比較にならない」
テスト用の実機配布という問題 §
「もう1つ、重要な問題がある」
「それは何?」
「アンチMSの主要な思想の1つはオープンソースなのだが、これは要するに『金は出さないから、みんな手弁当を持って集まれ』なのだ」
「うん。みんなの力を合わせて世界をもっと良くしようという思想だね」
「実際には良くならないけどね。かなり詐欺っぽいから」
「信者はそんな意見を受け入れないよ?」
「当然だ。本人は信じ込んでいて正当な批判も受け付けないから信者というのだ。信じたくて信じている人には何を言っても無駄だ。どこの世界にもそんな人は山ほどいる」
「ぎゃふん」
「しかし、ここでの話題はそこにはない」
「それはなに?」
「会場に参加していれば、開発用実機の提供を受けられたのだ」
「えーっ」
「つまりさ。MSの態度は『金を出して環境は整えてやるから思いっきりコード書いてくれ』ということなのだ」
「参加者の手弁当を当てにしないわけだね」
「そうだ。これはMSが身銭を切っているようでいて、実際は儲けるための布石なのだ。『損して得取れ』という方法論を実践しているわけだ」
「でも、みんなが踊らなかったら損のままだよ」
「だから。コードを書く意志がある人に基本的に限られるのだが、それでもみんな欲しいという。書く気があるってことだ」
「そうか。もう、実機を手にする前から踊る気満々なんだね」
「Ustream見てた人も抽選で入手できる可能性もあるみたいだから、その可能性の賭けようかな」
「君も、実機を手にする前から踊る気満々なんだね?」
「うん。ありていにいえばそうだ」
「でも、Azureのプロを目指す君がWP7なんてどういう脱線だ?」
「ふふふ。甘いな」
「えっ?」
「Azureはサーバー側の技術だ。それだけでは完結しない。クライアントが必要なのだ」
「まさか」
「そのまさかだ。クライアント側にWP7が来てもいいのだ。というか、来て来て。ウェルカム状態なのだ」
「でも、Azureは基本的にHTTPで通信するわけだろ? 別にWP7じゃなくてもいいじゃん」
「ははは。そこが素人発想だよ」
「どういうこと?」
「だからさ。AzureもデスクトップのWindowsもWP7も同じC#で書ける。環境に関係ないコードはそのまま持って行けばいい。楽ちん」
「それって君の都合じゃないか。CとかC++とかJavaとかObjective-Cとか、ともかく他の言語のプログラマには関係ない話だろ?」
「関係無いね。おいらはおいらの都合しか語ってない」
「でも、それってアンフェアじゃ無いのか?」
「ほとんど被害妄想みたいな理由でJava信者とかそのへんから、C#を貶められたことはアンフェアでは無いと?」
「えっ?」
「アンフェアを云々するなら、先に問題にすべことは山ほどあるだろう。正義の味方のふりをしたどす黒い汚い人たちがどれぐらい世の中に溢れているかいちいち列挙して欲しいかい?」
「ええっ?」
「というか、そんな被害妄想みたいな話を真に受けて信じ込むぐらい頭が弱い人たちは、ろくにコードも書けないだろうから、放っておいても関係ないよ。こちらが相手にするのは自分が信奉する言語がメジャーになることにこだわる人じゃない。自分のコードが価値を認められることにこだわる人だ。XXという端末は素晴らしいとかいう人じゃない。機種に関係なく『オレのプログラムを見ろ』と思う人だ」
問題は何も無いのか? §
「問題は何も無いと思っていいの?」
「そうでもない。未来はいつも不透明だ」
「たとえば?」
「ハードを作っている技術者が全員談合してWP7の端末は作らないと勝手に決めるとかね。そういう事態があれば未来は分からないよ。現物が無ければソフトも意味を持たない」
「それはあり得ないだろう。客が怒るよ」
「もうとっくに客は怒ってるよ」
「ぎゃふん。じゃ、そういう大きなスケールの話はともかく、もっと現実的なレベルの話ではどうなんだい?」
「WPFで行くかXNAで行くかはともかくとして、発想を大きく変えていかないとコードが書けないみたいだ。どちらにも慣れていないと大変かもしれない」
「君はどうなんだい?」
「XNAは経験がほとんど無い。ゼロでは無い程度の経験しか無い。WPFは経験があるが、WinFormの割合の方が多い。けっこうハードルは高い」
「高いのか」
「でも、そこは高くても飛ぶしかない」
「どうして?」
「デバイスの性質が違いすぎるからだ。UIそのものを全面的に考え直す必要がある。デスクトップ用のコードをそのまま動かして何とかなる世界でもない」
「なるほど。話はそれだけかい?」
「いや、あとBlendの問題がある」
「デザインツールだね」
「これを使うことでかなりのことができるらしいのだが、こちらはぜんぜん経験が無い」
「どうして経験が無いの?」
「あまり興味が無かったからだ。Visual Studioで必要な作業は全部できていたしね」
「でも、これからはBlendも経験を積む必要があるってこと?」
「そうだ。簡単なビジュアル効果を持つコンテンツを作るだけなら、その方が手軽そうだしね」
「Visual Studio+C#という組み合わせにこだわっているのじゃないの?」
「こだわってない。そこが信者連中にはしばしば理解されない。彼らは敵対者も同じであると思い込みたがっているが、こっちは何も信じてない。別にC#より優れた言語がでてきて、C#が時代遅れになっても構わない。というか、既にかつての主力開発言語であったTurbo Pascalは時代遅れになったがそれに文句を言うつもりは何も無い」
問題ないことは何か §
「じゃあ、問題じゃ無いことって何があるの?」
「解像度だな。WP7は2種類しか無いそうだ。800x480と480x800」
「それじゃ実機は2つあればいいってこと?」
「いやいや。1つでいいんだよ」
「どうして」
「縦のものを横に置くだけで解像度が切り替わる」
「ぎゃふん」
「しかも縦横固定で書けば1種類対応もあり得る」
「それは凄くテストが楽そうだね」
「そうだ。実はテストの問題はIT詐欺の典型的な手口なんだ」
「えっ? 詐欺?」
「素人はテストの重要性が分かっていないから、開発が終わったらすぐ実行できると思ってしまうが、実際はテストもしていない環境での実行は保証できない。たまたま動くことも多いが問題が出ることもある。対象とする環境が多くなるとどれかに引っかかる可能性が出てきて、安易に対応範囲を広げられない」
「そうか。1回コードを書けばどんな環境でも実行できます、というのはテストの手間を無視した主張ってことだね?」
「そうだ。本当なら『どんな環境でも実行できます』と主張するためには、『どんな環境でも動作した』という実績が必要だが、それには非現実的な手間と予算が必要とされて、まずたいていは実行できない。つまり、砂上の楼閣だ」
「非互換性を完璧に吸収するライブラリがあったら?」
「『Aキーを押して下さい』というメッセージを出すのは簡単だが、Aキーが存在しない端末だってあるんだぜ。それをどうやってライブラリで吸収するんだよ」
「ならどうしたらいいんだい?」
「WP7だと最低限装備すべきUIの要件が決まっているので、その範囲でUIを作るようにすればいい訳だ。話は簡単」
「それは簡単だね」
「こういうプロファイルを作ってハードメーカーに徹底させることができたのがMSの分かっているところ。徹底させない自由さを価値と勘違いしたのがGoogleの経験不足の露呈。結果としてプログラムを送り出すまでのコストがまるで違ってしまう」
まとめ §
「それで世の中はどこに行くんだ?」
「それはこっちが聞きたいよ」
「すまん。質問が悪かった。君に分かるわけが無いな」
「たぶん誰にもワカラン」
「じゃあ、質問を変える。それで今の君はどうしたいんだ?」
「今のアドエスが故障する前にWP7端末が入手できることを祈るのみだ」
「抽選で当たるかどうか分からないだろう?」
「当たらなくても現在のアドエスの後継機は必要だ。1つ買うことになるだろう」
「Androidを買うという選択肢は?」
「無いな。タダというならともかく、金を出してそんな未来が不透明な端末を買えるか」
「iPhoneは?」
「前にiPod touchを買って、AppleのUIは豪語するほど優れていないことが分かってしまった。デザインが凝っているだけで、別にUIは凄くなかった。というか平均以下。おいらが先生でデザインした奴が生徒なら単位を落とすね。基礎ができてない。だから、別に欲しいとは思わん」
「それじゃあくまでWP7に絞られているわけだね」
「まあね」
「では、WP7だとしてどんな端末が欲しい?」
「実はそこが明確ではない。最終的にキーボードは必要なのか、それともカーブフリックで十分なのか。そこが見切れない。たぶん、使い込まないと分からない世界なのだろう」
「そうか。そこは不明か。じゃあ、どんな使い方をしそうなんだい?」
「そこも不明確だ。可能性の海が広がっているが、どんなサカナが泳いでいるかはまだ良く分からない。これから開拓していく必要がある」
「どんな可能性があるの?」
「アドエスにはカメラ機能もあるし、基地局からおおまかな位置を特定するソフトもあった。Mobile Google Mapsで地図も見られた。通信機能もある。でも、みんなバラバラだった。せいぜい、位置の特定から地図に連動する程度だ。それが標準的なAPIで統合されてアプリから利用されたとき、どんな相乗効果が出てくるか分からない」
「WP7はGPSあるんだよね」
「ずっと高精度で自分の位置を特定できる。カメラ機能も撮影された人が誰かを判定する機能があるようだ。更にSNSとの連携も強力そうだ」
「それを使って何ができるか、限界がまだ見えないわけだね」
「そうだ。だからまずソフトを書くことから始めねばならない」
「ソフトの完成がゴール?」
「いや、そこはスタートラインさ」
「ソフトの完成はゴールじゃ無いの?」
「そうじゃない。完成はスタートラインに立つことだ。そこを勘違いしている人は、どうぞご自由に好きなところに行ってくれ。おいらはその先が見たいんだ」
余談 §
「3社の戦略の差をまとめてみた」
- iPhone→Appleはスターになりたい。開発者はスターと共演できる脇役になれることを喜べ
- Android→GoogleはMSにとって変わりたい。開発者はMSに向けたのと同じ忠誠心をGoogleに向けよ (でもそんな忠誠心をMSに持ってる人はもともとほとんどいないから盛大に滑る)
- WP7→MSは黒子に徹して損して得を取る。開発者は自分がスターになってくれ (でもこっちも儲けさせてもらうよ)
「本当に?」
「さあな。真実は知らん。けして信じてはいかんぞ」
「でも天下のMSが黒子になれるの?」
「なれる。なぜなら、昔のMSは黒子だったからだ。黒子の遺伝子がMSにはあるのだ」
「本当に?」
「たとえば、1980年頃にNECのパソコンがナンバーワンとしてもてはやされたが、起動時のコピーライトメッセージに出てくるMicrosoftの名前はほとんど誰も話題にしなかった。話題はマニア向け雑誌だけだ。それがOEMビジネスというものだからだ。あるいはアメリカではIBM-PCが出た時に人々は争ってそれを買った。天下のIBMブランドの製品だったからだ。MSのOSが搭載されていたからではない。みんなMSなんて知らなかった。でも、MSは儲かった。そういう時代はあったのだ」
余談2 §
「IBM-PCはMSのOSを搭載していたって話は若い人には理解できないだろうな」
「きっとWindowsだって連想するよ」
「ははは。かもな」
「実際はMS-DOSだよね」
「いや。PC DOSに決まってるだろ」
「ぎゃふん」