Windows HeartBeat #10 (1994年5月)
ビル・ゲーツに囲まれて(前編)

 「ビル・ゲーツを知った」のは、14、5年前、松下通信工業のMybrain700というインテル8085パソコンで、ゴルフのスコアー計算システムや、タクシー会社向けの給与計算システムを作っていた時である。 Mybrainは、「OS」としてマイクロソフト社のDiskBasicを搭載しており、24MBのメモリに16MB、オッと違う違う、24KBのメモリに16KBのBasic言語が入り、残りの8KBでマイクロソフトBasicのINPUT$や無敵のMID$関数を使って、アプリケーション・プログラムの開発を行なった。 松下通信の方から、アルバカーキのマイクロソフト社の様子や、ビル・ゲーツという人の事を教えてもらった。 創刊したばかりの、厚さ3mmほどの「ASCII」という雑誌にも、ビル・ゲーツや「Microsoft」という奇妙な名前の会社が頻繁に登場していた。

 当時のマイクロソフトは、Basicなどの言語主体のソフトハウスで、インテル8080用の標準OSである「CP/M」上で稼働するマクロアセンブラ(M80)やFortran-80(F80)という科学技術計算用コンパイラ、そしてOSの機能も含んだDiskBasic言語のOEM供給会社であった。 Byte誌に出したマイクロソフトの広告には、DiskBasicを採用した会社のロゴが踊り、「We set Standard」というキャッチフレーズを冠していた。 「我々が標準を作ります」の言葉通り、日本工業規格(JIS)のBasic言語仕様委員会でも、マイクロソフトDiskBasicの仕様が大きく取り入れられた。 当時の、メインフレーム全盛のコンピュータ業界の状況から考えると、デジタルリサーチがCP/Mというオペレーティング・システムを販売した事と、マイクロソフトがBasic言語の仕様を規定したことは、新鮮な驚きであった。 IBMでもUNIVACでもDECでも富士通でもない小規模のソフトウェア会社が、「We set Standard」と叫びながら、コンピュータ業界に殴り込みをかけたのである。

 「ビル・ゲーツを信じた」のは、10数年前、8ビットから16ビットへの移行期であった。 それには2つのきっかけがあった。

 ひとつは、MS-DOSのデザインセンスの良さである。 CP/M-80の後継争いで、本家デジタルリサーチのCP/M-86と新興のMS-DOSの主導権争いが発生した。 IBMやNECが両OSを併売し、ユーザやソフトハウスの選択に、戦いの決着が委ねられた。 MS-DOSに軍配が上がった技術面での理由は、ディスクを管理するFATのデザインやシステム・コールの仕様などで、MS-DOSのほうがCP/M-80との互換性が高かったためである。 デジタルリサーチが、16ビット用ということで、CP/M-86に豊富な機能を盛り込んだのに対し、MS-DOSは、インテルの8086の設計思想と同様に、8ビットとの互換性を重視したのである。 結果として素直に16ビットへの移行が行えるMS-DOSのアプリケーションが増加し、CP/M-86は消えていった。

 もうひとつは、「リンカーがあった」という単純なものである。 8086を搭載したPC-9801の登場で、日本でも本格的に16ビットパソコンの時代が到来した。 当時、私はJwordという日本語ワープロの設計やプログラミングを行なっていた。 最初、CP/M-80用にマクロアセンブラM80記述で開発したJwordは、沖電気のif800モデル20/30で販売を開始した。 販売から半年もたたない内に、世の中が16ビットと騒ぎ始め8086版の開発を余儀なくされた。

 98用に、N88-Basic版とCP/M-86版、MS-DOS版の3種類のJwordを作った。 作り方は先ず、8080から8086アセンブラへのソースプログラム・コンバータを作成し、大まかな8086アセンブラプログラムを作る。 それを手直しして、CP/M-86用とMS-DOS用のアセンブラソースを作った。 N88-Basic版は、ファイル入出力をFAT方式からDiskBasicのクラスタ方式に変換するライブラリや、簡単なプログラム・ローダー、画面の制御を行なうANSIのエスケープ・シーケーンスのエミュレーターなどを作って対応した。

 CP/M-86版とMS-DOS版で、ソフトウェアの開発効率に決定的な違いがあった。 それは、リンカーの有無である。 いくつかのオブジェクト・プログラムを繋ぎ合わせて実行形式プログラムを作成するリンカーは、ソフトウェア開発には不可欠の開発ツールである。 当時、CP/M用にはPLINKなどのリンカーが販売されていたが、CP/M-86用のリンカーは、まだ存在していなかった。 ビル・ゲーツは16ビットでの大規模ソフトウェアの開発を支援するために、MS-DOS開発システムにリンカーを標準添付したのである。

 ソフトウェア開発者を重視し、支援する彼の姿勢は、マイクロソフト・プレス、マイクロソフト・ユニバーシティ、そしてマイクロソフト・デベロッパー・ネットワークへと引き継がれている。

 「ビル・ゲーツに囲まれそうだ」と感じたのは、7年前の正月、マイクロソフト社幹部の方からの年賀状に添えられていた「Windowsをやって損はないと思います」という一行を見たときである。 当時、Windowsはバージョン2.0で、満足なアプリケーションソフトなどひとつもなく、画面はゆっくりスクロールするし、とても成功するOSとは思えなかった。

 いちばん気になったのは、MS-DOSとWindowsでのアプリケーションソフトの位置付けの違いである。 DOSはその名の通り、ディスクの管理以外は何もしていない。 DOSプログラマーは勝手気ままにキーボードを制御し、テキストVRAMやグラフィックVRAMをいじり回して、自分の世界を作ることがでた。 ところがWindowsは、入出力のすべてに、ドライバーという複雑怪奇なものが介在し、アプリケーション・プログラム・インタフェース(API)という礼儀作法を重んじる仕組みを使ってプログラミングを行なわねばならない。 周りをすべてAPIに囲まれ、プログラマーはその中で活動しなければならなくなるのである。 その囲まれたなかで、プログラマーは何と、メッセージという指示の通りに、一生懸命、それを処理するプログラムを作っていくのである。 ビル・ゲーツに周りを囲まれ、あれこれ指示される中でのプログラミングはつらいだろう感じた。

 ところが、実際にやってみると、これが何とも楽しいのである。 Windowsの仕組みを理解することへの技術者としての好奇心や、派手で使い勝手のよいアプリケーションが簡単に作れる心地よさで、どんどん勉強して、どんどんソフトウェアを作りたい気持ちになってくる。

 そうして、自分の会社をWindowsプログラマーばかりにしてしまった。

 「ビル・ゲーツに囲まれた」のは、この数年のことである。 Windowsが全世界で5000万ユーザに達し、WordやExcelなどのアプリケーションも成功して、マイクロソフトが瞬く間にコンピュータの市場を握ってしまった。 サーバOSであるWindowsNT、携帯型OSであるWinPAD、システム構築環境WOSAなど、新しいOSやコンピュータ・システムのコンセプトを次々に具体化し、競合するIBM、ノベル、アップルなどとの差を広げつつある。

 メインフレームやミニコン、オフコンのシステムが、MPUとWindowsを使用したクライアント・サーバ・コンピューティングに取って替わられ、すべてのビジネスの場に、Windowsコンピュータが置かれる勢いである。 誰もが、追いつけないと感じている。 コンピュータのOSやパッケージソフトが、ほとんど彼の手の内に入ってしまった。

 7年前、Windowsのプログラミングで感じた気持ちを、今、世界のすべてのコンピュータの携わる人々が感じている。 ソフトウェア技術技術者も、ハードウェアメーカーも、システムコンサルタント会社も、みんなビル・ゲーツに囲まれてしまったと感じている。
 そして、「ビル・ゲーツが逃してくれた」場所がある。 ソリューション・プロバイダーである。


#11「ビル・ゲーツに囲まれて(後編)」