私は自分の選んだテキストエディタ(vim、nano、gedit、poisonを選ぶ)を、最近のIDEよりも頻繁に使用していることに気付きました。
IDEのショートカットが埃っぽくなっていることに気付いた後、私はこれについて考え始めました。
その点について、IDEを使用せず、単にエディターに依存する理由は何ですか?
私は自分の選んだテキストエディタ(vim、nano、gedit、poisonを選ぶ)を、最近のIDEよりも頻繁に使用していることに気付きました。
IDEのショートカットが埃っぽくなっていることに気付いた後、私はこれについて考え始めました。
その点について、IDEを使用せず、単にエディターに依存する理由は何ですか?
回答:
I:統合。優れたテキストエディタはコードの記述に適している場合がありますが、プログラミングのほとんどは記述に費やされていません。テストとデバッグに費やしたため、テキストエディターをコンパイラーとデバッガーに統合する必要があります。これがIDEの最大の強みです。
これらは、私のお気に入りのIDE IntelliJのお気に入りの機能で、Java、PHP、Javascript、HTML、さらにはActionScriptで使用するのが好きです。
Ctrl+click
関数、変数で、定義に移動するために入力します。(IntelliJは上記のすべての言語でこれに非常に優れています)Ctrl+space
必要なクラス名またはメソッド名を入力するために常に使用しています。これは、コーディングまでの速度トンを、さらにあなたが必要なものは、あなたがしているコンテキストからアクセスできないときに、彼らが起こる前にキャッチバグを助けIntelliJのもあなたの頭字語を展開するのに役立ちます- 。型NPE、ヒットCtrl+space
、そしてそれが「NullPointerExceptionが」表示されます、 「NoPageError」など。Alt+enter
自動的にを追加するのを押すのimport
も本当にいいです。当然のことながら、コードの色付けは当たり前ですが、優れたコードの色付けは周辺視野のようなものです。これにより、重要なことに集中することができます。
IntelliJ Ctrl+space
は、変数名の提案にも使用します。Javaでは、新しいEventMessageItem変数を宣言してhitを実行するとCtrl+space
、「eventMessageItem」、「eventMessage」、「item」などが提案されます。
これらの事のすべては私に与える方法など、などを自分のコードやアーキテクチャを考えると、書式設定固定ファイルシステムを扱う、コピー&ペーストのエラーを修正、アプリケーションの切り替え、ドキュメントを追いかけについてあまり考えるために多くの時間をこの種の生産性の向上に対して、どのようにノーと言うことができるかわかりません。
IDEはコードをエディターよりもはるかによく理解しています。これにより、たとえば、識別子の補完とリファクタリングが可能になります。これは、Javaのような冗長な言語では神からの送信であり、
[To the IDE] You had me at intellisense/autocomplete
生産性。他に意味のある正当化はありますか?私にとって、プログラミング中に実行する多くの機能を一元化する適切に設計されたIDE-コードの作成と編集、ソース管理の使用、デバッグ、プロジェクト管理ツールとの対話、他のプログラマーとの通信、ドキュメントの作成、自動テストの実行-プロセスの摩擦を劇的に減らし、生産性を低下させます。
さらに、各ツールを個別に使用する方法を知っている必要があるように感じていても、その必要はありません。少なくとも私にとっては、CLIを開いて入力するよりも、マウスを右クリックする方がはるかに望ましいです。
私は多くを使用しましたが、何度も繰り返すIDEはVisual Studio、Wing IDE、NetBeansです。すべてがプログラミングに費やす時間に大きな価値をもたらします。
歴史的に、IDEはシングルタスクコンピューターで比類のない利便性を提供していました。私の最初のCコンパイラでは、編集-コンパイル-実行サイクルで次の手順が必要でした。
CP / Mシステムで。(ディスクドライブが大きくなると、バッチプログラムで自動化できたはずです。)
Turbo Pascalを入手したとき、コンパイルおよびデバッグ中にエディターを使用可能にしておくことができて嬉しかったです。
それが、そもそもIDEの人気を高めた理由だと思います。
Lispでコーディングすると、Emacsにはメソッドパラメータやオートコンプリートの検索などのIntellisenseのような機能があるため、元のIDEであると言えます。また、1つのプログラムを複数のタスク(一般的な編集、シェル/コマンドプロンプト、ニュースの読み取り)に使用できることは素晴らしいことです。
一般に、エディターとIDEの質問はプログラミング言語に依存しているようです。私が見たものから、例えば、RubyとHaskellのコーダーは、お気に入りのテキストエディターを好むようです。
答えは、使用しているプログラミング言語とそれがどれだけ上手かによって大きく変わると思います。JAVAのような言語の場合、何か深刻なことをしているのであればIDEが必要です。JSやRuby IDESのようなスクリプト言語に関しては、あまり役に立ちません。
開発には、notepad ++と一連のシェルスクリプト(バックアップ用、gitコミット用)を使用し、完全に正常に動作します。
「編集者」を支持するいくつかの議論:
私は毎日IDEを使って仕事をしていますが、そうでなければJava / C#を書くことは困難です。
(2)(3)との比較:基本的に、リモートで(ssh /リモートデスクトップ経由で)ファイルを編集し、離れたサーバーの構成またはファイルに最小限の変更を加えるオプションのみ。
IDEは編集機能が非常に不足しているため、テスト/デバッグ/統合にはIDEを使用し、編集にはKEDITを使用します。
.NET IDEは外部の編集を認識するため、必要なのはエディターに保存し、プロンプトを受け入れてソースをリロードすることだけです。これにより、編集とデバッグの機能を同時に最適化できます。
他のIDEの場合、テンプレートプロセッサおよびソース検索プログラムとしてKEDITを使用し、そのソースをIDEにコピー/貼り付けます。
短い学習曲線。それでおしまい。
私が本当にお勧めするのはデバッガーだけです。IDEは実際には他のガビンが追加されたエディターですが、コマンドプロンプトでmake(または上矢印+ Enter)を入力してコンパイルできる場合、IDE は必要ありません。エクスプローラーで右クリックして適切なメニュー項目を選択することでSCMにコミットできる場合、IDEは必要ありません。
今では、リファクタリングのサポート(最初にコードを書く:))や統合されたGUIデザイナー(ただし、Visual Studioを使用して、VSのくだらないXAMLサポートではなく、Expressionを使用してGUIの作業を行う必要があります。 )、そして多くの人々がインテリセンスとオートコンプリートを必要とします(特にgodallmightlylongの名前を持つJavaやC#のような冗長言語の場合)。
しかし、私にとっては、GUIデバッガーがIDEを使用する唯一の本当に良い理由です。私はまだ「コマンドライン」デバッガーを使用しています(まあ、windbg)が、日々の場合は、VSに組み込まれています。
IDEには利点があります。すべての言語が実際にスケールを傾ける包括的なIDEを備えているわけではありません。または、前述の言語用に作成するのが非常に難しい場合もあります。なぜIDEが必要になるのでしょうか?さて、これらから始めましょう:
問題は、すべての言語が包括的なIDEから大きな生産性の向上を実際に得られるわけではないことです。私はIDE(Java、C#)の一部の作業にIDEを使用しますが、他の作業(Python、Ruby、Coldfusion)には使用しません。それは本当にバランスのとれた行為です。一部の言語は、このような包括的なスイートを必要としません。
それぞれにIDEがありますか?はい。常に必要ですか?あんまり。