闘うプログラマー[新装版]

闘うプログラマー[新装版]

闘うプログラマー[新装版]

新装版が出ることを全く知らないまま、偶然に古い版を古書で購入していたのだが本日読了。言わずと知れたWindowsNTの開発現場を追ったドキュメンタリー、出版当初は話題になっていたのだが当時は読む気にならず、一周回ってMicrosoft周辺をわりと冷静に見られるようになったので読んでみた次第。
一般書だけあってテクニカルタームが出るたびにちゃんとフォローがされているので普通のPCを使っているユーザ程度の知識があれば十分に読める内容だと思う。OSの開発は業界的には非常にインパクトの大きなトピックなのだが、いかんせん地味なソフトウェアであるためその影響度合いは業界の外の人には若干理解しがたいものがあるかもしれない。本書の中でも繰り返し、その重要性が比喩で語られているがなかなか説明が難しい。
今ではMicrosoftがフルスペックのOSを持っているのは当たり前だが、当時はWindows3.1がやっと出たところでOS/2IBMとの共同開発という業界の覇者というには貧弱な状況だったのだな。Windows NTが出た直後ぐらいに95が出てようやくプリエンプティブマルチタスクのOSになったけど、3.1の頃のそれはOSとも呼べない代物だったのだから隔世の感がある。本作中でビル・ゲイツは信念を持って開発を推進していたとあるけど、やはり先見の明があったと思う。あのとき本格的な汎用OSを手に出来なかったら、我々は未だにWindows95の後継OSを騙し騙し使っていたことになっていたはずだ。クライアントはともかく、サーバ市場では今の地位は無かっただろう。
やはり後知恵だが、本作の文中にもある通り大規模な商用OSを開発する機会としては残念ながらこれが最後の機会になってしまったのだとも実感した。AppleはCoplandの開発に失敗してNeXT由来のMacOS Xに移行し、0からの新規開発は断念した。敢えて言うならBeOSだが、これもクライアントOSに特化することを考えていたようで汎用OSとしての性格は念頭になかったようである。研究プロジェクトレベルでは幾つも興味深い物は開発されているが、実験プロジェクトなどでもOSレベルで実装することよりはアプリケーションレベルで実装してしまうという話をよく聞く。Plan9の新しいアイデアはまずLinuxユーザランドで実装されてから、移植されるなどというジョークもあるぐらいだ。もはや研究面においてもOSを新しく作ってまで実現しなければならないことが減ってきているのではないだろうか。そういう意味では、結局UnixWindows NTみたいな実用OSを超えるビジョンを提示できなかったのかなと、少し残念に感じる。
そのWindows NTですら当初のコンセプトであるマルチパーソナリティや高い移植性はバージョンを重ねるたびに有名無実化していっているようである。事実上プラットフォームとしてはx86系以外ではIA-64がかろうじて残っているぐらいで、カトラーが情熱を持って移植したというMIPSやその他のRISC系プロセッサは移植どころか姿を消した物もあるぐらいだ。マルチパーソナリティについても、OS/2POSIXのパーソナリティについてもWindows NTと呼ばれていた頃は紹介記事にも言及されていたが、もはや話題にすら上らなくなって久しい。結局Cygwinのような実装の方が使われていたりする。技術書ではない本書に求めるのは筋違いというものだが、カトラーが目の敵にしたというUNIX系を超える機能というのがいまひとつ見えない。
本書を読み、これほどまでに情熱を持って開発されたというWindows NTの技術的側面を改めて勉強したくなったというのが成果だろうか。