試論:私論:不便益(その3)

2012-07-12 07:29

というわけで、本日は「不便益」の3回目。まだ読んでいない人は1回目2回目から読んでね。

-----
テキストエディタ:vi

私が初めてviに触ったのは、1984年である。その年Macintoshが発表され、それに触れた私はその操作が容易な事に驚愕した。それからしばらくして卒論用のプログラムを書くとき「このエディタを使え」ということでviを紹介された。
当時はユーザビリティなる言葉を聞いたこともなかったし、コンピュータといえば使いづらいのが当たり前だった。だからviに触れてもそれほど驚きはしなかったが「なんだか変だな」という感じは当時から持っていた。その数年後に「モード指向が強い」ことがその原因であるといことを学んだ。どういうことか?
viを使って文章を書こうとする。この際「J」キーを押した時何が起こるだろうか?viが「入力モード」であれば、"j"が画面上に表示される。しかし「コマンドモード」であれば、カーソルが一つ下に移動するはずだ。ここで自分が何モードにいるか常に意識しなければならない。さもないと、自分が入力したはずの文字列が突如としてコマンドとして実行される。
この不愉快な経験を避けようと思えば、(多くの人と同様に)Escapeキーを乱打する習慣がつくことになる。(Escapeキーを押せば、コマンドモードになるからだ)その頃Life is UNIXという本に出会った。そこに載っていた言葉
「viはクソだ」
には深く頷いたものである。より上品な言説としては、ユーザビリティの大家(とみなされることが多い)ドナルド・A・ノーマンによる以下の言葉をあげることができる。彼は操作ミスの大きな部分を占めている「モードによるエラー」をなくすためには、ユーザインタフェースが以下の様な特徴を持つべきだと主張したのである。


1. モードを持たないこと。
2. モードの違いを区別できるように明示しておくこと。
3. モード毎にコマンドが重ならないようにしておくことによって、誤ったモードで発行されたコマンドが障害を引き起こさないように保証すること。
Donald A. Norman "Design Rules Based on Analyses of Human Error", 1983


しかし私がviに関する違和感について論理的な説明を得ようと得まいとviとの付き合いは続いた。どんなUNIXでも使えるのは、不愉快なほど多くの場合viだけなのだ。しかし、私はなんとかしてそういう状況に抗おうとしてきた。当時大学で私はUNIX上でプログラムを書く必要に直面していた。プログラムをどうやって書こう?viを使うのはいやだったのでNeXTを使った。理由はただひとつ。その頃一番馴染んでいたMacintoshと類似の方法で文章を編集できるからだ。(コンパイルと実行は他のマシンにログインして行なっていた)そうだよ。マウスで範囲選んで、コマンド+Cでコピーだよ。

それから月日は流れ幾星霜。私は会社に戻り、UNIX(およびその派生型)の上でプログラムを書く仕事に従事することになった。でも誰がviなんか使うか。世の中にはemacsなるよりすばらしいエディタがあるのだ。"j"を入力しようと思えば、"j"キーを押す。カーソルを下に移動させようと思えば、Ctrlキーと"n"キーを同時に押す。"Next"の省略形と思えば覚えるのも簡単。単語を入力しようと思ったら、カーソルがでたらめに動きまわるなんてことはない。

そうだよ、モードがきついエディタなんか人間が使うべきじゃないんだよ。そうつぶやきながら、ごきげんに過ごす日々は長くはつづかなかった。ある日同じマシン上で開発をしている人間から文句が来る。お前のemacsがメモリを食っているお陰であれこれ迷惑している、と。なるほど、分かった。僕一人が犠牲になればいいんだ。emacsを使うなんてはかない贅沢な夢だったんだね。(その会社でマシンのメモリを増設しようと思えば、気も遠くなるほどの手続きを必要としたのだ)そうして私は再びviと付き合うことになったのである。かすれた記憶を呼び戻し、キーバイドを思い出すと、またもや「入力文字列がコマンドになる」日々がやって来る。

