統合開発環境

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

Anjutaは、 GNOMEデスクトップ環境でのCおよびC ++プログラミング用のIDEです。

統合開発環境IDE)は、ソフトウェア開発ための包括的な機能をコンピュータープログラマーに提供するソフトウェアアプリケーションですIDEは通常、少なくともソースコードエディタビルド自動化ツール、およびデバッガで構成されています。NetBeansEclipseなどの一部のIDEには、必要なコンパイラインタプリタ、またはその両方が含まれています。SharpDevelopLazarusなどの他のものはそうではありません。

IDEとより広範なソフトウェア開発環境の他の部分との間の境界は明確に定義されていません。グラフィカルユーザーインターフェイス(GUI)の構築を簡素化するためのバージョン管理システムまたはさまざまなツールが統合されている場合があります。最近の多くのIDEには、オブジェクト指向ソフトウェア開発で使用するためのクラスブラウザオブジェクトブラウザ、およびクラス階層図もあります。

概要

統合されたオートコンプリートと外部プラグインを介したリンティングを備えたVim

統合開発環境は、同様のユーザーインターフェイスを備えた緊密なコンポーネントを提供することにより、プログラマーの生産性を最大化するように設計されていますIDEは、すべての開発が行われる単一のプログラムを提供します。このプログラムは通常、ソフトウェアのオーサリング、変更、コンパイル、デプロイ、およびデバッグのための多くの機能を提供します。これは、 viGDBGCCmakeなどの無関係なツールを使用したソフトウェア開発とは対照的です。

IDEの目的の1つは、複数の開発ユーティリティをまとめるために必要な構成を減らすことです。代わりに、1つのまとまりのあるユニットと同じ機能セットを提供します。セットアップ時間を短縮すると、開発者の生産性を向上させることができます。特に、IDEの使用方法を学習する方が、個々のツールをすべて手動で統合して学習するよりも速い場合に役立ちます。すべての開発タスクをより緊密に統合することで、セットアップタスクを支援するだけでなく、全体的な生産性を向上させることができます。たとえば、コードは編集中に継続的に解析できるため、構文エラーが発生したときに即座にフィードバックが提供されるため、開発者はIDEを使用してコードをはるかに高速かつ簡単にデバッグできます。

一部のIDEは特定のプログラミング言語専用であり、その言語のプログラミングパラダイムに最も近い機能セットを使用できます。ただし、複数言語のIDEは多数あります。

最新のIDEのほとんどはグラフィカルですが、Turbo PascalなどのテキストベースのIDEは、 MicrosoftWindowsXWindow System(X11)などのウィンドウシステムが利用可能になる前に広く使用されていました。通常、ファンクションキーまたはホットキーを使用して、頻繁に使用されるコマンドまたはマクロを実行します。

歴史

GNU Emacs 、 UnixライクなシステムでIDEとして一般的に使用される拡張可能なエディター

IDEは当初、コンソールまたは端末を介して開発するときに可能になりましたプログラムはフローチャートを使用して作成され、パンチカード(または紙テープなど)を使用してプログラムを入力してからコンパイラに送信するため、初期のシステムではサポートできませんでした。Dartmouth BASICは、IDEで作成された最初の言語でした(また、コンソールまたは端末の前に座って使用するために設計された最初の言語でもありました)。[要出典]そのIDE(Dartmouth Time Sharing Systemの一部)はコマンドベースであったため、の出現後に人気のあるメニュー方式のグラフィカルIDEとはあまり似ていませんでした。グラフィカルユーザーインターフェイスただし、最新のIDEと一貫した方法で、編集、ファイル管理、コンパイル、デバッグ、および実行を統合しました。

Maestro Iは、Softlab Munichの製品であり、ソフトウェアの世界初の統合開発環境[1]でした。Maestro Iは、世界中の22,000人のプログラマーのためにインストールされました。1989年まで、ドイツ連邦共和国には6,000の施設がありました。マエストロは、1970年代から1980年代にかけて、間違いなくこの分野の世界的リーダーでした。今日、私が最後のマエストロの1つは、テキサス州アーリントンの情報技術博物館にあります。

プラグインの概念を備えた最初のIDEの1つは、Softbenchでした。1995年、 Computerwocheは、IDEの使用は開発者の創造性を損なうため、開発者にあまり受け入れられなかったとコメントしました。

2021年1月の時点で、ダウンロードページが最も一般的に検索される3つのIDEは、Visual StudioEclipse、およびAndroidStudioです。[2]

トピック

構文の強調表示

IDEエディターは通常、構文の強調表示を提供し、構造、言語キーワード、および構文エラーの両方を視覚的に異なる色とフォント効果で表示できます。[3]

コード補完

コード補完は、プログラミングを高速化することを目的とした重要なIDE機能です。最新のIDEには、インテリジェントなコード補完もあります。

リファクタリング

高度なIDEは、自動リファクタリングのサポートを提供します[3]

