IDEと標準エディターの使用を正当化するものは何ですか?[閉まっている]


39

私は自分の選んだテキストエディタ(vim、nano、gedit、poisonを選ぶ)を、最近のIDEよりも頻繁に使用していることに気付きました。

IDEのショートカットが埃っぽくなっていることに気付いた後、私はこれについて考え始めました。

その点について、IDEを使用せず、単にエディターに依存する理由何ですか?



あなたが実際に何をするあなたのエディタで?

コードを書いて、アプリケーションを開発してください...最近のほとんどすべて。
クリス

15
個人的には、他の人のコード(特に大規模なプロジェクト)を読むときは、自分のコードを書くときよりもIDEの方がはるかに便利だと感じています。IDEを使用すると、ソース内をより簡単にナビゲートでき、他の人のソースコードをすばやく理解しやすくなります。
チャールズサルビア

3
質問を変えたいと思います。IDEを使用しない理由。
ネイラー

回答:


69

I:統合。優れたテキストエディタはコードの記述に適している場合がありますが、プログラミングのほとんどは記述に費やされていません。テストとデバッグに費やしたため、テキストエディターをコンパイラーとデバッガーに統合する必要があります。これがIDEの最大の強みです。


私の邪魔にならなかったものを見つけることができた場合のみ:)
ティムポスト

5
統合の利便性のために支払う価格として、サブパー編集を受け入れるようになりました。
TMN

あなたが正しくやればプログラミングをテストしないのですか デバッグと猿のテストにほとんどの時間を費やしているなら、問題はどこにあるのかわかります。
トムホーティン-タックライン

8
@Tom、テストは、常に行うテストを自動化できるプログラミングですそうでない場合は、最高の品質が得られる方法で検証してください。
アンドレスジャアンタック

49

これらは、私のお気に入りのIDE IntelliJのお気に入りの機能で、Java、PHP、Javascript、HTML、さらにはActionScriptで使用するのが好きです。

  • エラーチェック -コードのライブスペルチェックと同様。絶対に不可欠です。
  • コードナビゲーション - Ctrl+click関数、変数で、定義に移動するために入力します。(IntelliJは上記のすべての言語でこれに非常に優れています)
  • コード補完 - Ctrl+space必要なクラス名またはメソッド名を入力するために常に使用しています。これは、コーディングまでの速度トンを、さらにあなたが必要なものは、あなたがしているコンテキストからアクセスできないときに、彼らが起こる前にキャッチバグを助けIntelliJのもあなたの頭字語を展開するのに役立ちます- 。型NPE、ヒットCtrl+space、そしてそれが「NullPointerExceptionが」表示されます、 「NoPageError」など。Alt+enter自動的にを追加するのを押すのimportも本当にいいです。
  • コード生成 -ゲッターとセッターを生成し、数回クリックするだけでインターフェースからメソッドを実装します。
  • 非常に優れたコードカラーリング -IntelliJは、標準のキーワード、文字列、変数名のカラーリングだけでなく、メンバー変数、ローカル変数、パラメーターもカラーリングします。ActionScriptでは、実際にセッター/ゲッターである変数は、関数のように色付けされます。
  • リファクタリング -間違いのない名前変更が最大です。IntelliJは、setterおよびgetterまたは文字列使用法の名前を変更するのにも非常に優れています。もちろん、必要に応じて正規表現ベースの検索と置換があり、「myNumber」、「MyNumber」、「MYNUMBER」を「myString」、「MyString」、「MYSTRING」に置き換える「大文字小文字を区別する」オプションもあります。一度の操作で
  • バージョン管理の統合 -私たちはSVNを使用しており、私のお気に入りのIDE VC機能はSVNを考慮せずにクラスを作成、削除、移動することができ、簡単に履歴を閲覧し、非常に優れたdiffツール、優れたマージ機能、およびファイルに注釈を付けます(行を表示します-エディターで行履歴)。
  • 依存関係のインポート -ソースを持っているサードパーティのライブラリに依存している場合、参照、デバッグなどのためにコードに簡単に移動できます。
  • スマートタイピング -コードを貼り付けて、自動的に正しいタブ位置に貼り付け、エンドブラケット、括弧、引用符などを自動補完します。
  • JUnit、FlexUnit、PHPUnitの非常に優れたテストランナー
  • デバッグ -もちろん。JBoss、Jetty、さらにはFlashを完璧にデバッグします。Ctrlキーを押しながらスタックトレースをクリックして、コードに直接移動します。

