« どこまでも歩けそうな夜 | トップページ | 冷える »

2004.04.04

やはりマイクロソフトはとんでもねぇ

IT系出版社インプレスPCWatchは、Web日刊ニュースの先駆けとして有名だけど、ニュース以外にもおもしろい記事が載る。最近読んだ「見えてきたMicrosoftの次世代Xbox戦略」(後藤弘茂の海外ニュースという連載記事の一つ)もそうだ。記事は2つに分かれている。リンクは以下。
  (1)
  (2)

内容は、Microsoftのゲーム向けのカンファレンス Game Developer Conference(GDCと呼ばれる)で発表された新プラットフォーム「XNA」について、チーフ・アーキテクトのAllard氏にインタビューしたものだ。
ちなみに、XNAがなんだか知らんという方は、とりあえずCNET Japanの記事あたりで感触をつかんでから、御本家のページを見るのがよいかな。
ただ、ある程度技術的なことを知ってる方は、上記の後藤氏のインタビュー記事から入っても面白いだろう。というか、一番よくわかるかもしれない。
記事はかなり長いし、技術的背景がまったくわからない人に対しての簡素な要約は、無理だろう。読んだという前提で、書きたいことを書いてしまうことにする。

***

ところで、技術的なことに携わった経験の少ない多くの方は、コンピュータといえば「パソコン」のことを指すと考える方が多いかもしれない。特に、一番多く出荷されているコンピュータと言われれば、パソコン、それもWindowsが載っているパソコンが頭に浮かびやすい。
しかし、世界中でたくさん出荷されているコンピュータといえば、家電製品(カーナビや携帯電話なども含む)や業務向け(工場制御や電力・ガスの扱いなど)のコンピュータということになる。最近はプロジェクトXでTRONプロジェクトが取り上げられたこともあり、ご存知の方も多いかもしれない。
もちろん、ゲーム用コンピュータも大きな分野だ。

パソコンの世界では、マイクロソフトが開発したWindowsが一番多く搭載されている。Windowsとは、オペレーティングシステム(OS)と呼ばれる分野のソフトで、操作をするための土台となるソフト。この上でメールを書いたり、ワープロソフトで文書を作ったり、Webページを見たり。
では、そうじゃない世界のコンピュータでは、何がOSになっているのだろうか。
実は、1990年くらいまでは「そんなもん、ない」と言ってもおかしくなかった。
マイコン制御の電子炊飯器で、豪勢な操作体系など、いらないでしょ? スイッチを押して、ご飯を炊ければいい。おかゆだ、おこげがほしいだのと贅沢な機能を持ちたい場合でも、小さな液晶画面にちょっとメニューが出て、選択できればいい。あとは、電子炊飯器の中に入っているセンサーとチップが、きちんと仕事をしてくれるように作ればいい。
目的が決まっていて、ユーザがいくつかメニューを選択したり、いくつかあるボタンの組み合わせを読み取ればいいだけの機械は、難しい操作はいらない。だから、操作だけのために豪勢なソフトなど載せる必要もない。多少面倒な仕事をする場合でも、ちょこちょこと技術者が自分たちで書いてしまえばいい。
だから、いらなかった。必要なかったのだ。パソコンは何に使うかをユーザが決めるし、場合に寄っては相当複雑な操作をする。だから、必要に迫られて、OSが力を持つようになった。

パソコン以前は、コンピュータといえば、テープがぐるぐる回っていて、ランプがぴかぴか光って、ロッカーみたいに大きいのがいくつも並んでいる、わけわかんないものだった。これは今でも銀行や商事会社などの基幹業務を支えている、メインフレーム・コンピュータと呼ばれる(日本語では汎用機と呼ばれる)。アポロ打ち上げなどの科学技術計算や、銀行のオンラインサービスなどを通じて急激に発達した。1960年代から1980年代まで、コンピュータの主流はこれだった。
OSという、操作の土台となるソフトウェアは、この頃に生まれた。ただし、今のようにマウスでカラフルな画面を操作することなどできず、操作するだけでも専門知識がいるものだった。え、今のパソコンもそうだって? いや、それどころじゃなく、専門家でないと触れないものだった。
業務に特化して高性能なメインフレーム・コンピュータだが、あまり扱いやすいとは言えないし、融通がきかないと、当の技術者達でさえ感じていた。また、コンピュータに興味を持ち、プログラミングをしたい人たちもそれなりに多かった。皆が、コンピュータを手元に置いて、自由に使いたいと思っていた。彼らは、彼らなりの工夫をしていった。