バージョン管理

IDEは、ソースリポジトリと対話するために、統合されたバージョン管理を提供することが期待されています。[3]

デバッグ

IDEは、統合デバッガーを使用したデバッグにも使用され、エディターでのブレークポイントの設定、ステップの視覚的レンダリングなどをサポートします。[4]

コード検索

IDEは、コード検索のサポートを提供する場合があります。コード検索には2つの異なる意味があります。まず、クラスと関数の宣言、使用法、変数とフィールドの読み取り/書き込みなどを検索することを意味します。IDEは、フォームベースのウィジェット[5]や自然言語ベースのインターフェイスなど、さまざまな種類のユーザーインターフェイスをコード検索に使用できます。[6] 第二に、それはいくつかの指定された機能の具体的な実装を探すことを意味します。これは、形式的[7]またはニューラル[8]の両方の手法で実行できます。

ビジュアルプログラミング

ビジュアルプログラミングは、IDEが一般的に必要とされる使用シナリオです。Visual Basicを使用すると、ユーザーはプログラミング、ビルディングブロック、またはコードノードを移動してフローチャートや構造図を作成し、コンパイルまたは解釈することで、新しいアプリケーションを作成できます。これらのフローチャートは、多くの場合、統一モデリング言語に基づいています。

このインターフェースはレゴマインドストームシステムで普及しており、 Mozillaにあるようなカスタムブラウザのパワーを活用したいと考えている多くの企業によって積極的に閲覧されています。KTechlabはフローコードをサポートし、マイクロコントローラー用のソフトウェアを開発するための人気のあるオープンソースIDEおよびシミュレーターです。ビジュアルプログラミングは、分散プログラミングの能力にも責任がありますLabVIEWおよびEICASLABソフトウェアを参照)。初期のビジュアルプログラミングシステムであるMaxは、アナログシンセサイザーの設計をモデルにしており、1980年代からリアルタイムの音楽パフォーマンスソフトウェアの開発に使用されてきました。別の初期の例はPrographは、もともとMacintosh用に開発されたデータフローベースのシステムです。グラフィカルプログラミング環境「Grape」は、qfixロボットキットのプログラミングに使用されます。

このアプローチは、Openlabなどの特殊なソフトウェアでも使用されます。このソフトウェアでは、エンドユーザーは、従来の学習曲線を使用せずに、完全なプログラミング言語の柔軟性を求めています。

言語サポート

CEmacsLispに基づくGNUEmacsなど、一部のIDEは複数の言語をサポートしています。IntelliJ IDEAEclipseMyEclipse、またはNetBeans 、 Javaに基づく; MonoDevelop 、 C#に基づく; またはPlayCode。

代替言語のサポートはプラグインによって提供されることが多く、プラグインを同じIDEに同時にインストールできます。たとえば、Flycheckは、 39言語をサポートするGNU Emacs24の最新のオンザフライ構文チェック拡張機能です。[9] Eclipse、およびNetbeansには、 C / C ++AdaGNAT(たとえば、AdaGIDE)、PerlPythonRuby、およびPHPのプラグインがあり、ファイル拡張子、環境、またはプロジェクト設定に基づいて自動的に選択されます。

さまざまなコンピューティングプラットフォームにわたる態度

Unixプログラマーは、コマンドライン POSIXツールを組み合わせて、 Linuxカーネルやその環境などの大規模なプログラムを開発できる完全な開発環境にすることができます。[10]この意味で、Unixシステム全体がIDEとして機能します。[11]フリーソフトウェアGNUツール(GNUコンパイラコレクション(GCC)、GNUデバッガ(GDB)、およびGNU make)は、Windowsを含む多くのプラットフォームで利用できます。[12] 「すべてがテキストストリームである」というUnix哲学が普及しているため、コマンドラインを好む開発者はEmacs [13] [14] [15]VimなどのプログラムでIDEを構築する、標準のUnixおよびGNUビルドツールの多くをサポートするエディターを使用するための指向ツール Data Display Debuggerは、多くのテキストベースのデバッガ標準ツールの高度なグラフィカルフロントエンドとなることを目的としています。一部のプログラマーは、完全なIDEに含まれている同様のコード構築ツールよりもmakefileとその派生物を管理することを好みます。たとえば、PostgreSQLデータベースへのほとんどの貢献者は、 makeGDBを直接使用して新しい機能を開発しています。[16] PostgreSQLを構築する場合でもVisual C ++を使用するMicrosoftWindowsPerlスクリプトは、IDE機能に依存するのではなく、makeの代わりに使用されます。[17] Geanyなどの一部のLinuxIDEは、従来のビルド操作にグラフィカルなフロントエンドを提供しようとします。

さまざまなMicrosoftWindowsプラットフォームでは、開発用のコマンドラインツールはめったに使用されません。したがって、多くの商用および非商用製品があります。ただし、それぞれに異なる設計があり、一般的に非互換性が生じます。Windows用のほとんどの主要なコンパイラベンダーは、 MicrosoftVisual C ++Platform SDK.NET Framework SDK、nmakeユーティリティ) を含むコマンドラインツールの無料コピーを提供しています。

