MacOSに触れてみたい人へ

 昨日、あんなこと書きましたが、Windowsの方がパーツとソフトウェアの歩み寄りが進んでおり、画面の描画ひとつとってもWindowsの方が明らかに速いです。WindowsはUNIX系システムと違い、ウインドウマネージャとファイルマネージャのプロセスがあることが前提のOSだからか、同じ機能のGUIで使おうとしたら絶対速いです。ですので、WindowsからMacに移行すると操作感がイマイチ悪い印象を受けます。AQUAなんてユーザインタフェースを乗せているので余計重く感じます。強力なグラフィックスコアエンジンQuartzにより、ウインドウの開閉からサイズ変更、ボタンの鼓動(OSXのボタンは実は生きています)に至るまですべてがアニメーションされますから。おそらく次のメジャーアップデートで、DirectX9以上のビデオチップでのみ、2Dと3Dの超高速化が図られると思います。QuartzをすべてGPUに任せてしまうそうです。その頃にはIntelMacが出回っていることでしょうね。

 ぜひ、店頭でMacOS X 10.4(Tiger)を見かけたらやってほしいことがあります。
 まずエクスポーズ機能。画面にWindowがたくさんある状態で、キーボードのF9とF10とF11を押してみて下さい。F9はすべてのアプリケーションを対象とした、Window一覧が出てきます。F10は同じく一覧ですが、対象はアクティブのアプリケーションのみです。F11はすべてのWindowを一時的に片付けてしまいます。
 次にダッシュボード機能。次期Windowsであるロングホーンの新機能として、サイドバーがあります。画面の端っこでさまざまな情報を表示したりできるダッシュボードの役割の機能なのですが、MacOSXにも当に同じ役割の機能が搭載されています。これは本当に便利で、例えば株価や天気予報などを常に表示することができます。ただ、MacOSXは”デスクトップの概念”(画面を机に見立てる)を大切にしているので、机の大切な資源である面積をを占有するようなダッシュボードではありません。F12キーを押してください。これがMacOSXのダッシュボードです。画面左下に+マークが見えると思います。これをクリックしてみてください。引き出しが開き、ダッシュボードに追加できる機能を選べることでしょう。一つ一つの機能をウィジェットと呼び、HTMLとCSSとPNGとJavaScriptで作られています。比較的簡単に作ることが可能なため、作りたいと思ったものをすぐに実現できるでしょう。
 他にもイロイロ使える機能があるのですが、所有しないとわからない部分なので割愛します。OSXは、デベロッパに嬉しい機能を満載しているOSだと考えられます。今までのMacはまったく逆でした。その代わり、一定の束縛をユーザとデベロッパに与えて逆に統一感などを醸し出し、使いやすさを実現していたのです。デベロッパにとっては地獄のような環境ですね。Macはこれから生まれ変わる、そう感じざるを得ないデベロッパの端くれの卵なのでした。

 一応、OSXがどんな要素で構成されているか説明しておきます。
 Appleは、Xerox社のパロアルト研究所で見たアルトというシステムを常に市場で実現したいと思っていました。Smalltalkという超進化型オブジェクト指向とOSを20年以上前に体験し、Dynabook思想をかかげてマッキントッシュを進化させてきました。Dynabookとは、今で言うユビキタスとエージェント指向とオンデマンドとマルチメディアを全て併せ持つ情報端末で、言ってみれば超超多機能で人工知能を搭載した、自分の有能なマネージャーになってくれる、そんなものでした。Dynabook同士が会話をし、スケジュールも決めてくれます。
 この画期的な思想は、20年以上前のものであるにもかかわらず、未だに誰も関わろうとしていないか、表に出てきません。何故ならば、人は泥臭いことが好きだからだと考えます。未だにC言語を用いたUNIX系システムが社会を支配するのが当たり前となっています。で、Cに似た環境や仕組みでないと手が出せないようになっちゃうのです。だからJavaもRubyも、Cとは違う言語なのにCに則した表現が多いのです。基本的に、やさしい言語と呼ばれているものはCに似ています。まあ、そんな話はおいといて。
 そんな思想を持っているAppleは、1990年辺りからコープランドというプロジェクトを立ち上げました。プリエンティブマルチタスク(完全型並列処理)やメモリ保護(アプリにOSや他のアプリが巻き添え食ってフリーズしない)、革新的で豪華なUI等、非常に画期的なOSを作り上げることが目的で、今までのMacOSと違い、ゼロから作り上げる必要がありました。本来はMacOS8として発売される予定でしたが、技術力不足等でまともに出来上がらず、結局頓挫してしまいました。そして、その機能(メモリ保護以外)を持ったOSがWindows95として出てしまい、大きな遅れをとってしまったのです。
 結局、その時に一番モダンであったUNIX系システム、NeXTSTEPのフレームワークとOSを、コープランドの代わりに使えないかということになり、NeXTがAppleに買収され、NeXT社長であったスティーブジョブスがAppleにCEOとして帰ってきたのです。それも、なんとCEOとしての年収が$1で…。ちなみに世界で一番安いCEOと呼ばれています。コードネーム・ラプソディという新OSの内容としては、カーネルが土台にあり、BlueBoxとYellowBoxがその上に乗っていました。BlueBoxとは、今までのMac用ソフトウェアの互換性を保つAPIを含めた部分で、YellowBoxとはNeXTSTEPのソフトウェアを動かす部分です。つまり、これからのMacのソフトウェアはNeXTSTEP用ソフトウェアであるということでした。実際、そうすれば革新的な技術がたくさん使えたのです。NeXTのエンジニアは非常に優秀でした。元々はAppleにいた人ばかりでしたが。YellowBoxのみのラプソディは、Intel版の発売も予定されました。トレーラーと呼び、ひとつのソフトウェアを複数のプラットフォームでネイティブに動かせる仕組みを作り上げるのです。OS深層域までオブジェクト指向ならではの思想でした。この頃、MacOSは9となり、新MacOSへの橋渡し的な役割を果たしました。今でもMacOSXには互換性のためにOS9が付いてきます。
 ラプソディは、MacOSXとして登場しました。YellowBoxやBlueBoxのほかに、Javaがネイティブで組み込まれました。しかし、トレーラー等の話はどっかにいってしまいましたw
 革新的で高性能なオブジェクト指向フレームワークCocoa(Cocoaのオブジェクトのアイコンが何で青いキューブなのかもう分かりますね?w)、今までのMacOSのAPIが使える高機能フレームワークCarbon、OSXではJavaアプリケーションがそのまま動きます。そして、Carbonでも対応しきれない過去のソフトウェアを動かすための仕組み、Classic(MacOS9ルート表示システム)。AppleはそれらをMacOSXに搭載し、商用OSとしてはおそらく一番モダンでエレガントなものとして再出発を果たしたのです。しかし、時既に遅し。Windowsの普及度合いは異常なものでした。

 MacOSXは、バージョンを重ねるごとに使い勝手が昔のMacに近くなっています。そして、iPodの成功や、Mac miniの発売、IntelCPUの採用など、これからも目が離せないAppleComputer。絶対にMicrosoftより面白いです。
 パソコンの世界の、ほんのきれっぱし。Appleのここ10年ちょいの話を交えて、OSXの構成を話してみました。いかがでしたでしょうか。

