ソフトウェア開発にコマンドラインを使用する利点は何ですか?[閉まっている]


8

代替のGUIを使用するよりも、ソフトウェア開発にコマンドラインを使用することでどのようなメリットがありますか?特定のタスクのコマンドラインは高速ですか?特定のツールはコマンドラインからのみ利用できますか?


IDEではなくコマンドラインコンパイラを使用するということですか?それとも、あなたが作成したプログラムのUIについて話しているのですか?
Tydus卿2012

1
@LordTydus私はコマンドラインコンパイラと他のコマンドラインツール、およびデータベースなどを管理するためにそれをどのように使用できるかとIDE
および

4
Eclipseがスプラッシュスクリーンを表示できるようになるまでに、CLIマスターがviファイルを起動し、小さなバグを修正して、更新されたファイルを保存しました。多分make同様に進行中です。
mouviciel 2012年

1
私たちは、スプラッシュ画面が.....ロードされる前に、UIが男遠隔操作途中で世界中の壊れたマシンへのシェル.... CLI男は金曜日の午後の飲み物のためのパブでダウンしているときに何が起こるかは言及文句を言わない
mattnz

回答:


28

GUIアプリケーションに対するコマンドラインの利点は次のとおりです。

  1. このようなツールを使用するのではなく作成する場合、コマンドラインは簡単に開発できます。コマンドラインで引数を受け入れるのは簡単で、テキストストリームへの出力も同様に簡単です。
  2. コマンドラインアプリケーションは、バッチファイルやスクリプトで簡単に使用でき、自動テストやビルドに最適です。make、ant、msbuildなどのほとんどのビルドツールは、コマンドラインツールの呼び出しを適切にサポートしています。
  3. 入力、出力、エラーストリームは簡単にリダイレクトでき、ファイルや他のアプリケーションから情報を送受信できます。つまり、テストデータを簡単に提供したり、出力をキャプチャしたりできます。
  4. 単純ですが標準のエラーリターンメカニズム(リターンコードとエラーストリーム)があります。GUIでエラーを検出するには、UIの自動化が必要な場合があります。
  5. リモートシェルまたは同様の接続を介して使用すると、開発者が自宅や外出先で接続しているときなど、リモートでのタスクの実行がはるかに簡単になります。最近のリモートデスクトップ接続のほうが普及していますが、必要な帯域幅と遅延の少ない接続が必要です。
  6. ヘルプには定義された標準があります(unix manコマンドや-?を引数として渡すなど)。機能を知らない人でも、ツールの機能を簡単に確認できます。同様に、複数のファイルを指定するための定義済みのワイルドカード構文標準があり、おそらく既存の開発者の知識を利用しています。

ただし、コマンドラインアプリケーションには、GUIアプリケーションと比較して次のような欠点があります。

  1. コマンドラインアプリケーションは、特に使い慣れていないアプリケーションの場合、使い方を学ぶのが難しくなります。開発者はコマンドラインツールに慣れていることが多いため、これは通常ソフトウェア開発の問題ではありませんが、ジュニアQA、ローカリゼーション、テクニカルライターなど、開発に携わる技術者が少ない場合は問題になる可能性があります。
  2. コマンドラインアプリケーションはキーボードを必要とするため、携帯電話やタブレットなどの一部のデバイスでは実用的ではありません。

1
そのような包括的な回答に感謝します(質問を少し熟成させてから、選択した回答を選択しますが、あなたの回答は非常に役立ちます)-コマンドライン(できればLinux端末)の完全な知識を得るために推奨できるリソースはありますか?
br3w5 2012

1
@ssbrewster UNIXプログラミングの技術(catb.org/esr/writings/taoup)は、Linuxコマンドラインがなぜそのように機能するの理解するのに役立ちます。それはそれがどのように機能するかよりもそれを使うことを学ぶためにはるかに重要です。知っておくべき重要なことは、その下にある慣習とは何か、そして新しい機能を発見する方法です。これらの2つのことを理解すると、他のすべてが時間とともに自然に展開します。また、それはいまいましい読み物です。
ラチェット2013年

