エディターかIDEか? 別の分析の試み

この論争の的になるトピックをもう一度取り上げたいと思います。



私がプログラミングに携わり始めて以来、この質問は私を悩ませており、フォーラムやHabréに関する多くのトピックは明確にされていません。 加えて、一方と他方に対するいくつかの議論が与えられなかったように思えます。 そして、与えられたものは誤って優先順位付けされており、コンテキストが欠落しています。



記事では、この省略を修正し、「」にいくつかのポイントを付けようとします。



完璧なツールの検索に参加することを皆に勧めます。



私の経験について



私はDOSでプログラミングを始めました。 Turbo Pascalで。 さらに、何らかの理由で、デバッグにのみIDEを使用しましたが、これは非常にまれです。 コードを書くために、彼らはVolkov Commanderと組み合わせて、構文を強調せずに名前のないedit.exeを使用することを好みました。 そしてそれで十分でした。 同じように、後でアセンブラーに取り組み、一部はC ++に取り組みました。



C ++の学習を続けながら、Windowsに切り替え、それに応じてVisual Studioに切り替えました。 間違っていなければ、5〜7のバージョンを見つけました。簡単なエディターを使用した後、コード生成とオートコンプリートは大喜びでした。 確かに、この生成されたすべての良いものを整理することはほとんど不可能でしたが、それは重要ではないようでした。



しばらくして、Linuxに移行し、phpでWeb開発を開始しました。 ここでは、vimを並行して研究し、開発にZendStudioを使用しました。 ある時点で、私はすべてにVimだけを使い始めました-多数のマニュアルに従って、それを小さな理想に変えました。 その中で、彼は最初のサイクリングCMSをphpで作成しました。



その前は、プログラミングが私の活動の主要なタイプではなかったことに注意してください。 はい、仕事用のさまざまな小さなユーティリティを作成し、WordPressのテーマを作成しましたが、主な活動は管理でした。



専門的に開発を開始するとすぐに、vimの機能は十分ではなくなりました。 最初に日食があり、次にネットビーンズがあり、現在はphpstormです。



過去半年間、私は英雄的にemacsをマスターしようとしています。 主な作業環境として。



それで、私は比較するものがあり、私の意見が合理的に根拠があることを望みます。



IDE? IDE ...



私は長い間、どのような形で当事者の長所と短所を比較するかを考えました。 このリストはあまり適していません。なぜなら、 単純なリストは問題の本質を完全には反映していません。 エディターとIDEは反対ではありませんが、特定の領域で範囲が重複するツールです。 エディターの利点は、常に環境の欠点とは言えません。 このため、このトピックに関する多かれ少なかれ構造化された議論が続けられています。



おそらく、エディターの議論の余地のない利点の1つから始めましょう。テキストを操作するための豊富な可能性と、キーボードから手を離さずにすべてを実行できる機能です。 ほとんどの場合、環境はその方法を知りません。 しかし、コードを書くときにそのような必要性はありますか? 記事や手紙を書くときは、キーを1回クリックするだけで2つの単語を入れ替えたり、段落をページの上に移動したりすると便利だと思います。 しかし、プログラムのテキストでは、これはほとんどの場合、無意味であり、リファクタリングが必要です。 そして、指に敏感なキーボードショートカットemacを使用するか、vimで頭を悩ますようなコマンドで支払う必要があります。 しかし、これはすべて覚えておく必要があります! ウィンドウを移動したり、ウィンドウのサイズを変更したりするなど、マウスを1回動かすだけで簡単に解決できることは、クエスト全体になります。 はい、マウスでテキストを選択するのはさらに簡単です。より正確に、より速く、テキスト内の適切な場所にある単語の数を数える必要があります。 いいえ、プログラマーこれらの機能にも役立つ可能性がありますが、実際には、コードの実際の編集に費やす時間はごくわずかであるため、実際には時間のメリットはありません。 しかし、楽器の重大な合併症は明らかです。



プログラマーは、コードの理解と作成に時間の80%を費やしています。 さらに、動きはコードによるものであり、テキストによるものではありません! そしてここで、編集者はまったく何もせずに彼を助けることはできません。 ツールチップのメソッドパラメータのリストは表示されず、メソッドの定義に移動しても許可されず、構文は制御されません。 IDEは、最も単純なものであっても、これを簡単かつエレガントに処理します。 最近、emacsのsilversearcherを使用して、プロジェクトの1つのメソッドの定義を検索するのに10分ほど費やしました。 クラスは別のモジュールなどで定義されていることが判明しました。 マウスを1回クリックする代わりに、10分間! もちろん私はemacsなので、十分な経験がないので、5分、さらには1分にしましょう。 しかし、それでも比率は印象的です。



そして、ここでIDEは、おそらく唯一の、しかし非常に大胆なプラスを示しています-パーサープログラミング言語の存在です。 環境は、コードを編集していることを「理解」します。 エディターはそうではありません。 そして、これはオートコンプリート、ナビゲーション、構文の強調表示、そして時にはセマンティックエラーです。 それはやり過ぎ、心地よいささいなこと、甘やかすようです。 しかし、プロジェクトのサイズが特定の制限を超えた後、それは必要になります。 そして、膨大な現代のフレームワークを考慮に入れて-この制限はほとんどすぐに来ます。



