質問

別の質問では、 Mark はIDEについて非常に語っています。使用する必要があります..."。プログラミングにvimを使用し、ほとんどすべての同僚がすべての作業にvimまたはemacsを使用する環境で働く人として、IDEの利点は何ですか?なぜ使用する必要があるのですか?

これは一部の人々にとっては有償の問題であると確信しており、火炎戦争を開始することに興味がないので、 IDEベースのアプローチが優れていると思われる理由のみを返信してください。 IDEを使用してはならない理由について聞くことに興味はありません。すでに使用していません。いわば「フェンスの向こう側」からの連絡に興味があります。

IDEが特定のタイプの作業には適しているが他のタイプの作業には適さないと思われる場合は、その理由も聞きたいと思います。

役に立ちましたか?

解決

実際に使用している言語に依存しますが、C#およびJavaでは、IDEが有益であることがわかります。

  • 名前空間、プロジェクトなどを気にせずに型にすばやく移動する
  • メンバーをハイパーリンクとして扱うことでメンバーに移動する
  • すべてのメンバーの名前を暗記できない場合のオートコンプリート
  • 自動コード生成
  • リファクタリング(大規模なもの)
  • インポートを整理する(C#のディレクティブを使用して、適切なインポートをJavaに自動的に追加する)
  • 入力時に警告(つまり、一部のエラーはコンパイルサイクルさえ必要としません)
  • ドキュメントを見るために何かにカーソルを合わせる
  • ファイル、エラー/警告/コンソール/単体テストなどの表示とソースコードをすべて同時に便利な方法で画面に表示する
  • 同じウィンドウからユニットテストを簡単に実行できます
  • 統合デバッグ
  • 統合されたソース管理
  • エラーの詳細から直接、コンパイル時エラーまたは実行時例外が発生した場所に移動する。
  • など!

これらはすべて時間を節約します。それらは私が手動でできることですが、もっと苦労します:私はむしろコーディングしたいです。

他のヒント

コード補完。コードの探索に大いに役立ちます。

IDEを使用する理由に関する簡単な答えは怠lazです。

私は怠zyな魂です。代わりに簡単な方法があるのに、難しいことをしたくないのです。 IDEは人生を楽にしてくれるので、怠け者にアピールします。

コードを入力すると、IDEがコードの有効性を自動的にチェックします。メソッドを強調表示してF1キーを押すとヘルプが表示され、右クリックして[定義に移動]を選択できます。定義された場所に直接ジャンプします。 1つのボタンを押すと、デバッガーが自動的に接続されたアプリケーションが起動されます。そしてリストは続きます。開発者が日々行うすべてのことは、1つの屋根の下に集められます。

IDEを使用する必要はありません。しないのはずっと大変な作業です。

古典的な「テキストエディタとコンソールウィンドウ対IDE」を行うのは公平ではないと思います。 "テキストエディター"本当にemacsです。 IDEに典型的な機能のほとんどは、emacsにもあります。または、おそらくそこから生まれたものであり、最新のIDEは主にインターフェイスの改善/簡素化です。

これは、元の質問の答えがそれほど明確ではないことを意味します。問題のサイトの人々がemacsをどのように使用するか、主にそれをテキストエディターとして使用する場合、またはすべて外出してカスタムスクリプトを使用する場合、関連するモードのコマンドを学習する、知るコードのタグ付けなどについて。

この質問には反対の方向から来ます。私は、Makefile + Emacsの土地で非常に少ないピットストップでプログラミングで育ちました。 DOSの最も初期のコンパイラであるMicrosoft Quick Cから、物事を自動化するIDEがありました。私は長年Visual C ++ 6.0で働いていましたが、Enterprise Javaを卒業したとき、Borland JBuilderで働いてからEclipseに落ち着きました。これは私にとって非常に生産的になりました。

最初の自己教育、大学、そして今は職業としてのキャリアを通して、IDE内でのみ行われる主要なソフトウェア開発は逆効果になることを学びました。私がこれを言うのは、ほとんどのIDEがあなたに their 独特のI-control-how-the-the-world-worksスタイルで作業することを望んでいるからです。プロジェクトをその線に沿って細かく切り刻む必要があります。奇妙なダイアログボックスを使用して、プロジェクトのビルドを管理しました。ほとんどのIDEは、プロジェクト間の複雑なビルド依存関係の管理が不十分であり、依存関係を100%動作させるのは難しい場合があります。私は、すべてをクリーン/リビルドしない限り、IDEがコードの作業ビルドを生成しない状況にありました。最後に、ソフトウェアを開発からIDEからQAやProductionなどの他の環境に移行するためのクリーンな方法はめったにありません。通常、すべてのデプロイメントユニットを構築するのはかわいらしいイベントです。または、IDEベンダーから提供されたものをまとめて提供する厄介なツールがあります。繰り返しますが、このツールは通常、プロジェクトとビルド構造がルールに完全に準拠することを要求します。プロジェクトの要件に対して機能しない場合もあります。

私は、チームで大規模な開発を行うために、IDEを使用してコードを開発し、手動で作成したコマンドラインスクリプトを使用してすべてのビルドを行う場合、最も生産性が高いことを学びました。 (Java開発用のApache Antが好きです。)IDEからスクリプトを実行することは、クリックフェストまたは複雑なビルドの自動化の悪夢であることがわかりました。シェルでスクリプトを実行します。

手動ビルドでは、バックグラウンドコンパイルのような現代のIDEのいくつかの優れた点を見逃す必要がありますが、得られるものはより重要です。複数の環境に対応できるクリーンで簡単なビルドです。 「ワンクリックビルド」それらのすべてのアジャイルな人は話しますか?私たちはそれを持っている。ビルドスクリプトは、継続的インテグレーションシステムからも直接呼び出すことができます。継続的インテグレーションによってビルドを管理することで、コード展開をより正式に異なる環境にステージングおよび移行でき、ビルドまたはユニットテストを壊す不良コードを誰かがチェックインするとすぐに知ることができます。

実際、IDEからビルドの役割を引き離しても、それほどひどくはありません。 Eclipseのインテリセンスおよびリファクタリングツールは、まだ完全に有用で有効です。バックグラウンドコンパイルは、単にこれらのツールをサポートするのに役立ちます。そして、Eclipseの独特なプロジェクトのスライスは、誰もが理解できる方法で問題セットを精神的に分解する非常に良い方法として機能しました(ただし、私の好みには少し冗長です)。 Eclipseで最も重要なことの1つは、優れたSCM統合であると思います。それが、チーム開発をとても楽しいものにしているのです。私たちはSubversion + Eclipseを使用しています。これは非常に生産的で、専門家になるための人材を訓練するのが非常に簡単です。

質問で強調した回答の作成者であり、確かにこの質問に少し遅れて来ていることは、リストされている多くの理由の中で、プロの開発者の生産性は1つであると言わなければなりません最も高く評価されているスキル。

生産性とは、最良の結果を出して効率的に仕事をする能力を意味します。 IDEはこれを多くのレベルで有効にします。私はEmacsのエキスパートではありませんが、主要なIDEの機能が欠けているとは思いません。

エンタープライズアプリケーションの重要な踏み台である設計、文書化、追跡、開発、構築、分析、展開、および保守はすべてIDE内で実行できます。

選択肢があるのにそれほど強力なものを使用しないのはなぜですか?

実験として、たとえば30日間IDEを使用して、自分の気持ちを確認します。経験についてのあなたの考えを読みたいです。

IDEを使用すると、次の利点があります。

  • 通常、コンパイルは「オンザフライ」で行われます。つまり、コンパイルするためにコマンドラインに切り替える必要はありません
  • デバッグは統合されており、IDE内にあることは、ステップデバッガーが実際にインプレースエディターを使用して、実行されているコードを視覚的に表示することを意味します
  • IDEは通常、作業している言語についてより意味的な知識を持ち、入力中に起こりうる問題を示すことができます。リファクタリングは、「検索置換」よりもはるかに強力です。

まだまだあります。試してみてください。

IDEは基本的に:

  • コード補完、リファクタリング、ドキュメント付きのエディター
  • デバッガー
  • ファイルシステムエクスプローラー
  • SCMSクライアント
  • ビルドツール

すべてを単一のパッケージに。

個別のツールまたは優れたプログラマブルエディターとEmacsなどの追加ツールを使用して、これらすべて(およびそれ以上)を使用できます(VimでもIDEbility IMOが少し劣ります)。

環境に統合できるユーティリティと次のユーティリティを頻繁に切り替える場合、またはここにリストされている機能の一部が欠けている(さらに完全に他の投稿にある)場合は、 IDE(またはマクロを追加するなどして、環境のIDE能力を向上させます)。複数のプログラムを使用して(上記の意味で)自分で「IDE」を構築した場合、実際のIDEに移行する必要はありません。

Eclipse:

コードをハイライト表示し、バックグラウンドでコンパイルし、作業中にエラーを指摘します。

ctrl-Spaceで変数名を提案するjavadocとの統合。

コンパイルすると、すぐにエラーが発生します。エラーをダブルクリックすると、適切な行が表示されます。

JUnitと本当にうまく統合されているので、ctrl-F11はテストを実行し、テストが失敗したことを教えてくれます。出力ウィンドウに例外がある場合、行をダブルクリックして、失敗した行に移動します。それだけでなく、ctrl-F11は、テストを実行する前にすべてが確実にコンパイルされるようにします(つまり、忘れることはありません)。

antとの統合。アプリケーションをビルドおよびデプロイする1つのコマンド。

Webサーバーのリモートデバッグを含む、デバッガーとの統合。

ファンタスティックリファクタリングツール。コードのセクションへの参照を検索します。変更の影響を知るのに役立ちます。

全体として、生産性が向上します。

それは間違いなく生産性の向上につながります。 LinuxアプリケーションをVista上のVisual Studioでコーディングし、Linux仮想マシンを使用してそれらをビルドするまでです。

関数またはメソッド呼び出しのすべての引数を記憶する必要はありません。入力を開始すると、IDEに必要な引数が表示されます。ウィザードを使用して、プロジェクトのプロパティ、コンパイラオプションなどを設定します。現在のドキュメントやフォルダー内のファイルだけでなく、プロジェクト全体で検索することができます。コンパイラエラーが発生した場合は、ダブルクリックすると問題のある行に移動します。

モデルエディター、外部データベースへの接続と参照、コード「スニペット」のコレクションの管理、GUIモデリングツールなどのツールの統合多くの時間を節約し、開発プロセスの流れをより効率的に保ちます。

私はEmacsを開発とメール/ニュースの両方の主要な環境として約10年間(1994-2004年)使用しました。 2004年にJavaの学習を余儀なくされたときにIDEの力を発見し、実際にIDEが好きだったことに驚いた( IntelliJ IDEA )。

それらの多くがすでにここで言及されているので、特定の理由には触れません-ただ、異なる人々が異なる機能を愛していることを覚えておいてください。私と同僚は同じIDEを使用しましたが、私たちは使用可能な機能のほんの一部を使用し、お互いのIDEの使用方法を嫌いました(しかし、私たちは両方ともIDE自体が好きでした)。

しかし、私が注目したいEmacs / Vim関連の環境よりもIDEには利点が1つあります。必要な機能のインストール/設定に費やす時間が少なくなります。

Wing IDE を使用して(Pythonの場合)15-20の開発を開始する準備ができましたインストール後数分。 Emacs / Vimで使用して実行する機能を取得するのに何時間かかるかはわかりません。 :)

