コマンドラインはもういらない? 234
/.Jの記事では手作業でタグを打ち込んでいますが 部門より
本家/.で、「Has the Command Line Outstayed Its Welcome?」(コマンドラインはもう歓迎されていないのに存在している?)という記事が話題になっている。元ネタはLinux InsiderがCLIの存在意義についてまとめた記事だ(本家/.、Linux Insider記事)。
記事の冒頭では、CLIが存在し続ける理由が挙げられている。GUIは見た目には良いが、その能力はCLIの持つ能力のほんの一部にしか相当せず、CLIは効率的で「より速く、多芸である」としている。そのため「複雑なタスク処理においてCLIに勝るものはなく、とうてい消滅などしない」とのこと。また、GUIの登場でCLIが時代遅れというのはまるで、EmacまたはVIMの登場でワープロが時代遅れになったというのと同じであり、GUIとCLIには「各々に違った仕事がある」としている。
いっぽう、これに反対する意見も紹介されている。弁護士であり、ブロガーでもあるRoberto Lim氏はCLIについて、「選択肢の1つとして残しておくか、全部取り去ってしまっていい」と述べている。氏は「コマンドラインを使うと、自分が凄いことをやってのけているという気がする。だがたいていは、よく意味も分からずに手引きからコマンドをコピーして打ち込んでいるだけ」とし、「この時代に、エンターキーを押すだけでいいところを<P>と打ち込みたいなんて誰が本気で思うかい?CLIは扱いづらい古遺物かって? ほとんどの人がまだ存在していることを知らないよ」と述べている。また、「CLIは消費者をターゲットとした技術には一切使うべきではない」、「問題が起きたときに、IT系の人や技術サポートが使うものとしてのみ存在していればいい」とも主張している。
ほとんどの人が (スコア:5, すばらしい洞察)
>ほとんどの人がまだ存在していることを知らない
なら残してあっても問題ないよねぇ。気づかないくらいなんだし。
270MBのHDDとかにWindows入れてたような世代と違って
ディスクスペースがカツカツって訳でもないしなぁ・・・
他人に操作を指示するとき (スコア:5, すばらしい洞察)
たいていは、よく意味も分からずに手引きからコマンドをコピーして打ち込んでいるだけ
というのはむしろメリットですよね。
GUIとちがって、メールで送ったコマンドをコピペして実行させるだけで良い。
もうちょっと複雑なことだって、バッチやスクリプトを組んで渡せばだれにでも簡単に実行させることが出来る。
#その簡便さ故に危ないという面もありますが。
Re:他人に操作を指示するとき (スコア:4, すばらしい洞察)
CUI の操作が分からない時、こういうコマンドを実行したらこうなった、的な質問をメールや掲示板に書くのは、GUI について質問するのとは比べ物にならないほど楽だし、回答する場合でも同じ。
雑誌、書籍についても同じようなことが言えます。普通、紙面の制限があるから、書ける内容の量は比べ物になりません。
# CUI にもメリットはあるという話で GUI との優劣を主張する話ではありません
Re:他人に操作を指示するとき (スコア:4, すばらしい洞察)
私も遠方のエンドユーザーにコマンドを打ち込んで貰う事がたまに有ります。
・フィル名を指定して実行でcmdと入力して[Enter]
・ipconfigと入力して[Enter]
GUIでもIPアドレスは調べられるけど、結局こっちの方が手っ取り早い。
#コンピュータを右クリックしてプロパティにIPアドレスが表示されても良さそうなもんだけど。
Re:他人に操作を指示するとき (スコア:1)
GUIは何かしらのステップを踏んで操作をする訳で、
初心者でも、視覚的に『何かを選択してる』『(何処かから勝手にやって来たわけではなく)選択したファイルを開いている』
ってことに気付くことが出来る人は気付ける。
でもCUIはそうとも限らないよねぇ
とかね。
キーボードに効率でまさる入力手段がないからなあ (スコア:4, 参考になる)
熟練すればキーボードはしゃべる速度と同意度または以上で入力ができる。
コンピュータは人間の脳機能を拡張する道具ということであれば、可能な限り効率がいい
命令伝達方法を使わないと意味がないわけで、いまのところキーボードに勝るインタフェース
がないだけに、CLIは必要でしょう。
マウスを考える速度で操れる人もいるのかもしれないけど。
手と脳とは直結している感覚が得られやすいということもある。
GUIはそういう意味で脳との垣根は高いと思うけどな。
とはいえ、
>「CLIは消費者をターゲットとした技術には一切使うべきではない」、
>「問題が起きたときに、IT系の人や技術サポートが使うものとしてのみ存在していればいい」
そういうことはあるかもしれませんね。
Re:キーボードに効率でまさる入力手段がないからなあ (スコア:1, 興味深い)
> 「CLIは消費者をターゲットとした技術には一切使うべきではない」
Windows Vistaだったかで、ExplorerからWebDAVを使いたい時、GUIのウィザードだと何かのバグがあって、
結局コマンドプロンプトから有効にしてください、みたいな事があったよね。
そういう問題を潰してくれないと、
>全部取り去ってしまって
しまうのは困るなぁ。
Re:キーボードに効率でまさる入力手段がないからなあ (スコア:2)
>電気もつけずに台所まで
そして、同居人の設置したトラップに小指をぶつけると…
#丁度良いタイミングでダイアログが現れてクリックしてしまう事は良くある
隠しコマンド的な何かの為にCLIが必要な現状 (スコア:3)
CLIでしか設定できない隠しコマンド的な何かが存在する限り、
CLIを消し去ることはできないのではないでしょうか?
GUIの設定ツールが全ての設定項目を実装していない現状が
CLI廃止の大きな壁になっているような気が。
ただ、Tabキーを併用しながらコマンドを打つ時の入力は、
マウスとキーボードを持ち替えながら操作することより遥かに効率的なわけで、
分かりにくいコマンドや、機能が重複しているコマンドを整理してほしいなと思います。
プログラマが楽をするために残り続ける (スコア:2)
CLIでやろうとすることは全てGUIで実装できるだろうけど、
GUIを考えるのは面倒くさいし、作る時間もかかるし、バグも入りやすいからCLIは残り続けるね。
要らないなー (スコア:2)
コマンドラインといっても、用途はいろいろなんだろうと思いますが、自前でサーバを設置して、定期的にパッチ当てて、みたいな作業でコマンドライン使うことは無くなるはずです。これは、もともと大変な仕事ではあったと思うのですが、クラウドサービスのおかげでそういった仕事がいらなくなりました。Google App Engine は本当に素晴らしい!
Re:要らないなー (スコア:5, おもしろおかしい)
ファーストサーバがこっちを見ている!
Re:要らないなー (スコア:1)
そうi-Cloudならね!…え?
何を言っている (スコア:2)
コマンドラインなんて、最初から歓迎されていないのだよ。
みんな仕方がないから使っていて、繰り返し使っているうちに覚えてしまって、一番使いやすいものになってしまっただけのこと。
そりゃぁ、コマンドライン使うだけで「ハッカー」っぽい雰囲気にはなる (らしい) から、それに憧れるのも別にいいけど。
前に、専門学校で講師をやっていたとき、DOS 画面を操作していただけなのに、「スゲー、ハッカーみてぇだ」って言われたのを思い出したよ。
ところで、最近は GUI だけで GUI を作ることができたり、正規表現を GUI で指定するのがマゾヒストでなくても可能だったりするのかな。
それが出来るなら、ちっとは考えるよ。
--
コピペも悪くないと思うよ。
最初は誰もがサンプルコードを欲しがるものだから。
いかに自動でやらせるか?という遊び (スコア:2)
たとえばLFSをインストールする人にもいろんなタイプがいて
A:順番に一行一行、手動でコピペしてくタイプ。
B:スクリプトにまとめて、今回以降は自動で構築できるようにするタイプ。
C:「LFSのページを自動的に巡回して、その内容を自動的に解析してスクリプト化して、それを使って自動的に構築までしてしまうツール」を1から作ってしまうタイプ。
Aの人は、毎回毎回、手動で付きっきりになるから大変。
Bの人は、最初の一回目は大変だけど、それ以降は(今のバージョンのみに関しては)自動化できるので楽。
Cの人は、最初の一回目は超大変だけど、それ以降は(未来のバージョンに関してまでも)本当に全てを自動可できるので超楽。
遊びとして見た場合:
AよりもBの方が楽しいし、BよりもCの方が格段に楽しい。
現状のGUIだとどうしてもA寄りの方法だけになりがちなので、遊びとしてはあまり楽しくない。CUIは楽しい。CUIというかスクリプトが楽しい。
GUIでもスクリプトを簡単に書けるような仕組みが一般化したらGUIも楽しいだろうとは思う。要はスクリプトを使い易いかどうか。これ次第。で、現状はCUIの方がスクリプトを使い易いから、その手の遊びとして見た場合はCUIの方が現状では楽しい。でも将来はGUIでもアプリ間でも連携して使える汎用的なスクリプトが何か出てくるかもしれないけど。(ウインドウズにはあるらしい?けど、ウインドウズ持ってないので知らない。)
ブログ記事から直接コマンドをコピペ (スコア:2)
ネットで検索して1行スクリプトを拾ってくるときとか、便利さを実感するときですよね。
全部がGUIになったら、メニュー→プロパティ→表示された画面の左下のボタン→・・・
みたいなのをいちいち読んでやるわけですか。めんどくさすぎるわ!
Re:ブログ記事から直接コマンドをコピペ (スコア:3, 参考になる)
とりあえずクリック箇所とかを記録するだけならPSR.exe(Windows7標準機能) [microsoft.com]便利ですよね。
# マニュアル素材として使うなら、IEで開いた後名前を付けて保存でWebページ、完全選べばひとまずスクリーンキャプチャの撮影は完了する。
むしろGUIがいらない (スコア:2)
そう思ってるユーザーも相当数いるはず。
マクロとか作れればGUIでもOK (スコア:2)
CUIのメリット (スコア:1)
・起動が速い
・処理が速い
・開発が簡単(作る側)
でしょうか。
GUIでありながら、CUIのような処理が出来るものがあれば良いですけどね。
#データ処理にExcelを使っていますが、やはり大量データを加工する場合、
#全部いちいち表示する必要がないのでCUI(awkなど)が速いですしね。
Re:CUIのメリット (スコア:1)
> ・開発が簡単(作る側)
これは本当に大きなメリットなのですが、エンドユーザだとこの感覚がないのでしょうね。
Hello, worldのない世界なんて息苦しくて生きていけません。
Re:CUIのメリット (スコア:1)
自動実行とかしたい場合など、コマンドラインインタフェースが無いと不便きわまるなんてことありますよね。
BATファイルをGUIで電子ブロックみたいに弄れれば楽しそう。
だが、そうしたソフトを見たこと無いあたり、需要が皆無なんだろうなぁ・・・
Re:CUIのメリット+思い出話 (スコア:2)
自動実行とかしたい場合など、コマンドラインインタフェースが無いと不便きわまる
その通りなんですが、現在コンピューター利用者のほとんどを占めるユーザー層は、身近にあるPCで、実は自動実行みたいなことが比較的簡単に、つまりコマンドのコピーアンドペースト+α程度で出来るとは思ってないんじゃないかな。#2185415のACが書いている「バグが少ない良質なソフトウェア」だって、そもそもそのコマンドを使えなきゃ絵に描いた餅同然だし。人間って出来ると知らなければ、「そんなものだ」と思って意外と不便を感じないものかと。私はなければ相当困りますけど。(笑)
Linux/*BSD以外だと、WindowsのPowerShellはコンピューター初心者が使えるツールじゃないし、MacのAppleScriptも、そこそこ実用的な提携処理をするのはプログラミングの知識が必要だと思いました。Automatorは知らないのでノーコメント。識者の方、答えてくれるとうれしいな。
あと、MacOS 9の時代にも開発者向けにはCLIが提供されてたんだけど、これがUNIX/MS-DOSとはまたコマンド体系が全然違っていて、苦労したような記憶が。なんて名前の環境だったかなぁ。
vyama 「バグ取れワンワン」
まさに文系死ねって議論だ。 (スコア:1)
弁護士さんは良いんだよユーザーなんだから。
それだけの話し。
ネットワーク機器 (スコア:1)
コマンドラインじゃないと100%性能を発揮できないメーカー多すぎ
#一部は更に性能を隠し持つヤツもあったりするが・・・
水を飲むと屁(CH4)をこきます
今でも有用ではあると思う。 (スコア:1)
例えば、フォルダ中の*.xlsファイルだけを別フォルダに移動しようと思ったら、GUIだと、ちまちま1こずつ探すか、ファイルの検索から探してやるかなんだろ。
それよりは、コマンドラインの方がはるかに早い。
# ただ、そんな方法はパソヲタしか使わないので、なくても大抵の人は困らない。
1を聞いて0を知れ!
Re:今でも有用ではあると思う。 (スコア:2)
種類でソート後、選択してDnDかな。
GUIでは移動元ディレクトリと移動先ディレクトリを決定後にファイル選択を行えるが、CLIでは行えないようだ。
故に、CLIでは意図しないディレクトリにコピーする事がGUIの場合より高い。
Re:今でも有用ではあると思う。 (スコア:2)
D&Dの途中で落とす馬鹿が時々いるんですよ。
まさにドロップ。
同じドライブ内だとコピーではなく移動になってしまうという罠も潜んでいる。
直後なら戻せるけど、数日たってから「ここにあったはずのフォルダどこに行った?」というのが発覚して近くのフォルダを一つ一つ開いては戻りを繰り返して調べる羽目になる。
D&Dなんて思いついた馬鹿は死んじまえと心の中でののしりながら。
dir キーワード.* /s > c:\files.txt
あら簡単(笑)
Re:今でも有用ではあると思う。 (スコア:3)
別の観点として,
GUI操作の履歴は残しにくいが,
CLI操作ならhistoryに簡単に残こせるから,
後から原因を特定したり,何が起きたのかを突き止めやすい
Re:今でも有用ではあると思う。 (スコア:2)
これはどうしようもないけど、
こっちは選択後、Ctrl+c → Ctrl + vで。
Re:今でも有用ではあると思う。 (スコア:2)
そう教えててもだめなんですよ。
ついD&Dするようで。
ちなみにこういうキーボード操作はGUIの領域といえるのでしょうか。
Re:今でも有用ではあると思う。 (スコア:2)
>D&Dの途中で落とす馬鹿が時々いるんですよ。
>まさにドロップ。
そこはファンブルと言うべきでは。
#ごめん、思いついただけです。
#存在自体がホラー
Re:今でも有用ではあると思う。 (スコア:2)
1ファイル1行表示にする。
端のファイルを選択→Shiftキーを押しっぱなしにする→別の端のファイルを選択。
Re:今でも有用ではあると思う。 (スコア:2)
エクスプローラーより遙かに快適だし、見ている人も早くていいねぇと言う。
でも誰も使おうとしないのはGUIに馴らされているからなのだろうか。
遅くっても操作が楽な方がいいと。
そういえば、CUIっていい方、しないんかなぁ。
GUIに対してはCUIだ思っていたんだが。
Re:今でも有用ではあると思う。 (スコア:2)
CUI: Charactor based User Interface
CLI: Command Line Interface
CUI って、MS-DOS の頃にあった、カーソルとかで移動しながら
動かすようなソフトも含むんじゃなかったかと。。違うかも。
# FDclone (本家は検索が面倒くさそう) とか、古の emacs とか
# ncurses が使われていたりするかもなもの。make menu-config?
今回の場合、コマンドラインの話なので、CLI の方が明確だと思う。
Re:今でも有用ではあると思う。 (スコア:2)
あー。
set SDIR=\foo
set DDIR=\bar
copy %SDIR%\* %DDIR%
みたいな。
Re:今でも有用ではあると思う。 (スコア:5, すばらしい洞察)
GUI が良いのは、こういう作業をする場合にフォルダやファイル名に日本語が含まれていても、作業のスピードが変わらないところ。
CUI はASCII 以外が絡むと、とたんに苦しくなる。
Re:今でも有用ではあると思う。 (スコア:1)
まあ慣れだと思うけど、エクスプローラなりでctrlおしながらスクロールして選択、よっこらしょっとゴミ箱にドラッグするより
>for i in `seq 1776 3312`; do rm -f $i.txt; done
って打つほうがあっとう圧倒的に速いな、私は。
同じような例で、1.gif, 2gif, ..., 999.gif がある時、
001.gif, 002.gif, ... 999.gif のように0パディングでリネームしたい時って、GUIだとどうやってます?
連番GIFをくっつけてアニメGIFにする時とかでそういう事する
局面がよくあるんだけど、CUIじゃないと気が狂いそう。
Re:今でも有用ではあると思う。 (スコア:3, 参考になる)
>> そういうツールを入れる。
そうそう、初めてそういう作業に出くわしたらvectorやら窓の杜やらで検索して、
それっぽいフリーツールを何個か見つけてきてインストールして、
使い勝手のよさそうなのを選んで以後それを使えばいいよね。
で、ちょっと違う操作、たとえば一分毎に出力される
log.yyyymmddhhmmss フォーマットの大量のログファイルを
一日分毎にくっつけて log.yyyymmdd にするという操作が
必要になった時には、またそういうことをするツールを探せばいい。
でもそんなのすぐには見つからないし、作業毎に操作法の異なるツールを使うなんて面倒くさい。
できれば一つのツールが正規表をサポートするなどして、
ある程度の柔軟性を持ってくれた方が同じツールを使い回せて良いよね。
しかも似たような作業をまた今後もするのであれば、一連の作業をマクロで保存して、
2回目以降は自動化できればもっと良い。
でも日付やディレクトリは作業毎に違う可能性があるから、マクロは独自形式のバイナリじゃなくて、
テキストで記述されていて簡単にエディタで編集できなくちゃ嫌だよね。
おっと、そんな素晴らしいツールも出先の環境にインストールされていなかったら困るから、
できればどの環境にも標準で用意されていて欲しいし、上記のマクロ言語も業界標準化されてたらいいな。
もちろんそのツールだけでできることなんてせいぜい文字列操作程度で限られているのだけれど、
そのマクロ言語から他のプログラムを呼び出せるようにしておけばできることが飛躍的に増えるかも。
っていうか、そんな強力なツールなんだったらOSの基盤にも流用して、
ブート時やシャットダウン時の一連の初期化/終了作業なんかもそのマクロで記述すれば良いんでないか?
なんていう広範囲にファイル操作や文字列操作をするツールがあったとして、
マスターするまでは結構ややこしいけど、一度そのツールに習熟すれば様々な環境で様々な作業ができるし、
OSの基盤にもなっているわけだからマシン管理にも役に立つはず。
そう思わない?
Re:今でも有用ではあると思う。 (スコア:2)
度々予想されるなら、ツール探すか、初めからそれができるファイラ探すか、CUI使うにせよショートカット作ってダブルクリックすりゃ動くようにするだろうけど。
CUIのいいところは、たまにしか使わない(あるいは、二度と使わないかもしれない)機能や、どうせ自分しか使わないだろうから探しても無いような機能を、手軽にその場で作れることなんじゃないかと。
1を聞いて0を知れ!
知ってる人だけ使えばいいけど、無くすメリットも無い (スコア:1)
便利だと思うものを納得して使っていればそれでよいと思いますが
#自称上級者がお手軽に優越感に浸れる数少ない場所なんだしw
Windowsをメンテする人は誰なのか? (スコア:2)
CLIは知っている人だけが使えば良いのは正しいけど
CLIを扱えないレベルの人には
Windowsのメンテナンスも満足にできない場面があるという現実。
調子の悪くなったPCを、PCに詳しい友人のところに持ち込んでも
メンテナンスに必須のコマンドが無ければメンテナンスができない。
その部分において、CLIが標準搭載されることは、必須のことではないかと思う。
Micorosftはそこをわかっているのだろうけど
起動しないWindowsを前に、chkdskやfixmbrなどを
行なう手段を用意してあげないPCメーカーは、そう考えていないのだろうなぁ…
ちゃんと設計されてれば (スコア:1)
操作性が良くて全部出来る仕組みを作るのは、どっちでも結構めんどくさい。
抽象化か具象化かの違い。以上。解散 (スコア:1)
CLIは高度に抽象化したプロ向け。
GUIは具象化を優先した一般向け。
それ以上の何ものでもない。ってことを分かってない素人が頓珍漢なことを言ったってだけの話だな。アホくさ
世の栄枯盛衰を鑑みれば… (スコア:1)
Re:弁護士であり、ブロガーでもあるRoberto Lim氏 (スコア:2, おもしろおかしい)
でも法律系のストーリーにはドヤ顔で書き込むんですね。わかります。
Re:弁護士であり、ブロガーでもあるRoberto Lim氏 (スコア:1)
CLIの存在意義が分からないのなら、黙ってりゃいいのにね。
> コマンドラインを使うと、自分が凄いことをやってのけているという気がする
たんにCLIに対してコンプレックス持ってるだけのような気が。
「どうだ、俺様はコマンドラインが使えるんだぞ。すごいだろ」と自慢する奴に悩まされてたのかも知れないね。
Re:逆ですね (スコア:1)
Linux News の英文が
"Saying that GUIs obsolete CLIs is like saying word processors obsolete Emacs or VIM,"
になってるから、逆だという指摘は合っています。
#Emacsの“s”が消えたのは、GUIs, CLIs と来て複数形のs扱いで処理されたのだろうか? とかなんとか。
Re:スマホ (スコア:2)
つい最近、Androidの開発をやってみた身からすると、
スマートフォンのGUIのセオリーはPCとはちょっと違う気がする。
PCの場合は不可逆な操作の前にはかならずメッセージを出して確認させるというのがセオリーだけど、
スマートフォンの場合は頻繁に行う操作でそれをすると操作性の悪さという印象をすぐにもたらすので、
必要最低限以外の操作は可逆にするとか、基本的な設計段階でそういう操作をできるだけ不要にするというのがベスト。
最初の一回だけ確認して、後は省略するようにするという手もあるか。できればだけど。
できない操作は最初から選択肢を無くすようにしたほうがいいというのもあるか。
というか、ぶっちゃけ、必要なタップは最低限にしろと。
書いてみたら、これらはPCのアプリのセオリーでもあるんだけど、スマートフォンの場合はよりシビアに考えるべきだと思った。
もしかすると、そこらへんをもっとインテリジェントな制御にしていくという方向もあるのかな。
いや、某メーカーのソフトでは勉強させてもらいました。反面教師として。
#存在自体がホラー
Re:パイプ処理 (スコア:2)
でもチャートの各パーツの中身はきっとテキスト入力なんだろうな。
結局エディタでバッチファイルを書いた方が早いのだろうけど、論理的な考え方の訓練にはいいかも。