#081 まだまだ使えるCUI

1999/09/18

<前目次次>


 似たようなタイトルだが前回の内容とは全然関係ない。単に韻を踏んでみただけだという噂も在るが、正にその通りである。

 CUIとは、Character User Interface の略で、文字やキーボードを主体にしたユーザーインターフェイスのことである。これは、昨今主流になりつつあるGUI(Graphical User Interface)と対になる概念である。

 その昔、コンピュータは非常に高価なものであり、それゆえに、その能力はもっぱら内部での処理を高速に行うことにのみ向けられた。従って人間がコンピュータに仕事を命じるための手段、所謂ユーザーインターフェイスについては二の次三の次とされ、ともかく人間側が譲歩して、コンピュータが扱いやすい命令の与え方をする必要があった。

 具体的には、コンピュータのプログラムを動かすためには、コマンドという命令をキーボードからタイプしてコンピュータに入力する。プログラムを動かすための条件のようなものは、オプションだのパラメータだのという付加的な入力を行い、それによって条件の違う計算結果を得ることができる。そしてその出力は、画面やプリンタに文字出力される。こんな具合にやるのがCUIである。

 このためCUIベースでコンピュータを動かすためには、そのための命令群(コマンド)やその入力の仕方を習得しなければならず、また結果の解釈の仕方も学習しなければならなかったため、初心者にはなかなか敷居が高かった。これに対して、文字ではなく、誰にでも直感的に分かる画像を主体としたインターフェイスをいち早く研究しパソコンに実装したのが、Apple Computer である。

 だがGUIを実装するためには、コンピュータ内部で複雑な処理を行わなくてはならないため、当時のパソコンには荷が重く、Apple Computer が開発したGUIベースのOSを持つパソコンであるMachintoshも「爆弾」と呼ばれるシステムエラーを頻繁に起こしていた。GUIのパソコンが実用に耐えるものになるまでには暫く時間を要した。

 その後Machintoshが改良を重ね実用的なものになってきた頃、Microsoftも後を追うようにGUIを基調とするWindowsというOSを発表する。初期のWindowsもこれまた、もともとCUIを基調としてきたPC/AT互換機のパソコンに、過去の遺産を継承しつつ実装することを余儀なくされたため、安定したOSとは言えず、その状況は今日まで及んでいる。

 ここまでの話を乱暴にまとめると、CUIはコンピュータ寄りのため計算機資源をあまり使わず実装が簡単なのだが、人間にとっては分かりにくい。一方GUIは、計算機資源を多く必要とし実装が困難だが、人間にとっては分かりやすいインターフェイスであると言える。従って、実装さえしっかりしてくれれば分かりやすいGUIの方がCUIよりも優秀であり、今後計算機の能力が増して行くにつれ、CUIは廃れGUIベースのOSが主流になる、という結論が出てきそうなところであるが、実際にはそれほど単純ではない

 世のコンピュータがまだほとんどCUIだったころに開発されたUNIXというOSがあるが、このOSの設計思想の優れたところの一つは、その名前の元に見ることができるように「一つの命令は一つのことを行うべきだ」というものである。

 例えば、UNIXにはフィルタと呼ばれる範疇の多くのコマンド群がある。具体的には、同じ行の繰り返しをひとつにまとめるuniq、入力行を一定の条件に従って並べ変えるsort、特定のパターンを含む行を出力するgrepなどのコマンドがある。これらはすべて、標準入出力という概念を持ち、一方OSの方では、入出力をファイルなどに切り換えたり(リダイレクト)、前のコマンドの出力を後のコマンドの入力に引き継いだり(パイプライン)という機能を備えている。これにより、一つ一つのコマンドの機能は単純でも、それらを組合わせることによって複雑かつ柔軟な処理を一括して自動的に行うことができるのである。

 また、シェルスクリプトと呼ばれる、コマンド群を連続して処理する機能や、スクリプト言語などをうまく使うことによって、人間の命令なしに複雑な処理を裏で自動的に動かすことも容易にできる。そもそもコンピュータは複雑で面倒な単純作業を人間に替わって高速かつ正確に行うためにできたものであり、人間が画面を見ながら一々命令を送って扱っていたのでは、コンピュータの利便性の半分も享受していないのではないだろうか。

 最近のOSが便利なGUIの環境を提供すること自体は、コンピュータを親しみやすいものにしたという意味で歓迎すべきことではある。しかし一方で、より複雑で高度な処理を大量にこなす必要がある場合には、CUIの環境の方が適している。Windowsのように、GUIに阿り過ぎてCUIの環境をおろそかにするOSは結局扱いにくいものになってしまう。仕事の内容に応じて適切な環境を提供できるOSこそ、使いやすいOSと言えるのではないだろうか。


<前目次次>