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

副業でエンジニアリングのメンターをやっていた@dorarepです!

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

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

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

CUIとGUIとは?

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

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

どちらも「ユーザインターフェース」という単語が含まれていますね。

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

ユーザインターフェースは、ユーザの操作をシステムに伝えたり、システムからの結果をユーザに伝えたりするものです。

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

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

CUIとGUIの違い

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

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

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

CUI

CUIは、文字で操作して、文字で結果が帰ってくるものです。

エンジニアが触ってるイメージのある、「文字が流れる黒い画面」がそうです。

GUI

GUIは、画像で操作して、画像で結果が帰ってくるものです。

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

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

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

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

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

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

どちらでも良いのなら、なぜエンジニアはCUIでの操作が多いのでしょうか?

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

GUIの作業共有

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

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

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

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

ドキュメントも、画面をキャプチャして、矢印を引っぱって、それでもよくわからないなんてことありますよね。

CUIの作業共有

CUIであれば、同じ文字を打てば、同じ操作がなされます。

なので、作業を共有するにあたり、認識の齟齬が置きづらいんですね。

失敗できないような本番環境での作業も、文字ならコピー・ペーストだけで安全に実行できますよね。

エンジニアはパソコンで作業を共有することが多いため、これは大きなメリットです。

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

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

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

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

操作の記録が残しやすい

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

たとえば会社のコンピュータで問題があったときに、「履歴をみて、どんな操作の結果トラブルが起きたのか調べたい」なんて調査も実行された文字を見ればすぐわかりますよね。

操作が早い

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

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

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

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

人により諸説あると思いますが、エンジニアとして仕事をするのであれば

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

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

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

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

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

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

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

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

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

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

とはいえ、全ての作業をCUIでやる必要はありません

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

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

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

GUIツール

よくプログラミング学習で「Gitの操作をCUIでしてみよう」なんて言われることありますよね。

ですが、たとえばGithub DesktopのようにGitをGUIで操作するツールもあります。

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

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

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

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

まとめ:CUIとGUIとは?

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

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

もちろんCUIができるのがベストですが、あくまで手段の1つです。

CUIにこだわりすぎずに、GUIと組み合わせて学習をしていきましょう!


@dorarep
小学生の頃からフリーゲーム作ってました。今はフリーランスでフルスタックエンジニアしてます。