当然のことながら、コードの色付けは当たり前ですが、優れたコードの色付けは周辺視野のようなものです。これにより、重要なことに集中することができます。

IntelliJ Ctrl+spaceは、変数名の提案にも使用します。Javaでは、新しいEventMessageItem変数を宣言してhitを実行するとCtrl+space、「eventMessageItem」、「eventMessage」、「item」などが提案されます。

これらの事のすべては私に与える方法など、などを自分のコードやアーキテクチャを考えると、書式設定固定ファイルシステムを扱う、コピー&ペーストのエラーを修正、アプリケーションの切り替え、ドキュメントを追いかけについてあまり考えるために多くの時間をこの種の生産性の向上に対して、どのようにノーと言うことができるかわかりません。


4
+ 1 IntelliJ
Idea-

3
+1は、ポイントのほとんどは、ここではまともなIDEには適用され、または:)なければならない
マチュー

21

IDEはコードをエディターよりもはるかによく理解しています。これにより、たとえば、識別子の補完とリファクタリングが可能になります。これは、Javaのような冗長な言語では神からの送信であり、


1
このすべてを理解するには、保存するためにメモリが必要であることに注意してください。したがって、IDEは「フロッピーに合わせる」エディタと比較して、かなりリソースを消費する傾向があります。

19
ええ、しかし、私の8Gb i7開発マシンは、入力中に何かをする必要があります。:D
ドミニク・マクドネル

IDEはリソースを大量に消費する必要はありません。しかし、Smalltalkはおそらくエッジケースです。リフレクションは簡単で、非常に単純な構文などです。
フランクシェラー

@フランク、あなたが彼らに何をしてほしいか、そしてそれがどれほど簡単かによって異なります。

18
[To the IDE] You had me at intellisense/autocomplete

1
+1完全なクラス、メソッド、またはプロパティ名をもう入力せず、正しいオートコンプリートオプションを選択するために必要なキーストロークの数を正確に知っていることに気づくのは常に当惑しますが... tic-tic-tic-TAB- dot-tic-tic-tic-TAB-dot-tic-tic-tic
grossvogel

5
@gross、でも正しい!頻繁に手動で入力すると、入力エラーが発生します。

@TThorbjørnRavnAndersen同様の名前が2つある場合を除き、誤って正しい文字を取得するのに十分な文字を入力しないでください。オートコンプリート:pに十分な注意を払っていないため、「NumberOfSegments」が必要ないくつかの領域に誤って「NumberOfPoints」プロパティを挿入しました。そうは言っても、私はオートコンプリートを使いたいと思っています。
KChaloux

14

生産性。他に意味のある正当化はありますか?私にとって、プログラミング中に実行する多くの機能を一元化する適切に設計されたIDE-コードの作成と編集、ソース管理の使用、デバッグ、プロジェクト管理ツールとの対話、他のプログラマーとの通信、ドキュメントの作成、自動テストの実行-プロセスの摩擦を劇的に減らし、生産性を低下させます。

さらに、各ツールを個別に使用する方法を知っている必要があるように感じていても、その必要はありません。少なくとも私にとっては、CLIを開いて入力するよりも、マウスを右クリックする方がはるかに望ましいです。

私は多くを使用しましたが、何度も繰り返すIDEはVisual Studio、Wing IDE、NetBeansです。すべてがプログラミングに費やす時間に大きな価値をもたらします。


9

歴史的に、IDEはシングルタスクコンピューターで比類のない利便性を提供していました。私の最初のCコンパイラでは、編集-コンパイル-実行サイクルで次の手順が必要でした。

  • エディターを起動
  • プログラムを編集
  • プログラムを保存し、エディターを終了します
  • プログラムをコンパイルする
  • コンパイルされたプログラムを組み立てる
  • コンパイルおよびアセンブルされたプログラムのリンク
  • プログラムを実行する

CP / Mシステムで。(ディスクドライブが大きくなると、バッチプログラムで自動化できたはずです。)