はい、1ダースのファイルと数千行のプロジェクトでは、このプラスはすべての栄光に現れません。 エディターも同じ自動補完を実行できますが、意味のないオプションを除外することはありません。 プロジェクトのサイズが10万行に近づき、ライブラリ以外の数千のファイルで構成されている場合、変数の名前、他のクラスのメソッド、コメントの単語からハッシュから適切な名前を選択することは困難になります(vim知りません、多分彼らはそれを修正しました)。 インテリジェントプロンプトにより、必要な機能とそのパラメーターの名前を覚えておく必要がなくなります。 多くの場合、これは単に物理的に不可能です。



プロジェクトといえば。 すべてのIDEにはこの概念があります。 設定、リソースが添付され、検索などが可能です。 エディタでは、これはせいぜいオープンなファイルシステムディレクトリです。 時々もう少し。



エディターでのデバッガーとの統合も、多くの要望があります。 単体テスト、ある程度のログ記録は状況を保存しますが、デバッガーがない場合もあります。



最近のエディターでは、これらの機能の多くが既に実装されており、最も洗練されたIDEに決して劣っていないことに反対する人がいるかもしれません。 私は同意しません。 まず、本格的な実装はありません。 正常に機能しません。 第二に、これらすべてのインストールはすでにかなり複雑なタスクです。 はい、エディタの内部機能の設定でさえ、すでに重要です。 同じemacsで行番号付けを有効にしてみてください! さらに、多くの場合、目的の機能は多数のプラグインによって実装されますが、相互にどのように相互作用するかは不明です。 また、多くの場合、常に互換性がなく、奇妙に調整されているなどとは限らない12個のバージョンとブランチもあります。 もちろん、1か月を費やして、すべてを構成およびインストールできます(多くの愛好家でもあります)が、これはエディターをIDEレベルに近づけるだけです。 たとえば、同じプロジェクトに戻りましょう-vimでProjectを試し、emacsといくつかのプラグインでprojectileを試しました。 Projectがまだ多少要件を満たしている場合(最新バージョンではバグのためにプロジェクトを作成できませんでしたが)、発射物は非常に否定的な印象を残しました。



それでも、編集者には、少なくとも開発環境との競争に値するいくつかの応用分野があります。



第一に、彼らは小さなプロジェクトで自分自身をより良く見せます。 プロジェクトを10〜20個のファイルで処理するためにIDEプロセッサをロードすることは意味がありません。 エディターで3〜4行を修正する方が簡単です。



次に、特定の領域では、IDEのすべての利点が平準化されます。 たとえば、Linuxの低レベル開発。 私はこれをしませんでしたが、コード構造と開発者の好み(約70%はemacsとクローン、25%はvim、5%はjedのような異国情緒)で判断すると、IDEとは何の関係もありません。 作業を行うために必要なすべてのコードは、通常1つまたは2つのファイルに収集され、プロジェクト全体内でジャンプする必要はありません。 また、ほぼ同じ名前の12個または2個の関数から選択する場合、自動補完はあまり役に立ちません。



第三に、エディターはコードだけでなく動作することができます。 csvまたはxmlファイルを使用する場合、すべての機能を使用できます。 または、記事や手紙など、時には必要な何か。 また、再学習したり、便利なプログラムを探したり、ホットキーを覚えたりする必要はありません。すべてが手元にあり、すべてが同じです。



第4に、健全なIDEがない言語を扱う機能。 ルビーは同じルビーではあまり役に立たなかったとしましょう。 SublimeTextで十分であることが判明しました。 私は大規模なrubyプロジェクトを扱っていませんでしたが、おそらくIDEがそこに表示されるでしょう。



そして第五に、悪名高い拡張の可能性。 優れたプラグインにより、エディターは非常に便利になります! 加えて、メイン楽器の継続的なチューニングの具体的な喜びと、それを完全にコントロールできるという感覚は非常に価値があります。



合計



IDEはあまり好きではありませんが、前のテキストではそう思われるかもしれません。 それらはかなり怪物で、多くの不要な機能があり、低速でリソースを大量に消費すると思います。 そしてそれらの最高のものは非常に高価です。 さらに、IDEの使用はリラックスして拘束力があることがわかりました。 エディターはそれぞれ反対です。 さらに、自分で調整できる可用性と機能。 少なくともvimとemacs。 最後に、私はそれらが好きです。 この記事は、例えば、Emacsで書いています。



ただし、業界(および上司)は独自の要件を規定しています。 IDEを使用しない場合、パフォーマンスが大幅に低下します。 しかし、1万行のコードで欠落しているコンマを検索するのに30分を与える人はいません。 これらはすべて自動的に行われ、自動的に修正されます。 また、ツールを使用せずにコードを探し回るのが好きなこともありますが、職場では時間の無駄です。



すべての試行錯誤の後、私はこの結論を下しました-エディター開発に使用できますが、一定の制限があるとIDEと比較することができず、あなたが支払うものにエディターを使用することは許されない贅沢です。 はい、適切な開発手法を使用し、コードを正しく設計/文書化し、標準に従っている場合、エディターの固有の欠陥を滑らかにすることができます。 しかし、私たちは理想的な世界に住んでいないので、私たちの欲求に関係なく、IDEの使用は必要です。



All Articles