対話的システムとOverwrapped windowベースのUI

考えをまとめようとしているうちにものすごくたくさんのコメントが付いてしまいましたが、おおしまさんのアラン・ケイのUIに対するコメント(id:squeaker:20050521#p2)について考えてみました。


前提として、オーバーラッピングウィンドウ(あれ? Overwrapped(過去分詞) windowじゃないの?)の対義語はTiled windowと、Non-window based UIのどちらかによって、お話は変わってきます。

  • (a)最良をTiled windowとして考える

まず、対義語をTiled windowと捉えた場合を考えます。この場合は「Tiled windowに比べて、オーバーラッピングウィンドウは良くないUIである」となります。
ここでのTiled windowというのは、Emacsのwindowと同義として捉えています。この時、少なくともウィンドウの矩形でクリップされてはいますが、他のウィンドウによって虫食い状態になっているよりはずっと一覧性は高いものとして捉えることが出来ます。
ある意味では、この発想はかなり同意できます。既に開かれてあるウィンドウの間を移動するためにはユーザーの入力は必要なく、出力機器(ディスプレイ)上を見ている注視点の移動のみで済みますから、2つ以上のドキュメントが出力機器に同時に表示されていることに対してかなり積極的な意味を持たせることが出来ます。
とはいえ、出力機器の大きさのはある程度の物理的制限があり、物理的制限の中でドキュメント数を増やそうとすると今度は視認性が悪くなり(小さいものは見づらいという単純な理由)、大きさ周りの物理的制限がないものとして考えたときには、今度は人間の側の問題(遠く離れた二つ以上のものを視線を動かして見る際の肉体的なストレス)が発生し、と、同時に参照可能なドキュメントにはある程度の制限が発生します。
あ、いや、すっごく巨大な出力機器に、それぞれが被らない形で適度な大きさのウィンドウを用意するのであれば、Tiled windowよりもオーバーラッピングウィンドウ(被らないんだから、Overwrapも何もないんだけど(^^;))の方が便利であるケースもあるんでしょうけど。

  • (b)最良をNon-window based UIとして考える

次に、対義語をNon-window based UIとして捉えた場合。この場合は「Non-window based UIにくらべて、オーバーラッピングウィンドウは良くないUIである」となります。
この場合、オーバーラッピングウィンドウをして、ウィンドウ自体は「処理のコンテキスト(文脈)」を保持するためのものであるという抽象化を行っているようですが、ウィンドウを独立した処理として捉えなければならないのか、という疑問がまず一つあります。
確かに、いくつもの処理を同時並行で行う場合、オーバーラッピングウィンドウは所詮視覚的に現在カレントではない処理を視覚的に表現する以上のものではないのはおおしまさんの書いているとおりなのですが、ここで、「一覧性の高い状態で」という前提を持つ限りはNon-window based UIの方がオーバーラッピングウィンドウよりも良いとは言い難いです。なにせ、ドキュメント間の移動を行う際にはユーザーからは何らかの入力が必要であり、双方を見比べたりする際には無駄な操作が増える形になるからです。


以上をふまえた上で順位をつけると以下となります。どの項目が「どの程度」の優位性を持ち、また、順位の客観的な評価値を示せないのは、勢いで書いてるだけなのでご勘弁を。

  • 1つのドキュメントに対する視認性
    • Non-window > Tiled > Overwrapped
  • 2つ以上のドキュメントに対する視認性
    • Tiled > Overwrapped > Non-window
  • 2つ以上のドキュメント見る際にかかる人間側のコストの低さ
    • Tiled > Overwrapped > Non-window
  • 同一画面内に同時に存在可能なドキュメント数
    • Overwrapped > Tiled > Non-window

オーバーラッピングウィンドウが全てのUIに勝る最良だとは言い難いのは確かなのですが、オーバーラッピングウィンドウのシステムに対して、多少の細工をしてやることによってTiled windowとして振る舞うことも可能であるという前提があるのであれば、現実的な解としては、オーバーラッピングウィンドウ自体はかなり「あり」だと思えるのですが、アランさんはその辺、どう見ているのでしょうね?


ちなみに、翻って自分を見たとき、以下のような使い方をしています。

  • 画面が広い(17inch)デスクトップマシン
    • ほぼTiled windowで、同時に使用する各アプリケーションが重ならない形で配置。同時に使用されることがほぼないもの(Emacs系のエディタとMUAなど)は、配置が意図的に被るように。
    • Webブラウザの新規リンクは概ねFirefoxのタブの形で開く。タブは「履歴」としてリンク元を残すために使用。
  • 画面が狭い(10.5inch)ノートマシン
    • Non-window based UIとして使う。複数のドキュメントにまたがった処理は極力行わない。
    • Webブラウザの新規リンクはデスクトップマシンと同様。

多分、画面がもっと広い(20inch以上)であれば、完全にTiled windowで作業しちゃうんだろうな。で、それをもっとも「効率よい」と思ってしまうのだろうな、とは思います。ま、これが今回の私見の論拠にもなってるんですけど。
ちなみに、以前、Drag&Dropインターフェースを使用しない限りはUIのコンテキストスイッチにマウスカーソルを使っていました(いわゆるX mouse)が、自分が常用するアプリでDrag&Dropを要求することが多くなった昨今ではコンテキストスイッチにキーボードショートカットを使用するようになりました。
X mouseによるコンテキストスイッチは、ほぼマウスを動かす指先の感触だけで(つまり、画面から受ける情報はないまま)操作をすることが出来ましたが、キーボードショートカット(Windows標準のAlt+Tab)は、画面を見て操作をする必要があります。フィードバック前提のインターフェースはあまり効率的ではないのですが、確実にWindowを呼び出す方法論が(少なくともディフォルトでは)用意されていないため、仕方なく使っています。
……って考えると、オーバーラッピングウィンドウよりも、今再考すべきはDrag & Dropインターフェースと「デスクトップ」というメタファーなのかなぁ? それとも、出力機器の面積を効率よく使おうという貧乏根性なのかなぁ(^^;)?