Panther 疾る、Tiger 咆える

現在、WWDC 4 日目。ここまでで感じたことをまとめてみた。個人的に、デスクトップアプリケーション向けのセッションを中心に回っているので、その辺りが中心になっている。

Spotlight

Tiger の最も重要な機能の 1 つは Spotlight だ。Spotlight は強力な検索システム。数語のキーワードを打ち込むだけで、システムワイドから必要なファイルを検索することができる。検索の対象となるのはファイル名だけではなく、テキストの内容や、作者名、コピーライト、付加したキーワードなども含まれる。

この技術が重要なのは、Finder 中心、というか階層的ファイルシステムからスタートしていた現在のファイルオープンプロセスを、根底から変える可能性があるからだ。知っての通り、ほぼすべての OS に付属するファイル管理システムは、フォルダのメタファを使った、階層システムを提供している。これはフォルダの数が 5 個ぐらいで、ファイル数がせいぜい数十なら使いやすいけど、ファイル数が増えるとあっという間に破綻する。現在の、ファイル数が数万というシステムでは、もうどうにもならない。

そこで出てくるのが、検索システムである Spotlight だ。Spotlight 環境でファイルを開くことを考えてみよう。ユーザの前には、フォルダが並んだ階層システムの代わりに、テキストフィールドが 1 つ出てくる。そこにファイル名を入れる。目的のファイルがすぐ出てくる。ファイル名を忘れた場合は、そのファイルに含まれているテキストを入れる。すぐ出てくる。キーワードを使ってもいい。保存するときに、'WWDC' というフォルダを作る代わりに、'WWDC' というキーワードを付けて保存する。場所はどこでもかまわない。開くときは、'WWDC' というキーワードを指定すればいい。関連するドキュメントがすぐ出てくる。キーワード一覧を表示するポップアップメニューがあってもいい。

このように、検索によるファイル管理は、コンピュータの操作を劇的に変える可能性がある。Tiger のデモで示されたインタフェースは、まだ練り込みが足りないけど、これは新しい技術だ。時間をかけて、洗練させていけばいい。

Metadata

Spotlight を実現している裏には、Metadata と呼ばれている技術がある。Metadata は、Spotlight で検索されるためのファイルに関する様々なデータだ。このデータをあらかじめ登録しておくことで、Spotlight はとても速い検索を実現している。

この Metadata の登録のために、Tiger はシステムワイドのデータベースを用意した。それぞれのアプリケーションは、ファイルを作る際に Metadata をデータベースに登録する。そして、Spotlight はデータベースから Metadata を読み込んで検索をする。システムワイドのデータベースは、検索中心システムに絶対必要なものだ。Tiger でようやく搭載されることになる。

データベースからの読み出し(クエリ)は、Spotlight だけではなく、すべてのアプリケーションからも可能だ。だから、それぞれのアプリケーションで、Spotlight ライクなインタフェースを備えることもできる。

Xcode 2.0

また、このデータベースは、Metadata だけではなく、アプリケーションのドキュメントも登録することができるだろう。ファイルではなく、データベースを使うことで、とても速いドキュメントの読み込み、書き込みが可能になる。

そのために、データベースのアクセスをサポートするための機能が強化されるだろう。それは、Xcode 2.0 の、ビジュアルモデリングとビジュアルデザイン機能からうかがうことができる。Xcode 2.0 では、UML ライクなクラス階層とデータモデルのビジュアル表示、編集がサポートされることになる。Cocoa の観点から言うと、Panther ではコントローラのレイヤが強化されたが、Tiger ではモデルレイヤが強化されることになる。

Core Image

Tiger のもう 1 つの重要な変革は、さらなる GPU の利用だ。GPU とは、グラフィックボードが積んでいる CPU だ。近年、GPU の能力は目覚ましく伸びているけど、ゲームをしているとき以外は、遊んでいるのが実情だ。そこで、この GPU の能力を使って、画面描画を高速化しようというアイディアを、Apple は思いついた。

