技術

CUIとGUIとは?噛み砕いて解説します!【初心者向け】

副業でエンジニアリングのメンターをやっていたドラレプです!

プログラミングを学習で、「まずCUIを勉強しよう」と言われたことありませんか?

でも「CUIじゃないとダメなの?」ってところがなかなか説明されないですよね。

そこでGUIとCUIの違いから、CUIを使う理由や使うべき場所について説明していきたいと思います!

CUIとGUIとは?

まずはCUIとGUIとはなにかについて、説明していきますね。

それぞれの言葉の読みは、次のとおりです。

CUIキャラクター ユーザインターフェース
GUIグラフィカル ユーザインターフェース

どちらにもユーザインターフェースという言葉が含まれていますよね。

ユーザインターフェースって?

ユーザインターフェースとは、ユーザとシステムの間に入るものです。

下の絵のように、ユーザの操作をシステムに伝えたり、システムからの結果をユーザに伝えたりします。

たとえば、次のようなものがユーザインターフェースです。

  • コンピュータを操作できるマウスやキーボード
  • 操作の結果を表示するディスプレイ

 

CUIとGUIの違い

CUIもGUIもどちらもユーザインターフェースです。

その違いは、なにで操作して、その結果がなにでかえってくるかです。

CUI文字(キャラクター)で操作して、文字で結果が見える
GUI画像(グラフィック)で操作して、画像で結果が見える

こちらの画像を見てみると、イメージが湧くんじゃないでしょうか。

CUI文字(キャラクター)で操作して、文字で結果が見える

GUI画像(グラフィック)で操作して、画像で結果が見える

スマホやWindows、Macなど、みなさんがふだん触るような画面は、基本GUIです。

 

何で操作するかの違いでしかない

CUIもGUIも、どちらも同じシステムをなにで操作するかの違いです。

マリオカートを普通のコントローラで操作するか、車のハンドル型コントローラーで操作するかの違いみたいなものです。

つまり、どちらじゃないとダメとか、どちらが優れているというわけではありません。

プログラミング学習中に

「CUIを使ってディレクトリを作ってみよう」

「CUIを使ってGit操作をしてみよう」

といったことがあったとしても、別に同じことをGUIでやったって良いのです。

基本的には、目的や内容にあわせてやりやすい方法で大丈夫です。

エンジニアがCUIで操作することが多い理由

世間のイメージで「エンジニアは文字だけの画面を弄っている」というのがあると思います。

なぜエンジニアはCUIでの操作が多いのでしょうか?

同じ手順を共有・再現しやすい

GUIの作業は、どうしても共有しづらいです。

「いちばん上のメニューにある新規保存ボタンを押して」

「いちばん上ってどれ!?」

「出てきた画面のYesを押して」

「Yesなんて見当たらないよ?」

なんてことになってしまいがちです。

GUIでの作業共有

しかしCUIであれば、同じ文字を打てば、同じ操作ができます。

なのでなにも考えずに同じ文字を打つだけで、同じ手順が再現できるんです。

CUIでの作業共有

特にコピー&ペーストできるので、GUIに比べて操作ミスしづらいというのもあります。

他にも文字だけなので、プログラムを組んで作業の自動化しやすいというのも、メリットですね。

GUIで操作できないコンピュータもある

全てのコンピュータをGUIで操作できるわけではなく、CUIでしか操作できないものもあります。

たとえば「Webサーバ」などは、GUIで操作するための仕組みが入ってないことがほとんどです。

そういったコンピュータを操作するためには、CUIで操作しなければなりません。

操作の記録が残しやすい

CUIは文字だけなので、操作記録を残しやすいです。

たとえば会社のコンピュータで問題があったときに、「履歴をみて、どんな操作の結果トラブルが起きたのか」なんて調査も。

操作が早い

タイピング力次第ですが、GUIよりCUIのほうが早く操作できることが多いです。

コンピュータでの作業量の多いエンジニアにとって、1個1個の操作にかかる時間はとても大事です。

そのため「キーボードから手を離したくないから、全ての操作をCUIで行う」なんて人もいます。

CUIはどれだけ使えれば良いの?

人により諸説あると思いますが、プログラミングをしたいのであれば

  • 「何をやってるか分かる」「必要なときに使える」ぐらいには最低限なっておくべき
  • 全ての作業をCUIでやる必要はない

というのが私の意見です。

何をやってるか分かる、必要なときに使える

技術の世界では、作業手順はCUIによる操作方法で伝えられることがほとんどです。

またCUIでしか操作を受けつけないコンピュータやシステムもあります。

そのため、CUIが使えないと、どこかで限界はきてしまいます。

そういったときにただ手順をコピーして、「良く分からないけど動いた」もできるかもしれません。

ですが、それだと何か問題があったときに対処できなくなってしまいます。

ですのでCUIによる操作は最低限できるようになり、かつ何をやってるか分かるようにはなっておいた方が良いでしょう。

全ての作業をCUIでやる必要はない

とはいえ、全ての作業をCUIでやる必要はないでしょう。

中には、なんでもかんでもCUIによる操作を勧めるエンジニアもいます。

しかし人によりタイピングの速さも違いますし、向き不向きがあります。

もしあなたがGUIによる操作のほうが生産性があがるのであれば、GUIを使ってOKです。

たとえばプログラミングの補助ツールである統合開発環境(IDE)、Git操作をGUIで行うツール、データベースをGUIで操作するツールなど様々あります。

ですので「Gitコマンドが良く分からない!」なんて人はGithub Desktopなどのツールを使っちゃって大丈夫です。

特に、最初こそいきなりCUIで操作するのではなく、GUIがおすすめです。

教科書も、文字だけより絵が入ってたほうがわかりやすいですよね。

Gitなども「GUIで操作してるうちに何してるか分かるようになった」なんてことも良くあります。

ですので、将来的にCUIで操作できるようになりたい場合でも、GUIから入ったほうが近道な場合もありますよ。

まとめ:CUIとGUIとは?

GUIとCUIの違いから、CUIが使われる理由、CUIをどれだけ使えば良いのかについて説明しました。

学習始めたばかりだと、CUIによる操作ばかりで混乱してしまうことも良くありますよね。

もちろんCUIができるに越したことはないですが、それでもあくまで手段の1つでしかありません。

CUIにこだわりすぎずに、GUIと適材適所で組み合わせていきましょう!