8

IDEの代わりにコマンドラインコンパイラを使用していると思います。そうでない場合はコメントを残してください。答えを削除します。

学習。コードのユニットがあなたの言語で一緒にコンパイル、リンク、またはマッピングされる方法を学びます。通常、どのファイルをコンパイルしてリンクするかをコンパイラに明示的に指示する必要があります。したがって、それがどのように機能するかをよりよく理解できます。IDEはあなたの人生を楽にするために魔法をかけますが、あなたを無知に保ちます。

次に、それをさらに一歩進めて、独自のメイクファイルを作成する方法を学びます。これは貴重なスキルです。メイクファイルは、完全な理解と学習を維持しながら、ビルドサイクルアプローチを「IDEマジック」の便利なものにします。

さらに、ビルドプロセスはソース管理に簡単に配置できます。また、ビルドプロセスを移植して、さまざまなコンパイラで動作させることも簡単です。コンパイラ名のメイクファイルの1行を変更するだけの場合もあります。

多くのプラットフォームで作業できるスキルを開発します。テキストエディタとコマンドラインコンパイラは、すべてのベンダーとプラットフォームで非常によく似ています。これらの基本的なツールを使用すると、24時間年中無休、任意のシステムで、いつでも、どこでも開発することができます。Visual Studioにずっと住んでいるとしたら、それ以外の環境で作業することは、はるかに困難な移行になるでしょう。

このパスをたどると、VIMのような高度なテキストエディターを学ぶのに迷惑をかけたくなるかもしれません。ほぼすべての場所でサポートされているため、あらゆるプラットフォームで機能する機能を補完します。学習曲線は非常に大きくなりますが、メリットは、マウスに手を動かさずにテキストを高速で簡単に編集できることです。

ところで、私はIDEには反対していません。


@LordTydusに感謝します。メイクファイルの推奨は本当に役に立ち、低レベルでの動作を正しく理解することは、私が学びたい方法です
br3w5

2
コマンドラインを使用するもう1つの利点は、*。cなどのワイルドカードを使用して複数のファイルを指定する方がはるかに簡単です。これをGUIで行う唯一の方法は、疑似コマンドライン編集ボックスを提供することです。
tcrosley 2012

4

GUIには、高度な視覚化を使用できるという利点があります。これは、複雑なデータを意味のあるものにするために非常に役立ちます。

一方、コマンドラインは、多くの場合より強力で(たとえば、完全にスクリプト化可能)、通常はより高速です。他の答えはそれを拡張しています–ここで私はGUIがいくつかのタスクに利点を提供しないことを述べたいです:

開発中、多くのタスクでは、コマンドライン/テキストインターフェイスを使用して実行できない視覚化は実際には必要ありません。コンパイルを取る:優れたテキストエディター(Vim、Emacs)はエラーメッセージの解析を容易にサポートし、コード内のエラーに直接ジャンプします。グラフィカルIDEはこれ以上提供しません。簡単に言うと、そのようなタスクではグラフィカルインターフェイスは必要なく、コマンドラインインターフェイスの柔軟性と効率が失われます。

一方、複雑なデータの相互作用を扱う場合は、インタラクティブな視覚化が非常に役立ちます。ブランチグラフを表示できるバージョン管理ソフトウェアは、多くの場合、ここでテキストインターフェイスよりも優れています。たとえば、これは私のリポジトリの1つからのスナップショットです。

ブランチグラフ

これは特に強力な視覚化ではありませんが、テキストインターフェイスよりもはるかに便利です。ただし、繰り返しになりますが、コマンドラインを使用すると、実際にリポジトリを操作する方が高速になります(少なくとも私にとって)。GUIを使用して、ブランチを表示します。

また、多くのタスクは、Webページをクリックするよりもコマンドを入力する方が速く実行できるという事実を認識して、最近Githubがコマンドラインインターフェイスを追加したことにも注意しください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.