|
Apple と NeXT の合体にあたり NeXT 社の提供する NEXTSTEP という OS について紹介して欲しいとのことですので、そのような角度から解説をさせて頂きます。記事を読んで頂くにあたって、少し私のバックグラウンドについて触れておく必要があるかと思います。 私は Apple II の頃からの Apple ユーザですが、Mac のコンセプトや GUI などは素晴らしいものの UNIX を使っていた関係もあって、「マルチタスクで動かない」「もっと強力なネットワーク機能を」というようなことで、NeXT が出現すると同時に Mac よりも NeXT がメインのマシーンとなり、そこにどっぷりと漬かって今日まできました。
昨年まで 「NeXT ユーザ会(通称 NeXus)」の代表幹事をやっておりましたが、本職はコンピュータとはまったく別の分野ですし、あくまでも「エンド・ユーザ」のスタンスで書かせていただきます。
NeXT 社は Apple 社の創設者 Steve Jobs が社内のゴタゴタで何人かの優秀なスタッフとともに Apple 社を辞め、1985年新たに創設した会社です(最近は Mac ユーザで Jobs を知らない人もでてきたようですが、今回の Apple 社への復帰で伝説の Jobs の人気が現在でも衰えていないことが示されました)。
そのようなことから、初めて登場した NeXT 社のマシーンは、モトローラの CPU を搭載し、業界はじめての MO ドライブ、UNIX ベースの OS、オブジェクト指向開発環境、DisplayPostscript による本当の WYSIWYG、本格的マルチメデイア機能、金に糸目をつけずデザインされた黒光りするサイコロ状の函体など、最初から画期的な内容が詰まったもので、本当にワクワクするようなマシーンでした。
阪大が大勢の学生に使わせるマシーンのリプレースに当り、思案の結果再び NEXTSTEP マシーンを選択したことは、まさに NeXT 社の当初のコンセプトが裏打ちされた好例と思います。しかし、その後教育界で思うような収益を上げることができなかったことから、NeXT 社はターゲットをビジネスへ向けることになります。同時に個人ユーザを切り捨てる方向になって行ったことは企業としてやむを得ない選択だったとは言え、大変残念なことでした。
NeXT に搭載された OS は当時 NeXTstep(その後 NeXTSTEP さらに NEXTSTEP と改称)と呼ばれ Mach (Mac とは関係ありません。マークと発音します)というマイクロカーネル上で動きますが、実質的には BSD 系の UNIX そのものです。しかし、その上に Macintosh の血を引く GUI をかぶせてあるのが特徴で、「UNIX を知らないユーザでも使える初めての UNIX マシーン」ではないかと思います。現在でも他にそのようなマシーンはなさそうです。デスクトップは Mac と使い勝手が大変似ていますので、Mac ユーザにとってあまり違和感のないものです。
NeXT の OS は Mach がベースですが、これに NeXT 独自のデスクトップ環境などを載せた OS 全体を NEXTSTEP と呼びます。
NEXTSTEP のデスクトップはファイルビューアと呼ばれます。Mac と同様アイコンやフォルダーの形で表示もできますし、階層化されたブラウザーの形で表示もできます。複雑な階層をわたり歩くには後者の方が便利で、私はこちらを愛用しています。この上でファイルやフォルダーのコピー・移動・リンク(Mac の alias と同じもの)などは、キーボードとマウスとの組み合わせで行うことができますが、キーボードでの操作に慣れた UNIX ユーザにとっても便利なもののひとつです。 NEXTSTEP にはサービス機能というものがあります。あるアプリ内で選択された文字列などを別のアプリに処理させ、処理結果をもとの選択部分と置換するものです。これを使うと例えば、ワープロ内の選択部分の右端を全部そろえたり、ワープロ内で計算式を選択しておいて別のアプリに処理させた計算結果をそこに挿入したりできます。つまり汎用の仕事は特定のアプリに組み込まず、別のアプリの機能を使えば良いわけです。デスクトップ環境を介したある意味でのサーバ・クライアント関係と考えてよいと思います。
NeXT 社は最初ハードウエアも生産していましたが、途中からハードの生産をやめ、マイクロソフト社のように NEXTSTEP という OS を売るソフト会社へと転身しました(これにともない、社名も NeXT Computer 社から NeXT Software 社へと変更になりました)。 Motrola の石で動くオリジナルの NeXT マシーンを黒ネクスト、Intel で動くものを白ネクストなどと呼んでいます。Motorola の石に固執せず、マルチプラットフォームへの転身をはかったことは正しい判断だったと思います。Intel の世界の安い機材が利用できるようになったのは、ユーザにとって大変有り難いことです。また、それまではどうしても CPU スピードの問題でパフォーマンスが上がらなかったのですが、Pentium などが利用できることになったことで、本来の NEXTSTEP の本領が発揮できるようになりました。 オブジェクト指向で作られたアプリケーションは大きなオブジェクトをメモリー上に展開して動きますし、特に GUI を駆使したアプリケーションが多いなどの理由から非常に CPU パワーを必要とするのです。
NEXTSTEP から OS 部分を除いたものが、OPENSTEP という名前で提供されるようになりました。NEXTSTEP の場合は OS を含めて Intel の他 SPARC などいろいろな CPU 上で動きますが、OPENSTEP は更にマルチプラットフォームを意識したもので、NEXTSTEP で使われている AppKit の API を公開し、従来からの Mach を基盤とした OS の他に Sun の Solaris や MicroSoft の NT 上でもまったく同じアプリケーションが動くようになります。 AppKit というのは、Mac の ToolBox に相当するもののひとつで、オブジェクトのクラス・ライブラリーです。NEXTSTEP では、AppKit を使ってアプリケーションを作成することができますので、他の OS で AppKit が使えることにより、同じ環境をいろいろなプラットフォームへ移植できることになります。また画面への表示や印刷などの描画はすべて Display PostScript が担当しますので、これもマルチプラットフォーム化しやすい理由のひとつでしょう。PostScript はハードウエアなどに依存しないのが特徴ですから。 今までの NEXTSTEP ユーザの多くは従来からの Mach ベースの NEXTSTEP に愛着を持つ人が多いようですが、Solaris や NT などと混在して使いたいという人も多いので大変歓迎されています。 OPENSTEP の場合、まったく同じ API を提供しつつ、ベースはあくまでも Solaris や NT ですので、Solaris あるいは NT のアプリケーションと混在した形で、OPENSTEP の特徴である本格的オブジェクト指向で作られたアプリケーションを利用できるのです(例えば、このような環境だと OPENSTEP のアプリと混在してNetscape が使えるので嬉しいという人がいます。OmniWeb という NEXTSTEP 上の優れた Web ブラウザーもあるのですが、最近余りバージョンが進まずかなり見劣りするようになってしまっているのです)。 また OPENSTEP で作られたアプリケーション同志は、相互にメッセージ交換ができますので、色々な CPU や OS のマシーンが混在した環境でも、アプリケーション・レベルで便利な統合環境を作ることができます。
今度 Apple 社から出される新しいシステム(開発名 Rhapsody) は OPENSTEP ベースになるようです。メジャーな CPU で OPENSTEP が動かないのは PowerPC だけでしたので、これで OPENSTEP は全ての CPU を制覇したことになります。Jobs は大分前から「NEXTSTEP を Apple のハードに載せるにはほんの数か月あればよい」と言っていました。真偽のほどはわかりませんが、その頃すでに PowerPC の上で動く NEXTSTEP も NeXT 社内にはあるという噂も聞いたことがあります。
最初出されるのは PowerPC に OPENSTEP を載せたものだと思いますが、いずれ高速かつ周辺機器を含め安い Intel マシーン、ビジネスに使うには信頼性の高い SPARC マシーンなどを使い分けられるようになることを期待しています。特に携帯型は今や wintel の独壇場になっているので、何とかここに切り込んで欲しいというのは多くの人の願いでしょう。
Interpersonal Computing とは「強力なネットワーク機能を自在に使って、個人とグループの生産性を飛躍的に高めよう」というものです。NeXT は「羊の皮をかぶった狼」です。表はパソコンでも、裏はパワフルな UNIX エンジン駆動のワークステーションだけに、ネットワークは大変強力です。Internet の色々なシステムはそもそも UNIX の世界で作られたものが多いので、Internet への対応も何の苦労もありません。 NEXTSTEP 独自のネットワーク管理システム NetInfo は大変優れたもので、例えばネットワークに新しいマシーンを接続する際 Sun など従来の UNIX では色々な設定ファイルを編集する必要がありますが、NetInfo で管理されたネットワークでは、いきなり新しいマシーンを Ehternet へ接続すると「ネットワークに接続するが、あなたのマシーン・ネームは何にするか」と聞いてくるので、それに応えるだけで接続されてしまいます(必要ならパスワードを入れてから接続を許可するようにもできます)。この場合、実際には従来の UNIX 同様いくつかの設定ファイルを更新しているのですが、NetInfo では、それら一切をバックグラウンドでシステムがやってくれます。さらに便利なことは、NetInfo と従来からの Sun などの UNIX のネットワーク環境を混在しても一向に構いません。DEC などのシステムを扱い慣れた人も NetInfo の機能は絶賛していました。
NEXTSTEP は Portable Distributed Object という機能を装備しています。これは CORBA で提唱されるように、ネットワークを介した別のマシーンのオブジェクトをあたかも自分のオブジェクトであるかのように利用できる機能です。最近 CORBA のこのような方向性が流行になっていますが、NeXT 社がかなり早い時期にこれを製品化し、NeXT ユーザはそれを標準で使っていたということも余り知られていないのではないでしょうか。
また EOF(Enterprise Object Framework) は、データベースのクライアントを極めて簡単に開発できるツールです。これを使ってクライアント・アプリを書いておけば、アプリケーションを修正することなしに、バックエンドのサーバを簡単に切り替えることができます。例えば開発段階では比較的安価な DB にアクセスするクライアントを使っておき、運用段階では Oracle7 などに切り替えるなどです。切り替えは簡単で、単にパネルを開いて DB の種類を選択するだけです。
DTP も最初から NeXT のウリのひとつだったのですが、ユーザ数が伸びなかったため、PageMaker に類するアプリはほとんど商品化されなくなってしまいました。したがって「グラフィックス・音声などマルチメデイア機能が NeXT の特徴のひとつである」と言った方が正確かも知れません。
NEXTSTEP は 画面の描画に display PostScript を使っているのが特徴のひとつです。このため、イメージの出力、すなわちプリンターへの出力も画面への出力もすべて PostScript に統一されており、どのアプリからでも統一された印刷パネルで、出力先をプリンター、FAX、ファイル、あるいはイメージ・ビューアなどに切り替えられるのはとても便利です。
NeXT の Mail は最初からマルチメデイア対応です(MIME などが普及して今では珍しくありませんが)。以前は default で Steve Jobs の写真と音声の貼りついたメールが入っていて、それを開くと Jobs の生のメッセージが聞けたものですが、最近なくなってしまったのは残念です。絵でも写真でも音声でもアプリケーションでも、ありとあらゆるものをマウスで drag & drop するだけでメールに貼りつけられ、「投函」ボタンを押すだけですので、まったくの素人でもとても便利に使えます。メールが届くと相手の顔写真が表示されます。よくやりとりする相手の写真をあらかじめ登録しておくのですが、使ってみるととても親近感がわくものです。
私のところでは FAX も NeXT に接続した FaxModem が常時受けてくれ、画面で表示できます。その一部を Editor へ cut & paste してコメントを書き添え、再び FAX へ出力して相手へ返送できます。FaxModem で受けた FAX をネットワーク越しに別のマシーンで読み書きできるのも大変便利です(私のことろの NEXTSTEP マシーンは、メンテナンスの時以外電源を落とすことはありません。常時スタンバイの状態でメールや FAX のやりとりができます)。
NEXTSTEP 環境自体オブジェクト指向でデザインされていますが、その開発環境は特に有名です。開発用ツールである InterfaceBuilder を使うと、アイコンやボタンなどを drag & drop するだけで、簡単にアプリケーションを作れることが有名です。これは後に Visual Basic などが追従するようになります。
コンパイラーは GNU の提供する gcc ですが、Objective-C 用に拡張され、ANSI の C や C++ のアッパーコンパチブルでもあります。マルチ・バイナリーを指定してコンパイルすれば、どの CPU でも動くクロスプラットフォームのアプリができます。これをネットワーク上のサーバに置けば、どの CPU からもまったく同じように利用できるのです。
オブジェクト指向プログラミングをよく理解すれば、以前作成したクラスを使ってかなり高度で良質のアプリを、大変能率的に書けるようになることは間違いありません(このようなことから Software IC などと言われます)。Apple が多くのデベロッパーにこれを理解してもらい「これで開発してみよう」という気になるサポート体制を迅速にとることが、第一にやるべき重要なことだと思います。アプリケーション開発における NEXTSTEP の圧倒的な開発効率の高さは、色々な雑誌でも高く評価されてきたところです。
今回 NeXT 社の技術が Apple 社に買収されたことに、Sun Microsystems 社の人間が、自社で買収しなかったことに大変がっかりしたという話を聞きました。Sun も NEXTSTEP を高く評価して NEXTSTEP や OPENSTEP を自社のシステムに移植し、かなり積極的に取り組んできたからです。
両方を使ってきた立場で、両者の簡単な比較をしてみましょう。
何といってもその GUI を駆使した、ユーザフレンドリーな使いやすさでしょう。同様なシステムはその後他にもでてきましたが、外見だけで精神まで取り入れていないと感ずるものも多く見受けられます。Xerox のパロアルト研究所の成果を Mac は正しく受け継いでいると思います(Mac の血を引く NeXT もそうです)。
何と言ってもマルチタスク・マルチスレッドでないところです。Mac は当初からネットワーク機能を装備していたという点で大変先進的だったのですが、マルチタスクで色々な処理をやらせられるかどうかは、ネットワークの総合的なパフォーマンスにも関わってきます。
OS が UNIX ベースなのでパワフルかつ柔軟性が極めて高いこと。
UNIX を上手に裏に隠し、初めてのユーザもそこそこに使える UNIX マシーンを実現したところ。
「意地でも宣伝しないのでは」とまで見える PR 不足から、次第に世の中から忘れられ、物好きのオモチャにしか見られなくなったことが最大の問題点でしょう。NeXT の弱点はすべてここに始まると言って良いと思います。 今回の発表の中でも「Apple 社と NeXT 社が相互に補完するものを持っているから」という理由はまことに的を得たものです。補完するメリットを最大限に生かし、おかしなところでぶつかったり今まで持っていた良い機能を殺したりして欲しくないと切に願うものです。
Apple 社がまずやるべきことは、何といっても従来の Mac のアプリを速やかに新しい OS へ移植する体制・サポート体制を迅速に整えることでしょう。
NEXTSTEP 上では、全ての Mac アプリと完璧な互換性をもつものではありませんでしたが、Mac をエミュレートするソフトがかなり早い時期から出ていましたので、Mac のアプリをその上で動かすこと自体はそう困難なことではないと思います。
これで私もようやく大好きな Mac に帰れます。Mac もマルチタスク・マルチスレッドになって、ようやくオトナになるわけです。OpenDoc などの優れた技術も、これによってさらに磨きがかかることでしょう。
|