人によって異なる理由があるかもしれません。私にとってこれらは利点です。

  1. プロジェクトに統合された感触を提供します。たとえば、私はすべての関連プロジェクトファイルを1つのビューに表示します。
  2. 次のようなコード生産性の向上を提供します
    1. 構文の強調表示
    2. アセンブリの参照
    3. インテリセンス
    4. データベースと関連UIファイルの集中ビュー。
    5. デバッグ機能

1日の終わりに、メモ帳やワードパッドでできるよりも速くコードを書くことができます。それがIDEを好むかなりの理由です。

IDEは、開発者が達成しようとしていることに応じて、「優れた」選択になります。

IDEは通常、1つ(または少数の選択)の言語を対象としているため、テキストエディターは「優れた」ものになります。

開発者がほとんどの時間を1つの言語、または1つのOSの関連言語(C#やT-SQLなど)の「クラスター」で過ごす場合、GUIの設計、デバッグ、インテリセンス、リファクタリングなど優れたIDEが提供するツールは非常に魅力的です。たとえば、ほとんどの時間をVB.NETで、おそらくWindows環境で少しのT-SQLで作業する場合、Visual Studioや同等のIDEを見ていないのはかなりばかげているでしょう。

IDEやテキストエディタを好む人たちに対する偏見はありません。どちらも非常に生産的で便利です。よく学習すれば

それは主に開発者の意識の範囲に関係していると思います。 IDEは、開発者の作業コンテキストの巨視的なビューを提供します。クラス階層、参照リソース、データベーススキーマ、SDKヘルプリファレンスなどを同時に表示できます。また、キーストロークの影響を受け、影響を与える非常に多くの要素、および拡大するアーキテクチャとアーキテクチャの交差点により、ますます困難になります。一度に1つのコードアイランドからのみ動作します。

OTOH、「just me and vim and the man pages」」私の仕事のはるかに無駄のない微視的-しかし、強烈で正確な-ビューを与えます。これは、1つの言語で構築された、うまく設計され、適切にパーティション化され、まばらに結合された非常にまとまりのあるコードベースと、動作する静的ライブラリのセットがあれば問題ありません。時間、距離、個人の好みに応じて。

現在、Flexと.NETのプロジェクトに取り組んでいます。 Flexの優れた点の1つは、データベースからデータを取得したり、ファイルを開いたり、閉じたり、読み書きしたりするなど、標準的なことを達成するためのさまざまな方法が少ないことです(まだFlex Builder / Eclipse IDEを使用しています) -VSのような典型的なヘビーウェイトの例。まだ基礎を学んでおり、トレーニングホイールが必要です。パターンに自信が持てば、vimに進化することを期待しています。いくつかのことを本当によく知って専門的に行う必要があります。

OTOH、.NETでそのポイントに到達することを想像することはできません。なぜなら、私が維持する予定のビューは拡大し、変化し続けるからです。概念的な整合性ははるかに低く、プロジェクトの開発者は数か月間にわたって一貫性がはるかに低くなりますが、IDEはそれをサポートします。そのため、開発者はさらに多くのことを適切に知る必要があります(より簡単にできる)。また、StackOverflowの質問のはるかに高い割合に回答する(または理解する)こともできます。つまりより深い知識スタックを持つことができます。さらに、さまざまなヘルプが必要な広告にも対応できます。

物事は両方向に行き過ぎます。たぶん「エディタのみ」でスコープは、「ハンマーしか持っていない場合、すべてが釘のように見える」ようなものです。 IDEアプローチでは、固定するものは何でも、幅広いファスナーと関連するツールから選択できます-ナル/ハンマー、ネジ/ドライバー、ボルト/レンチ、接着剤/接着剤/クランプ、磁石、など-すべてを指先で(開始を支援するウィザードを使用して)。

それを排他的なものと考えないでください。 IDEが提供する利点のためにIDEを使用し、深刻な焦点が必要な場合はvim /優先テキストエディターに切り替えます。

リファクタリング、ブラウジング、デバッグ、および何をするを理解するのにIDEが優れていると思います。その後、IDEで小さな作業を行い、大きな作業をvimに切り替えて作業を完了します。

他の答えに加えて、IDEの開発パワーとVimの編集パワーを ViPlugin Eclipse

IntelliSense 、統合デバッガー、および即時ウィンドウにより、生産性が大幅に向上しました( Visual  Studio  2008 )。すべてを指先で操作することで、コードを記述しながら、膨大なプロジェクトの大部分を頭の中に収めることができます。 MicrosoftはOSにボールを落とし続けますが、Visual Studioはこれまでに開発された最高の製品の1つです。

あなたが何を求めているのか分かりません。 "ではなくIDEを使用する必要があります... ''と尋ねますが、代替手段が何なのかわかりません- Vim とEmacsは、IDEが提供する多くの機能を果たします。彼らが処理しない唯一の側面は、より大きなIDEがUIデザイナーのようなものかもしれないということです。次に、あなたの質問は単純に「どのIDEを使用すべきか」に要約されます。 VimとEmacsのより単純な領域のために作成される引数を使用します。

私にとって、IDEはコード内のより高速なナビゲーションを可能にするため、IDEの方が優れています。 IDEを使用しない場合、目的地に到達するまでに時間がかかります。あなたの考えがより頻繁に混乱するかもしれません。より多くのクリック/より多くのキーを押す必要があることを意味します。 物事をどのように実装するかという考えにもっと集中する必要があります。 もちろん、物事を書き留めることもできますが、設計と実装の間をジャンプする必要があります。 また、GUIデザイナーは大きな違いをもたらします。手作業で行うと、時間がかかる場合があります。

Visual StudioやEclipseなどのGUIベースのIDEには、表示機能があるため、EmacsやvimなどのテキストベースのIDEよりもいくつかの利点があります。

  • WYSIWYGプレビューとGUIデザインのライブ編集
  • 効率的なプロパティエディター(たとえば、グラデーションストップの配置など、GUIパレットを使用した色の選択)
  • コードのアウトライン、ファイルの相互関係などのグラフィカルな描写
  • 画面の不動産をより効率的に使用して、ブレークポイント、ブックマーク、エラーなどを表示します
  • OSおよびその他のアプリケーションでのドラッグアンドドロップのサポートの改善
  • 図面、画像、3Dモデルなどの統合編集
  • データベースモデルの表示と編集

基本的にGUIベースのIDEを使用すると、画面上でより有用な情報を一度に取得でき、アプリケーションのグラフィカル部分をテキスト部分と同じくらい簡単に表示/編集できます。

開発者が経験する最もクールなことの1つは、一部のデータを計算するメソッドを編集し、アプリの実行時にユーザーに表示されるように、コードのライブ出力を別のウィンドウにグラフィカルに表示することです。これがWYSIWYG編集です!

EmacsやvimなどのテキストベースのIDEは、コード補完やリファクタリングなどの機能を長期にわたって追加できるため、長期的には主な制限はテキストベースの表示モデルです。

また、私はほとんどすべての開発にVimを使用しています(ほとんどemacsを学ぼうとしているためです)。 (もちろんGUIからの)まったくの直観性が、人々がIDEを使用したい主な理由だと思います。直感的であるため、ツールの学習オーバーヘッドはほとんどまたはまったく必要ありません。学習のオーバーヘッドが少ないほど、より多くの作業を完了できます。

IDE を使用すると、作業がより速く簡単になります。単純なテキストエディタでコード内を移動するのに多くの時間を費やします...

優れたIDEでは、IDEが関数、前の編集位置、変数へのジャンプをサポートしている場合、その時間は短くなります。また、優れたIDEは、異なる言語の機能やプロジェクトを最初から試す時間を短縮します起動時間は短い場合があります。

IDEを使用することで考えられるいくつかの理由:

  • 統合ヘルプがお気に入りです。
  • Visual Studioのプレビュー機能を備えた組み込みのリファクタリング
  • IntelliSense 、構文ハイライト、大規模プロジェクトのナビゲーションの容易さ、統合デバッグ、など(アドインを使用すると、おそらく Emacs および< a href = "http://en.wikipedia.org/wiki/Vim_%28text_editor%29" rel = "nofollow noreferrer"> Vim )。
  • また、最近のIDEのユーザーベースは広く、おそらくそれらのアドインを開発する人も多いと思いますが、私は間違っているかもしれません。

そして率直に言って、私はマウスが好きです。純粋なテキストベースのエディタを使用すると、孤独になります。

開発の時間を節約
統合デバッグ、インテリセンスなどの機能を提供することにより、生活を楽にします。

多数ありますが、使用することをお勧めします。それらは明らかです。

テキストエディタとIDEの間に明確な境界線があるかどうかはわかりません。スケールの一方の端にメモ帳のようなものがあり、もう一方の端に最新のIDEがありますが、その間に多くのものがあります。ほとんどのテキストエディターには構文の強調表示があります。プログラマー向けのエディターは、多くの場合、簡単なコードナビゲーションやオートコンプリートなど、さまざまな機能を備えています。 Emacsでは、デバッガーを統合することもできます。 10年前のIDEでも、最近の本格的なテキストエディタに期待するよりも、プログラマを支援する機能がはるかに少なかった。

コードを使用する主な理由は、コードが100ファイルを超える場合です。

ctagsは機能しますが、一部のIDE は、ファイルを簡単に超高速でナビゲートします。

多くの作業が必要な場合、時間を節約できます。

私にとっては、端末の古き良き時代にやったことすべてのGUIバージョンです。 IDEは、特にリンク関連の多くのものを隠すため、IDEがあまり優れていないことに常に同意しますが、Qtなどの特定の開発プラットフォームでは、いくつかの場合に顕著な利点があります。

他のビジュアルのようなIDEの中には、入力中にコードを解析し、コンパイルする前にエラーを検出するように見えるものもあります.IDEだけがコンパイラと密接に連携して、入力されたソースの問題をすぐに検出できるというロジックのようです

IDE /コマンドラインフレームウォーが存在するという私のワイルドな答えは、D言語とは異なり、C / C ++実行可能ビルドが標準化された観点からあまりうまく処理されていないからです。すべてのプラットフォームがコンパイル/リンク/などを独自の方法で処理するため、面倒を少なくするためにIDEを作成します。

コマンドラインを使用する方が簡単かもしれません。標準オプションを備えたコンパイラが1つしかない場合は簡単でしたが、実際にはC / C ++は柔軟であるため、最終的には、すべてのプラットフォームが独自の方法で行うため、IDEはその方法の説明を無駄にしないようにします。

実行可能ファイルがカーネルとどのように通信するかを学習できる場合、またはコンパイラの設計について何か知っている場合は、適切なコマンドラインを使用する方法があるかもしれませんが、あなたが持っているとは思えません。

MicrosoftまたはAppleは、彼らが悪であるすべての悪事を、詳細を入力せずにアプリケーションを構築するための簡単な方法を提案しなければなりません。アプリケーションの構築はOSのアーキテクチャに直接依存するため、ほとんど&quot;標準&quot;コマンドラインはそのままです。

シンプルで、大きく、複雑なアプリケーションで、あまり深く掘り下げたくない場合-&gt; IDE、ソフトウェアの小さな断片、または単純なシステムソフトウェア設計-&gt;コマンドライン。もちろん、Makefileを埋め込んだ気の利いたライブラリを除きますが、それは別の話です。

また、配信されたアプリケーションが何らかの皮肉なことにGUIまたはインターフェイスを持っているか、OSに直接バインドされている場合にIDEが使用されると思うので、やはり、UI / GUIの仕組みを知らなくても、システムをプログラミングする人はすべて必要というわけではありません。

IDEは単なる最新版ですが、100年後もコマンドラインはまだ存在していると思います。

IDEは、多くの機能を指先で操作できるため、気に入っています。プロジェクト内のファイルの編集/コンパイル/可視性は、IDEで私が大切にしていることです。今はVisual Studioを使用していますが、以前はSlickEditを使用しており、使用していないときよりも開発プロセスが合理化されていることがわかりました。

IDEを使用するかどうかを決定する際に考慮すべきことは1つだけです。それが生産性を高めるかどうかです。

短い質問なので短い答え:)

それは、あなたが何をしていて、どの言語でそれをしているのかに大きく依存します。個人的に、私はIDEを使わない傾向があります(または&quot;私のIDEはvimを実行する3つのxterm、私の仕事の大部分について「IDE」をどの程度広く定義するかに応じて、bashプロンプトまたはログの末尾」を使用しますが、プラットフォーム固有のGUIを開発していることに気付いた場合は、言語に適したIDEをすぐに-IMO、IDE、およびグラフィカルフォーム編集は、相互に明確に行われます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top