(1)コンピュータ科学を研究している人々は、IBMの汎用機OSよりも扱いやすくシンプルで、コンピュータそのものの実験研究に向いたOSを必要としていた。AT&Tのベル研究所で研究していた人々は、UNIXを開発していった。1960年代から1970年代にかけての出来事であり、1980年代には大学や研究所を中心にかなり普及していた。

(2)将来のコンピュータ像を研究しようとゼロックスの研究所に集まった人々は、コンピュータを扱いやすくすることで、メディアとして機能し、オフィスワークにも使える方向性を編み出した人々がいた。先人が発明したマウスを取り入れ、画面上に自由に絵や文字を描けるビットマップディスプレイを採用して、画面に複数のウィンドウを表示し、より現実世界に近い画面を実現する。1970年代、現在一般的に見られる技術の基礎は、ここで結実していった。ただし、ここではOSそのものよりも、新しい世代のコンピュータのパッケージと、それを作るための、開発手法の研究が大きな位置を占めていた面もあった。

(3)コンピュータを手元に置きたいと熱望した若者達の心を、4 bitや8 bitの低性能CPUがつかんだ。ザイログ社から起こり、インテルやモトローラが出したチップを使って、1枚の基盤上にコンピュータの機能を実現するキットが登場。低性能ではあっても机上で独占できるコンピュータは、マイコンブームを呼び起こした。これに目を付けて、キットではなく完成品を売り出したのが、アップルコンピュータ。1970年代後半、現在のパソコンの誕生である。

(1)(2)はともに、非常に高性能な32 bit CPUを持つコンピュータを前提にしていた。当時の技術では、机上にはのらない。(1)のUNIXは最初、オフィスのロッカーくらいの大きさのミニコンに搭載されていた。もう少し小型の(2)についても、最初は机の下に置くものだった。一方、現代に通じるようなOSの原型はほとんど出揃っていた。
(3)のようなボードコンピュータは、もちろん机上に載る。ただし、単に独占しただけで、皆が好き勝手にコンピュータをいじっていた。起動するとまずBASICと呼ばれるプログラミング言語が動き出し、その上でプログラムを入力するか、ロード(呼び出し)するかしないと、何も出来ない。
OSなどない世界。
もちろん、1980年代に入ると8 bit CPUに対して、CP/Mと呼ばれるシステムが登場する。また、こういうものをベースに、工場制御などを安く行う方向も立ち上がってくる。さらに、CPUが16 bitになると、マイクロソフトのDOSなどが登場し、皆が一貫性あるディスク・フォーマットを読み書きするようになっていく。
しかし、(1)(2)がそれまでのコンピュータ科学のあり方を知っていた人々が、よりよいものをと考えていったのに対して、(3)のパソコンとは無法地帯でがんばる人々の文化だった。システムとはいえ、既存のOSとは方向性が違う。少ないメモリ、性能の低いCPUの上で、無理してでもソフトを動かそうとする。

端的に言っちゃうと、1950年代から営々と築き上げられてきた科学と技術の精髄が、一度ご破算になったのが、パソコンの世界。
そして、性能の限界の中で、いかにメモリを節約しつつ速度を上げるかを考え、コンピュータ科学の世界からはまっとうじゃないと言われる手法を使っても、やっちゃったもん勝ちだった。
これは、(2)の影響を受けたアップルコンピュータが、Macintoshを出した頃でも、十分に残っていた文化だ。

