自動処理のインターフェース

ソフトウェア(エディタ,ブラウザ,etc)を利用していると様々な処理を自動的に実行してくれますが,このインターフェース?はなかなか難しいとよく感じます.

例えば,私が普段 IDE をあまり使用しない理由の一つに「自動補完がウザい」と言うものがあります.その一方で,シェルのタブ補完は好んで使用します.両者のどこに違いがあるのかと言うと,「補完する(補完リストを出現させる)かどうかの決定権が自分(ユーザ)にあるか」と言う部分です.何らかの文字列を打ちこんだ際には,後続の文字列を補完して欲しい場合と必要ない場合があるのですが,前者の場合はこちらの意志に関係なく常に補完機能が働いてします.

別の例として,AutoPagerize 機能を挙げてみます.AutoPagerize 機能では,例えば(これを AutoPagerize とは呼ばないかもしれませんが)Twitter. It's what's happening. の「もっと読む」と言う機能は,割と私は好感を持っています.しかし,ページの下端に達した瞬間に自動的に次のページを表示するような拡張機能はストレスを感じる事が多いので導入していません.これも「次のページを読むかどうかの決定権が自分にあるか」と言う所に起因します.

私が上記のような評価になるのは,「余計な事をするおせっかいなソフトウェアは,何もしてくれない気の利かないソフトウェアよりもはるかに劣る」と言う信条が非常に強いためです.この信条は,程度の差はあれ,多くの人が感じているように思います.例えば,おせっかいなソフトウェアの代表格である Microsoft Office 製品では「この機能は邪魔だ(だからオフにしよう)」と言う記事をしばしば見かけます.

ただ,問題はこの「程度の差」が非常に大きいと言う事です.例えば,先に挙げた単語の自動補完機能や AutoPegerize 機能は,一般的には割と好意的に受け入れられています.これは,多くの人は「邪魔ではなく便利なもの」であると感じているためだろうと思います.この程度の差が大きいため,ある(自動的な処理を行う)機能が「便利」なのか「邪魔」なのかを判断するのは非常に難しいと感じます.

一つの解決策として,カスタマイズ性を高めると言うものがあります.ただ,この方法にしても「デフォルトの設定」をどうするかと言う問題が付きまといます.全ての機能をオフにすると「気の利かなさすぎるソフトウェア」になってしまうが,それでは一体どの機能をデフォルトで有効にするのか・・・と.

自動ポップアップ系の機能に関しては,「ポップアップさせるかどうかのトリガー」が欲しいとよく感じるのですが,シェルのようにあるキーの本来の機能(タブを挿入する)を削って別の機能を割り当てるのは難しい場合も多いので,なかなか難しいところです.