IDEは、1980年代半ばのMacintosh Programmer's WorkshopTurbo Pascal、THINK Pascal、THINK C環境にまでさかのぼり、 AppleMacintoshのクラシックMacOSおよびmacOSで常に人気があります。現在、macOSプログラマーは、XcodeなどのネイティブIDEと、 EclipseNetbeansなどのオープンソースツールのどちらかを選択できますActiveState Komodoは、macOSでサポートされている独自の多言語IDEです。

人工知能

IDEの一部の機能は、 AIの進歩から恩恵を受けることができます[18]特に、IDE機能を強化するために、開発者全体のIDEアクションから情報を収集できます。[19]たとえば、コード補完へのデータ駆動型アプローチは、インテリジェントなコード補完をもたらします

Web統合開発環境

オンラインIDEまたはクラウドIDEとも呼ばれるWeb統合開発環境(Web IDE)ソフトウェア開発またはWeb開発を可能にするブラウザーベースのIDEです。[20] WebブラウザからWebIDEにアクセスできるため、ポータブルな作業環境が可能になります。Web IDEには通常、従来のIDEまたはデスクトップIDEと同じ機能がすべて含まれているわけではありませんが、構文の強調表示などの基本的なIDE機能はすべて含まれています。

も参照してください

参考文献

  1. ^ Computerwocheドイツ語「InteraktivesProgrammieren alsSystems-Schlager」
  2. ^ 「TOPIDEトップ統合開発環境インデックス」pypl.github.io
  3. ^ a bc 「コースCS350 統合開発環境」cs.odu.eduオールドドミニオン大学2018年10月10日取得
  4. ^ 「プログラミングソフトウェアとIDE」BBCBitesize 2018年10月10日取得
  5. ^ 「Eclipseクックブック-コードの検索」オライリー
  6. ^ キミグ、マルクス; モンペラス、マーティン; メジーニ、ミラ(2011)。「自然言語によるソースコードのクエリ」2011第26回自動ソフトウェアエンジニアリングに関するIEEE / ACM国際会議(ASE 2011)pp。376–379。arXiv1205.6361土井10.1109 /ASE.2011.6100076ISBN 978-1-4577-1639-3S2CID6898947 _
  7. ^ Stolee、Kathryn T。; エルバウム、セバスチャン; Dobos、Daniel(2014)。「ソースコードの検索を解決する」ソフトウェアエンジニアリングと方法論に関するACMトランザクション23(3):1–45。土井10.1145 / 2581377ISSN1049-331X_ 
  8. ^ Gu、Jian; チェン、ジミン; モンペラス、マーティン(2021年)。「ニューラルコード検索のためのマルチモーダル表現」2021 IEEE International Conference on Software Maintenance and Evolution(ICSME)ルクセンブルク:IEEE:483–494。土井10.1109 /ICSME52107.2021.00049ISBN 978-1-6654-2882-8
  9. ^ 「はじめに-Flycheck0.18-cvs」ドキュメントを読んでください2014年3月10日にオリジナルからアーカイブされました2014年3月10日取得
  10. ^ レーマン、クリストファーポール、クリストファーR.ポール。「Linux開発プラットフォーム:完全なプログラミング環境の構成、使用、および保守」。2002. ISBN 0-13-009115-4 
  11. ^ 「UnixIsAnIde」
  12. ^ "「MicrosoftVisualC ++でEmacsを使用する... IDEとしてEmacsを使用する」"2013年7月4日にオリジナルからアーカイブされました。
  13. ^ 「Emacs:フリーソフトウェアIDE | Linuxジャーナル」www.linuxjournal.com
  14. ^ 「一般的なLispクックブック-LispIDEとしてのEmacsの使用」cl-cookbook.sourceforge.net
  15. ^ 「PerlIDEとしてのEmacs」obsidianrook.com
  16. ^ PostgreSQL「開発者向けFAQ-PostgreSQLwiki」wiki.postgresql.org {{cite web}}:値を確認|url=する(ヘルプ
  17. ^ 「第18章Windowsへのソースコードからのインストール」PostgreSQLドキュメント2021年9月29日。
  18. ^ ウィリアムズ、クリスティーナマーサー&ハンナ。「すべての開発者が試す必要のあるAIツール」Techworld
  19. ^ Bruch、Marcel; ボッデン、エリック; モンペラス、マーティン; メジーニ、ミラ(2010年11月7日)。IDE 2.0:ソフトウェア開発における集合的インテリジェンスFoSER'10。pp。53–58。土井10.1145 /1882362.1882374ISBN 9781450304276S2CID7637561 _
  20. ^ 「Webベースのツールとデスクトップベースのツール–EclipseSource」eclipsesource.com2018年6月19日。