1990年代あたりから、小型でも十分な性能を出すワークステーションが一般化し、メインフレームの替わりにUNIXが使われる機会が増え始めた。(1)がメインフレームを食い出したわけである。
同じ頃に(1)のUNIXも、より多くの仕事をこなすためにスマートな操作環境が必要ということで、(2)やMacintoshの流れを受けて、X-Windowが一般化し始める。
(3)のパソコンでも、ソフトが複雑化の一途をたどり、ワープロと表計算の間でデータをどうやりとりするか、といった問題が重要になってくる。コピー&ペーストなんて、やっとMacが流行らせたくらいで、普通には出来ないマシンのほうが多い時代だった。一方、32 bit CPUがパソコンに載る時代でもあった。

というわけで、パソコンもそのままではいかんということになる。Macintoshもデビュー当時はOSを名乗れない貧弱なものだったが、System 7で体裁を整えて、大拡張に成功する。DOSでも失敗を重ねつつ、Windows 3.1とWindows95でキャッチアップした。
それでも、いままでの無法地帯文化の影響から脱するためには、Windows NTベースのOSや、Mac OS Xに至る20年が必要だった。この段階でやっと、それまでのコンピュータ科学の内容を反映した、まっとうなOSになってきた。

じゃぁ、UNIXなどはどうなっているのか。もともとまっとうなOSだったのだから、ユーザの操作しやすい環境をどうするかが問題だった。最近ではGUI機能の統合も進み、Linuxは最初からX-Windowが動くディストリビューションも多い。
ただ、サーバーとして動作する際には、GUIは重要じゃない。だから、X-Windowをなくしてしまい、むしろサーバーサイドJavaなどを動かしたほうがよい場合もある。プログラミングのプロが喜ぶ開発者向けの道具がたくさんあり、その上でこうした融通のきく選択が可能なところが、UNIXやLinuxが好まれるところだろうか。

いずれにせよ、(1)(2)(3)の融合が、現在一般的に見かけるコンピュータを形成しているというところ。

***

こうやって話してきて、1995年に始まったインターネット・ブームのことに触れていないのを不思議に思う人もいるかもしれない。
インターネットの歴史は、ここでは追わない。だけど、大事なことは、インタビューの前編で触れられているように、IPというプロトコルが出来た当時から専門家からよい評価を受けておらず、HTMLは言語としてあまりに貧弱だったということ(HTMLは科学は科学でも、物理学の人々が情報交換するために作ったもので、コンピュータ科学の人々がきちんと検討したものではなかった)。
ただし、コンピュータ科学の人々が問題視したこれらの要素技術は、皆に受け入れられた。非常に簡素でわかりやすく、部分的に理解するだけでもすぐに結果が得られる。むしろ、ソフトウェアで後からよくしていける、とも考えられる。
パソコンも、最初はまっとうなOSがない世界だった。しかし、プログラムを入力して動かせば、結果が得られる。使い手に見せて、様子を見ながらプログラムを書き換えていく、これを繰り返す過程で向上していった(そして結果的にはコンピュータ科学の成果を取り入れることになった)。

つまり、膨大な技術と科学に関する知識を要求される完璧な体系じゃなくて、現在ある要素技術をくみ上げた簡素な製品が目前にあると、そっちが広まる。広まってから、本当の発展が始まる。
それを繰り返しているようだ。

ゲームの世界も、家電製品向けのソフト開発の世界も、極端にいえば(3)のマイコン文化を継承してきたようなところがある。
ところが、家電製品向けのソフト開発では1980年代から、コンピュータ科学を現場に応用する発想が必要であり、それをベースにチップ、OS、周辺機器の制御に至る一貫した哲学の必要性を主張してきた人がいた。TRONプロジェクトの坂村健教授である(1983年当時は助手)。
この考え方は、電子楽器やテレビ、カーナビ、携帯電話などの開発にかなり重要な貢献をしてきている。無法地帯的な開発ではなく、製品の世代交替があっても一貫性を持って機能と性能を向上していける枠組みが、初期から入っていたのだから。
ただし、このような制御向けOSは、GUIを重視しない。先の電子炊飯器は極端な例だが、ビデオや電子楽器の場合も、パソコンほど極端に複雑な操作を必要としない。インターネットにつながる携帯電話でやっと、パソコン並みの複雑なOSとソフトを載せる時代になってきた。
まぁそれで「携帯電話にもLinux導入」などと言われるわけだ。もっとも、TRONはTRONで進化しているけど。