Turbo Pascalを入手したとき、コンパイルおよびデバッグ中にエディターを使用可能にしておくことができて嬉しかったです。

それが、そもそもIDEの人気を高めた理由だと思います。


しかし、これらのことはすべて、多くの編集者から行うことができます。たとえば、Emacs。
ジェイソンフルーツ

@JasonFruit:確かに。私は彼らに最初に惹かれたものを説明しています。当時、私はTRS-80 Mod 4でCP / Mを実行していましたが、EmacsはまだTECOベースだったと思います。
デビッド

さて、ポイント。:
ジェイソンフルーツ

2
@ JasonFruit、CP / M-80マシンには最大64 KBのRAMがありました。どれだけのEmacsに対応できるかを検討してください。

7

Lispでコーディングすると、Emacsにはメソッドパラメータやオートコンプリートの検索などのIntellisenseのような機能があるため、元のIDEであると言えます。また、1つのプログラムを複数のタスク(一般的な編集、シェル/コマンドプロンプト、ニュースの読み取り)に使用できることは素晴らしいことです。

一般に、エディターとIDEの質問はプログラミング言語に依存しているようです。私が見たものから、例えば、RubyとHaskellのコーダーは、お気に入りのテキストエディターを好むようです。


Emacsは、ほとんどすべての言語で実際にそれを行うことができます。PHPモードは非常に優れており、Javascript、Haskell、Erlang、およびSQLのモードです。(他のものも良いかもしれませんが、私はそれらを使っていません)。
ザカリーK

これらすべての機能をemacs(またはその点でエディター)に追加すると、IDEが完成します。統合開発環境。私はスクラッチ(アウトだまさエディタ)からそれを作る対ベーカリー(IDE)からケーキを買いにそれを比較
SAL

+ 1、Coq、Haskell、およびLisp Emacsについては、適切なサポートがある唯一のものです。
jozefg

4
  • ワンクリック編集
  • デバッグ
  • コードテンプレート
  • コード補完
  • バージョン管理およびリファクタリングツールとの統合
  • シンプルな単体テスト

いくつか例を挙げると


3

答えは、使用しているプログラミング言語とそれがどれだけ上手かによって大きく変わると思います。JAVAのような言語の場合、何か深刻なことをしているのであればIDEが必要です。JSやRuby IDESのようなスクリプト言語に関しては、あまり役に立ちません。

開発には、notepad ++と一連のシェルスクリプト(バックアップ用、gitコミット用)を使用し、完全に正常に動作します。


JavascriptにGVIMを使用していますが、IDEを使用するよりもはるかに高速です。また、使用するメモリが大幅に少なくなります。jsLint、書式設定、セレンの制御など、約3〜4個のシェルスクリプトを追加すると、キーボードから手を離す必要がほとんどないことがわかります。(そして、私は気にならば正直、私はおそらくVIMプラグインにすべてのそれらのスクリプトを回すことができることにする)
ザカリーK

3

「編集者」を支持するいくつかの議論:

  1. IDEがまだ開発されていない場合、または開発されない場合があります。
  2. エディターを使用すると、「より速く」より外科的に変更を加えることができます。
  3. 必要なリソースがはるかに少なくなります(同時に多数のオープンを使用する方が簡単です)
  4. これは、ここで説明しような問題を解決する唯一の方法だからです。
  5. (個人)すべてをタイプしなければならないとき、私は自分の意識を使ってもっと働き、タイプしているものにもっと従事します。たとえば、メソッド(formaqString)のスペルミスを何度も見つけましたが、IDEを使用すると気付かなかったでしょう。
  6. キーボード(速度/フロー)を使用する場合にのみ作業しやすくなります。
  7. マクロまたは他の時間節約の使用の精神。

私は毎日IDEを使って仕事をしていますが、そうでなければJava / C#を書くことは困難です。

(2)(3)との比較:基本的に、リモートで(ssh /リモートデスクトップ経由で)ファイルを編集し、離れたサーバーの構成またはファイルに最小限の変更を加えるオプションのみ。


2

もちろんあなたの言語にもよりますが、いくつかのIDEには視覚的なフォーム/ウィンドウデザイナーも含まれています。

