混乱するGUI

複雑なGUIは使うのも作るのも大変です

tags:gui, column
created:2006-01-11T19:06:27

複雑なGUIは使うのも作るのも大変です 複雑なGUIを作るのは新しいコミュニケーションツールを作っているのかも?

序文

通常、アプリケーションユーザは意図を明確にアプリケーションに伝える必要があります。

ユーザーは意図をアプリケーションに詳細に伝えるか、 あいまいな意図を明確な解釈に格上げするためのアプリケーションとの対話をする必要があります。

つまり、「UI」とはユーザーとアプリケーションのコミュニケーションツールという見方ができるでしょう。

単純な例

エクスプローラ等でコピーとペーストといった操作はメニューとマウスと駆使して比較的容易に実行できます。

エクスプローラは、何をコピー、どこにペーストといった情報を得て、ファイルの複製を実行します。

トラブルがなければこれだけの操作ですべての処理が完了しユーザの意図どおりに動作してくれるのですが、重複ファイルがあったらエクスプローラはダイアログを表示しユーザと対話を行います。

この対話によりエクスプローラは詳細な対応方法の指示を得ることができます。

このような例であれば、GUIは最小限の対話でユーザーの意図を獲得することに成功しています。

複雑な例

Excelのツール/オプションをみて、自分の意図にマッチする設定項目を探す時、ヘルプやノウハウドキュメントの参照に走ったら、その時点でGUIのメリットは消滅していると思うのです。

また、びっくりするのはツール/オプション/表示の項目のいくつかは、アプリケーションに対する設定ではなくドキュメントに対する設定だったりします。

専門の項目名を用いたり、あまりにも多くの項目があったり、適用範囲がわかりにくいなどの状況はGUIデザインをもっとしっかり詰める事で減らす事はできます。

しかし、結局のところこういった項目をなくさない限りユーザーにはアプリケーションとの対話のために歩み寄ってもらわないといけないのです。

ユーザーが歩み寄ってうまくいくこともある

ユーザーに歩み寄ってもらうというのは、アプリケーションの問題点をユーザーに解決してもらうということであり、これは大抵のユーザーにはとても嫌われます。

しかし、ユーザーが歩み寄ることで、ユーザーがより明確にアプリケーションの利便性を引き出せるという事例があるのです。

PDAにおける「palm」のペン入力と「PocketPC」のペン入力を比べるとどうでしょう?

前者はいかにも機器に合わせた入力をユーザーに要求しますが判定は高速です。

後者はユーザーが書きなれている文字を入力するので慣れやすいけれど判定には時間を要します。

結果、(最近はあまり知らないのですがPDA全盛期は)palmのほうが人気がありました。

このことは「人間の慣れ」というものが意外と大きなパワーを持っていると言えます。 (逆にこういったパワーを発揮するユーザーがパワーユーザーといえるのかな?)

携帯のメール入力なんかもそうですよね。開発した人はあれだけ早い文書入力を想定していなかったと思います。

ユーザーは「あいまいさを解決してもらうのを待つ」よりは 「事細かにユーザーが指定する」方が面倒で嫌いだけど、 「待つしかない」や「意図をあきらめる」はもっと嫌だと考えているのでしょう。

筆者の変化

筆者はこれまで漠然とGUIを提供することのが ユーザーにとって最良だろうという意識を持っていました。

「Delphi」はGUIの構築がすばやく行えることが特徴でしたので、 筆者は、これまで主に「Delphi」を使ったツール構築を行うことが多かったのです。

ある程度複雑になったツール群をフォームの継承なんかを駆使してがんばってましたが、やっぱり設定項目が増えてきたりすると、作るのもドキュメント書くのも大変に。

おそらくユーザーも混乱してほとんどの機能に触れる事はなかったでしょう。

DSLという提案

DSLとはアプリケーションの問題領域に特化した言語という意味だそうです。

ユーザーにDSLを学習してもらうという歩み寄りを期待して、 その見返りにDSLを用いた柔軟なカスタマイズ性を提供するという手法があります。

ユーザーとアプリケーションがコミュニケーションする必要があるならば、 言語を用いるのが最も自然ではないかと考えことができますが、 言語処理系というものの実装は大変な労力を必要とします。

これをPerl、Python、Ruby、LuaなどのLightWeightLanguageを利用して構築するのです。

そうすると最初から厳格な書式が確定しているので、構築段階の副産物もリリース時に含むことができるほど安定したDSLが提供できます。

結論

結局、ディープなカスタマイズ機能はライトユーザには触れられないのです。 ならば、一見フレンドリーなGUIを苦労して提供する事は必要ないのでしょう。

ヘビーユーザむけにはDSLを提供することを提案します。

このあたりの配分バランスは、ユーザーの観察を通して身につけるしかないのでしょうが、 多種多様なテキストエディタのUIも参考になるかもしれません。