アプリケーションには大きく2つのインターフェイスが使われます。
そもそもインターフェイスとは何か。GUIやCUI/CLIって何か。これらについて学習しましょう。
Interface (インターフェイス)
エンジニアになると頻繁に聞く単語です。これは、ある要素がお互いに情報をやり取りする仕組みを指します。
例として、2人の人物にAさんとBさんが居ます。この時、AさんがBさんに何か依頼したいと思ったらどうしますか?
言葉とか文章で伝えます。
そう。その言葉とか文章がインターフェイスだよ。言葉もお互いに意味を理解してるから利用できるよね。
これはコンピュータでも一緒で、予め決めたルールに従って動くんだよ。
POINTInterfaceとは両者を繋ぐ仕組みで、予め利用するためのルールが決められている。
GUI (Graphical User Interface)
これはアイコンやボタンなど、グラフィックを利用して操作するアプリケーションを指します。
おそらく日頃から使うソフトウェアは殆どがこちらに分類されるでしょう。
メリットは何と言っても理解しやすいこと。ボタンやアイコンは処理の意味を示すため、直感的に操作できます。
優れたUIを作成するのは非常に難しく、適当に作っていいものが出来ることはありません。
これは僕が最強と思ってる開発ツールのVisual Studioです。C#で開発する場合は絶対にお世話になる相棒です。
デメリットは開発工数が大幅に増すこと。メインの処理以外に画面操作のコードを書く必要があるので単純に手間が増えます。
さらに言うとアイコンやボタンなどの絵素材を使うため、プログラマ以外の協力が必要になることが多いです。
CUI (Character User Interface)
GUIの対義語として使われます。簡単に言うと黒い画面と文字だけで操作するアプリケーションです。
文字列を入力することでプログラムに処理を要求します。そして、この時の文字列をコマンドと呼びます。
プログラミングを始めてからある程度は、このCUIを利用した学習が軸になるでしょう。
Windowsの場合、Terminalかコマンドプロンプトのどちらかを経由して動かすのが一般的です。
先にデメリットを説明すると、理解しづらいことでしょう。GUIと違って直感的に判断できる部分はないです。
それでも先人の努力により「普通こういうコマンドあるよね?」とか、独創性に飛んでなければ慣れで操作できます。
メリットは、画面に関する処理を作らないため開発工数が少ないことや、自動化しやすいことです。
OSにはCUIのプログラムと対応するコマンドを任意の順番に自動実行できる機能もあります。
これを利用すると、プログラム本体に機能を追加せず、処理の自動化が可能なんです。
CLI (Command Line Interface)
CUIの別名で英語圏ではCUIより主流らしいです。たぶんこっちが正式名称だと思います。
そもそも僕は昔、CUIのCはCommandだと思ってたよ。だって、さっきも説明した通りコマンド経由で操作するのがCUIだからね。
同じような単語って存在意味あるんですかね?
ないでしょ。増やしたやつの罪は重い!
怖い...
あとがき
GUIまたはCLIがあることでコンピュータに指示ができます。そしてGUIは開発者の努力の結晶でしょう。
それでもUIに完成はありません。みんな常に今より良く、さらに良くを目標に開発されているはずです。
ちょっとUI変えただけでゴミとか、いちゃもん付けるのやめましょう。
たくさんの失敗が結果に繋がるんですね。
Yes! 変えないUIが素晴らしいとかありえない。そんなクレーマーは消去だ!
マスターの思想が危ない...
◆ コンピュータサイエンスに関する学習コンテンツ
この記事は参考になりましたか?
コメント