じゃぁゲームはどうか。この世界では、ゲームシステムとその見せ方がとても重要であり、たいていの場合、ハードウェアの限界を越えるような画面演出や動作速度を要求される。しかも、パソコンのように豪華なハードウェアは載せられなかったりする。
コンピュータ科学で「こうすれば効率的な開発が可能」と言われることを適用したくても、現場で評価すると「遅いからダメ」となりがち。もちろん、ハードウェアの設計などでいわゆるコンピュータ科学の出番があったとしても、なかなかパソコンのようにはいかなかった。
ただし、プレステ2以降、状況が変わりつつある。ハードウェアの性能があがり、緻密な絵や音を動かせるようになってきた。同時に開発の難易度が飛躍的に上がってきた。グラフィックとサウンドと、それらを動かすプログラマーに一流を揃えると、映画を上回るような巨大予算になったりすることもある。製作期間も長くなる。
アイデア一発で大設け出来そうだった業界も、そうはいかなくなってきた。

マイクロソフトという会社がすごいのは、こういう状況を冷静に分析する人が働いていることだ。後藤氏のインタビューに出たAllard氏は、Windowsのインターネット対応を押し進め、Win 32 APIを策定して、Windowsの上でどうプログラミングし、どのようなソフトを書いていけるかという大枠を作るのに大きな貢献があった人だ。
ここでは彼が担当するゲームの話があがっている。一方で、マイクロソフトは昨年、TRONプロジェクトと協調していくことを発表している。つまり、家電製品を中心とする制御用OSの分野で、既にコンピュータ科学の筋を通したフレームワークがある。それと真っ向から勝負をするよりも、TRONを土台にして協調しつつ、ユーザインタフェースの分野で力を出せばいいと考えているように見える。(もちろん状況が好転すれば、また違う態度に出るはずだけど。)
一方、ゲームではまだ新しいフレームワークがはっきりしていない。ハードが変わるたびに、新しい開発手法を模索することになる。プレステ2の開発者は、Linux上の開発環境を使っている。しかし、開発効率を圧倒的に上げる方向性は定まっておらず、いまだに現場の開発者が独自のノウハウでがんばっている面もあると聞く。
こうしたすべてが定まっていない分野なら、ハードウェアも含めた標準を定め、業界を横断する新しいフレームワークを生み出すことが可能だと考えているようだ。そうして、ゲームの世界でも(1)(2)(3)の融合にあたるものを生み出そうと考えている。

後藤氏のインタビューでは、ユーザのコミュニティとともに、開発者のコミュニティを育ててソフト間の分業を可能にし、協力しつつ競争していくことが可能だと考えているフシが、読み取れる。その際に、開発効率を飛躍的に上げ、予算と期間を抑えることを可能にすることを重視している。
マイクロソフトは、Longhornでデスクトップ市場の完成形を提示したいようだ。一方、独禁法やJavaに関して争っていたSunと和解し、今後は協業しつつ競争するという。そして、ゲームではSONYと勝負する気だろう。直球勝負、しかも、切れるエースを投入してきた。
大きな市場は譲れない、それはデスクトップ市場とゲーム市場。家電(AV機器や携帯電話などを含む)も重要だが、ここはゲーム市場とデスクトップ市場で挟みつつ、将来にモバイル向けWindowsでとろうとしている。
うーん・・・単に資本力があるというのでない。何度失敗しても、論理で攻めてくるんだよな。きっとPax Romanaはこうやって生み出されたんじゃないかと思わせるものがあるな。好き嫌いは別にして、やっぱりとんでもねぇ底力を持った会社だ。

|

« どこまでも歩けそうな夜 | トップページ | 冷える »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/16751/393037

この記事へのトラックバック一覧です: やはりマイクロソフトはとんでもねぇ:

« どこまでも歩けそうな夜 | トップページ | 冷える »