まず手始めに、Jaguar では Quartz Extreme という技術を導入した。これは、Quartz 2D、Quartz 3D、Open GL、QuickTime といった画面描画プロセスを、GPU で統合して表示する技術だ。Tiger ではそれをさらに押し進めて、Quartz 2D の処理そのものも GPU で行うことが可能になった。これが Core Image だ。

この技術の効果は明らかであり、驚異的だ。基調講演のデモであったように、多くの画像エフェクトをリアルタイムに行うことが可能になった。しかも、静止画だけではなく、動画も!これだけでも十分驚く。

さらにすごいのは、この技術は Core Image と Core Video としてまとめられ、アプリケーションにインタフェースが解放された。これは、すべてのアプリケーションが、簡単にあの画像エフェクトを利用できることを意味している。いまやアプリケーションプログラマは、すさまじく強力な画像処理技術を手に入れた。これにより、いままでに考えられない、リッチなユーザインタフェースを構築できる。

Dashboard

この画像処理を使ったアプリケーションが、Dashboard だ。基調講演のデモから分かるように、Dashboard を画面上に配置すると、波が起こる。また、時計 Widget は背面に環境設定パネルを持っており、表示させるときには時計が垂直方向に反転するエフェクトが起こる。

このように、いままでは重すぎて使えなかった、ダイナミックな画像処理を使って、ユーザアクションに対するエフェクトを表示することができる。いままでになかった新たな使いやすさが産まれてくる可能性がある。ま、さざ波エフェクトはやりすぎかもしれないけど。

ちなみに、Dashboard と Konfabulator の類似性が話題を呼んでいる。技術的な背景としては、Dashboard は Web Kit のアプリケーションの一例としてとらえることができて、JavaScript と Objective-C ブリッジを搭載したり、独自のなかなか面白いものがある。ただし、HTML + JavaScript で Widget を作るというアイディアや、そのルックアンドフィールはどこからみても Konfabulator そのもので、個人手には Apple は道義的に非常に汚いと言えると思う。

データフロー処理と Automator

少しトピックは変わるが、基調講演の Core Image のデモでは、画像エフェクトを次々とつなげていくユーザインタフェースが登場した。データフローと呼ばれるものである。あのインタフェースは、半分は技術的な必然性から産まれたものだと思う。Core Image を経由する GPU は、データフローをもとにして画像処理を行うからだ。それとは別に、データフローの考え方は、画像処理の方法論に非常にマッチしている。

データフローという処理は、これからのトピックの 1 つになると思う。複雑な処理の自動化を考えるときに、この概念が非常に重要になるからだ。この手法を採用した別のアプリケーションに、Automator がある。複数のアプリケーションを Apple Script を使って、連結させて処理するものだ。データフローの実現と、そのためのユーザインタフェースは、これからのアプリケーションを考える上で、なかなか面白いトピックだ。

ちなみに、Automator のアイコンであるロボットがパイプを持っているのは、連結処理を意味するパイプラインを意味しているのだろう。

Panther の後継者である Tiger は咆える

こうして見ると、Tiger は Panther を継承しながら、実に野心的であると思う。小手先ではなく、ドラスティックな変革がいくつかあるからだ。基調講演では、まだアプリケーションがこの変革に追いついていないから、あまり大したものに見えないかもしれない。だが、その中身は実に刺激的だ。来年の登場までに、アプリケーションベンダは、実に多くのことができる。純粋に嬉しい。

Panther は疾走し、Tiger は咆哮する。Mac OS X が牙を剥く。


[Home] [Download] [Archives] [BBS] [Cocoa Programming Tips 1001] [Core Foundation の秘密] [Safari Developer Center] [はじめてのブラウザのつくり方] [Sketch BP] [スクリーンセイバーを作ろう] [Objective-C 最適化] [Authorization API 完全理解] [Mac OS X Programming Books Review] [オブジェクト指向の言語比較論] [panther-dev]

mailto: mkino@xd5.so-net.ne.jp