IT・WEB業界で働いている方や、プログラミングを勉強中の方は、CUIというワードを聞いたことがあるかと思います。ざっくりゆうと画面いっぱいに文字が表示されているような画面のことです。
多くの開発者は、そんなCUIを使いこなして作業していますが、なぜあのような画面で作業する必要があるのでしょうか。今回は、その特徴を相反するGUIと比較しながら基本から解説していきたいと思います。
CUIとGUIの違いとは
そもそも、CUIとCUIはどちらもユーザーインターフェースの名称になります。それぞれの正式名称は、以下の通りです。
- CUI:キャラクターユーザーインターフェース
- GUI:グラフィカルユーザーインターフェース
キャラクターは、英語で文字。グラフィカルは英語で、画像や、図面などという意味です。
ユーザーインターフェースで、文字を使うのか画像を使うのかという違いです。
では、共通しているユーザーインターフェースとは何でしょうか。インターフェースは、何かと何かの間に入る部分のことです。身近な物でいえば、PCの画面をTV画面に映し出すHDMIケーブルなんかもインターフェースに含まれますね。
ユーザーインターフェースは、ケーブルのような物理的なインターフェースというよりは、視覚的なコンピューターと人間を繋ぐものとしての意味合いになります。ひとまず見た目や操作性と思っていただいても大丈夫です。IT・WEB業界ではUIと呼ばれていますね。
Webデザインに携わった方なら、UI(ユーザーインターフェース)というと聞いたことがあるかもしれません。インターネットやスマートフォンの普及によって、昔以上にUIは重要とされています。使いやすいということが第一ですが、いざ良いUIのデザインを作ろうとすれば、迷う人も多いです。良いUIとは何か?もしも...
CUI(Character-based User Interface)とは
ここまでで、ある程度想像がつく方もいらしゃると思いますが、CUIは以下の画像のような画面のUIのことですね。
このようにテキストデータのみで表現されているUIのことです。macなら、ターミナルを立ち上げると表示されるこんな画面です。一般のユーザーは、通常使う機会は少ないと思うので、最初はとっつきにくいですよね。馴染みのない人には、その使い方もまったくわからないでしょう。
GUI(Graphical User Interface)とは
一方GUIとは、下記のようなUIのことです。
このような画像やアイコンなどで表現されているUIです。誰もが見てもわかりやすいアイコンで表示されていて、どこを押したら何のアプリが立ち上がるのか、感覚的にわかりやすいですね。世の中のWEBサービスや、アプリケーションの多くは使いやすいUIを追求していて、如何に直感的に使えるかどうかが、ひとつの指標にもなっています。
決定的な違いは操作感
UIというワードが双方に入っているCUIとGUIですが、その決定的な違いは、その操作感(UI)にあります。上記の説明でもわかる通り、CUIとGUIでは、使い心地がまったく異なります。
CUIでは、キーボードを入力して何かしらのコマンドを入力して動作をコンピューターに指示するという感じです。一方、GUIでは、表示されているボタンや、アイコンをマウスでクリックするだけで、あらかじめセットされたプログラムが作動するようなイメージです。
つまり、操作するのにキーボードでの入力が必要なものがCUI、マウスだけで操作できるものがGUIということです。
なぜ開発者やエンジニアは、CUIを好んで活用するのか
では、なぜ一般的に使いにくく、見た目もわかりにくいCUIというユーザーインターフェースが存在するのか。多くの開発者は、CUIを使いこなしますし、デベロッパー用のWEBサービスなんかは、CUI仕様のものも多くあります。
その理由としては、以下のようなCUIのメリットが要因になっています。
- 処理の自動化がしやすい
- すべてテキストなので容量が軽い
- テキストデータなので、操作の記録を残しやすい
- テキストデータなのでコピペして複数人で共有しやすい
以上のような理由から、多くの開発者に好まれるわけですね。
例えば、WEBサービスの開発などを感覚的なGUIで作業していては、記録として残すことはおろか、次の機会の為にその処理を自動化することもできません。
一方CUIであれば、複雑な操作でもテキストデータで記録されているのでそのままコピペしたり、一部だけの処理を変更したりして検証しやすいわけです。
また、弊社でもそうですが、新しいテーマを開発するときや、既存のテーマのバグを修正する際など、複数の開発者で行うことがあります。基本的にGitで管理しているのですが、これもまたCUIツールです。複数の開発者で共有が必要な場合など、CUIの方が効率的で間違いが減るんですね。
これがGUIであれば「ある箇所を○○のように編集した」というような情報の共有の仕方になってしまい、共有する開発者の主観によって解釈がバラバラになり、間違いを産むことにも繋がりかねません。
すべての人がCUIだけを使うべきなのか
ここで少し極端な話をしますが、それだけ効率的なら、すべての人がCUIを使いこなすべきなのでしょうか。答えはNoです。もちろん、開発段階においてCUIのツールを活用することは、効率的で作業ミスも減るでしょう。
しかし、画像編集や、動画編集などは現実的にGUIツールでないと不可能ですし、WEBブラウジングや、スマホでアプリを使う時には、GUIの方が使いやすいですよね。
ましてや、開発サイドにおいても、まだ不慣れな状態でCUIを使い始めるよりは、GUIの操作で何が起きているのかを視覚的に捉えてから、CUIツールに移行するような使い方もできます。先ほど紹介したGitも基本的にはCUIツールですが、SourcetreeなどのGitをGUIで使うためのツールもあるぐらいです。
まとめ
ユーザー視点での使い心地を考えて、より最適なUIを目指す場合は、GUIを意識する必要があることは言うまでもありません。一方で、複数人での開発やバグの修正には、共有しやすく人的ミスも減らせるCUIツールが適しているということです。どちらが優れているということはなく、それぞれの特色を理解した上で、適したシーンで活用することが大切ですね。