その後しばらくの間UNIX上でプログラムを書く仕事からは遠ざかっていたのだが、IT関連の話題を眺めているうち「vim」なる言葉を目にした。一時期「モテる女子力を磨くための4つの心得」なる文章が話題になった。元の文章はどちらかといえば批判されることが多かったのだが、そのパロディが大量に作成されたのである。そのうちの一つに「モテるvim女子力を磨くための4つの心得」というものがあった。これはなんだ?調べてみれば、vim というのは強化されたviらしいではないか。なんと、またviだ。あんなにモード指向が強いのになぜ、、と思うが、その理由についてWikipediaから引用しよう。

--(引用ここから)--
Windows系エディタ(メモ帳など)などの他のエディタとは操作方法がまるで異なるため、一通りのテキスト編集作業ができるようになるまで慣れが必要となる。 しかしながら、一旦慣れてしまえばメモ帳などとは比較にならないほどのテキスト編集速度を得ることができるため、数多くのVim愛好家が存在する。
--(引用ここまで:http://ja.wikipedia.org/wiki/Vim)--

自分でもしばらくvim(相当の)エディタを使ってみた。モード指向がきついところはviそのままである。もちろん拡張された機能も多いのだろうが、それは「拡張」であってviのモード指向を矯正しようとしたものではない。つまりvimは初心者にとって依然として
「敷居の高い、ユーザビリティ上問題があるエディタ」
なのである。なのに死滅するどころか、より普及している。この厳然たる事実から何を学べばいいのだろうか。


反(狭い範囲での)ユーザビリティとしての不便益

ここまで「初心者にとってやさしくない」道具を3点見てきた。それらの進化の過程を見ると、ある共通した特徴があることにきがつく。
それらの初期型が持っていた「不便」のうち「解消されたもの」と「解消されなかったもの」がある。さらには、それぞれは

-それを解消することによる副作用はほとんどない不便
-それを解消する副作用は、本質的なメリットを損なう不便

に対応していることに気がつく。前者を解消することに問題はあまりないし(あるいは「壊れやすいこと」をありがたがる人たちもいるのかもしれないが、ここでは考慮しない)解消すべきだ。後者に関してはより慎重な検討が必要である。
後者の「不便さ」はある程度学習をした後に得られる「自由さ」「操作の細かさ。またそれに起因する表現の豊かさ」「操作の効率性(あるいは速度)」と表裏一体となっているとは言えまいか。
より身近な例としては、PC上で動くアプリケーションのメニューを、マウスを用いて画面から選択する場合と、キーボードショートカットを覚え、それをキーボードから打ち込む例を考えてもらえばよいかもしれな。キーボードショートカットを覚えるのは確かに面倒だ。しかしそれを覚えることにより、マウスを用いるより効率的に操作をすることができるのである。つまり学習のコストは高くなるが、操作時のコストを下げることができる。
こう考えてくると、
「それでは、ユーザの習熟度に応じてインタフェースを変更するようにすればよいのではないか」という考えが浮かぶかもしれない。しかしこの方向に進むには注意が必要である。少し前のマイクロソフトオフィスを使ったことがある人は、「よく使うメニュー項目だけを表示するモード」と「全てのメニュー項目を表示するモード」を切り替えることができたことを覚えているかもしれない。初心者にはよく使うメニューだけを表示し、慣れてきた人には全てのメニューを使えるようにする。実に合理的なideaだ。しかしいくつかの研究と現実が教えるところによれば、この試みは「簡単には」成功しない。逆に失敗例はいくつも転がっている。MicrosoftのBob,AppleのAt ease.
初心者への敷居の低さと、熟練者への効率性、自由度を両立させたユーザインタフェースがあればなあ、、と思うがそこへの道のりは遠い。私に言えることは

「それを夢見た人は多いが、到達した人はいない。せめて墓標のある場所に注意しなさい」

である。