指摘する必要がありますが、プログラマーのテキストエディターとIDEの間の線は明確に定義されたものではありません。多くのエディターは、コンパイル、コード補完、デバッグなどを処理するために拡張できます。


2

IDEは編集機能が非常に不足しているため、テスト/デバッグ/統合にはIDEを使用し、編集にはKEDITを使用します。
.NET IDEは外部の編集を認識するため、必要なのはエディターに保存し、プロンプトを受け入れてソースをリロードすることだけです。これにより、編集とデバッグの機能を同時に最適化できます。
他のIDEの場合、テンプレートプロセッサおよびソース検索プログラムとしてKEDITを使用し、そのソースをIDEにコピー/貼り付けます。


IDEではできないkeditで何をしますか?私は...本当に中古決して何もなく、コーディング私の深刻なのほとんどのIDEを持つ、純粋に好奇心が強い
ディーン・ハーディング

KEDITは、他のスマートエディターと同様に、IDEではできないことを実行できるスクリプト機能を備えています。たとえば、KEDITを使用して、複数のバッファー(keditセッションごとに最大100)のコピーと貼り付け、およびIDEが近づけることのできない列編集を行います。
デイブ

1

IDEの場合:-
高度な機能はすぐに使用できます。
-一部の機能はフレームワークに固有であるため、エディターには同等のものがありません。

エディターの場合:
-キーボードに手を触れます。
-開発環境はすべてのシステムで同じです-
エディターのスクリプトの
改善-IDEの一部の機能は外部ツールまたはスクリプトで利用できます。(インテリセンス、goto定義、参照の検索)


0

短い学習曲線。それでおしまい。


4
私はあなたがIDEのあらゆる種類の限界に達していないと思います
ハラルドScheirich

4
vimを副操縦士として使用する必要はありません。
ネイトc

のための短い学習曲線...?申し訳ありませんが、これは私には明らかではありませんでした。
クリス

0

私が本当にお勧めするのはデバッガーだけです。IDEは実際には他のガビンが追加されたエディターですが、コマンドプロンプトでmake(または上矢印+ Enter)を入力してコンパイルできる場合、IDE は必要ありません。エクスプローラーで右クリックして適切なメニュー項目を選択することでSCMにコミットできる場合、IDEは必要ありません。

今では、リファクタリングのサポート(最初にコードを書く:))や統合されたGUIデザイナー(ただし、Visual Studioを使用して、VSのくだらないXAMLサポートではなく、Expressionを使用してGUIの作業を行う必要があります。 )、そして多くの人々インテリセンスとオートコンプリートを必要とします(特にgodallmightlylongの名前を持つJavaやC#のような冗長言語の場合)。

しかし、私にとっては、GUIデバッガーがIDEを使用する唯一の本当に良い理由です。私はまだ「コマンドライン」デバッガーを使用しています(まあ、windbg)が、日々の場合は、VSに組み込まれています。


0

IDEには利点があります。すべての言語が実際にスケールを傾ける包括的なIDEを備えているわけではありません。または、前述の言語用に作成するのが非常に難しい場合もあります。なぜIDEが必要になるのでしょうか?さて、これらから始めましょう:

  • この言語には豊富な標準APIがあり、IDEポップアップで開発を高速化できます。
  • 多くの定型コードがあります。(強制的なtry / catch、getter / setterなど)
  • オートコンプリートはコーディングのニーズを正確に満たすことができます
  • あなたの言語ユニットテストスイートは、上記のIDEに統合されています。
  • IDEは、ベストプラクティスに関する多数の言語共通ライブラリを認識し、サポートしています。
  • 動作させるためのプラグインが利用可能
  • それはあなたのシステムを遅くするほど重くない
  • 高度に統合されたデバッガー?それが役立ちます。

問題は、すべての言語が包括的なIDEから大きな生産性の向上を実際に得られるわけではないことです。私はIDE(Java、C#)の一部の作業にIDEを使用しますが、他の作業(Python、Ruby、Coldfusion)には使用しません。それは本当にバランスのとれた行為です。一部の言語は、このような包括的なスイートを必要としません。

それぞれにIDEがありますか?はい。常に必要ですか?あんまり。

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