3件のコメント

  1. これからはx86アーキテクチャの実装で、Windows/Macintoshのハイブリッドな動作を求められるアプリケーションが増えてきそうだなぁ、と感じた夏。
    担任にそんな事を言ってみたら鼻で笑われました、ガッテムファッキン!

    両方の環境でネイティブかつハイブリッドに稼動できるMMORPGとか作ったら売れそうポワワ、とか夢見たい。

  2.  どちらのOSでも動くソフトを作るくらいなら、OSを切り替えて使うほうが懸命です。
     問題はOSXがMac以外で動くようになったとき、どれだけ普及するかに尽きます。Linuxのような普及の仕方をするかどうかは分かりませんし、もしかすると場合によっては今の二倍くらいにはユーザが増えるかもしれません。それでも市場の6%に過ぎませんけどね。

     もしゲームで普及しているのであれば、MacOSXは完全に負けです。これからの普及はまったく見込めないでしょう。
     それに、Windowsだって指をくわえてみているとは思えません。現在、Macで動くWindowsを開発する企画がMSで浮上しているようです。ロングホーンが本当に便利なOSで、それがニーズを満たしているのであれば、これまた普及は見込めないでしょう。
     でもまあ、ロングホーンはXPよりも下位互換がないと思われるので、切り替えた人にとってはMacOSXとあまり変わらないかも知れませんね。

  3. 人間は「人工知能」が好きじゃないんじゃないかと

    コンピュータが能動的に動くと言ってもそれはあくまで自分の命令に対して必要な範囲での動きでないと「こいつ勝手に何やっちゃってんのよ!」と思ってしまうのが人情というか…

    NacOSとか言語で言うとCOBOLとかDelphiとか、人口が少ない分野は覚えてしまうと一生そればっかりやらされそうな気がするのがなんともいえない…