何かアプリを作る際に、CUI が良いか、GUIが良いか、と考えることがよくある。
GUI があるのが後発だが、今でも CUI のアプリは作られているし、一長一短あるみたい。
個人的に思う CUI の長所短所を考えてみる。
CUI のよいところ
開発が楽
開発者目線になってしまうけど、これは本当に本当で、GUIアプリを作ろうとすると、アプリの本質とは全く関係のない部分(GUIのレイアウトとか、設計)で
- 他のアプリと組み合わせやすい(stdin, stdout, stderr という統一された口がある!)
CUI の悪いところ
- 複数の情報を同時に見ることが難しい
- 連続的な情報を見るのが難しい(物が動いていく過程など)
CUI の工夫
上に書いた悪いところを補うような工夫もけっこうある
通常、CUIの出力は下に追加していく形だが、 \r
などを使うと今の行に上書きといったことができるので 画面が更新されているように見せる ことも可能。
よくあるのが、プログレスバー
もっと無茶すると、ncurses とか TUI のようになる ターミナル上で動いているけど、ここまで来るともはや GUI