
| シリーズの一部 |
| ソフトウェア開発 |
|---|
統合開発環境(IDE)は、ソフトウェア開発のための比較的包括的な機能セットを提供するソフトウェアです。IDEは、 vi、GDB、GCC、makeなどの個別のツールを使用するのではなく、一貫したユーザーエクスペリエンスで開発機能を提供することで、生産性を向上させることを目的としています。
IDE は通常、少なくとも、ソースコード編集、ソース管理、ビルド自動化、デバッグをサポートします。 IDE には、コンパイラ、ランタイム環境、バージョン管理システムなどの統合ツールのサポートが含まれる場合もありますが、そのようなツールは IDE にバンドルされている場合もあります。 一部の IDE は、グラフィカル ユーザー インターフェイス(GUI) を構築するための特別なサポートを提供します。 多くの IDE は、クラス ブラウザーやオブジェクト ブラウザーなどの機能を通じてオブジェクト指向プログラミングをサポートします。 通常、IDE は 1 つ以上のプログラミング言語に対して特別なサポートを提供し、言語に合わせた機能を可能にします。 一部の IDE は、追加の言語をサポートするように拡張できます。
一部のIDEはアプリケーションとして実装されていますが、一部のIDEはライブラリとして実装されており、多くの場合、特定のソフトウェアプラットフォーム向けに設計されています。例えば、EclipseはIDEエクスペリエンスを提供するプラグインが多数存在するプラットフォームですが、コアアプリケーションにはそのようなプラグインはありません。[ a ]
現代のIDEはGUIを提供していますが、WindowsやX Window System(X11)のようなウィンドウシステムが利用可能になる前からIDEは存在していました。例えば、DOS用のTurbo Pascalは、フルスクリーンのテキストベースのユーザーエクスペリエンスを提供していました。
歴史
IDE は当初、コンソールまたはターミナル経由で開発を行う際に可能になりました。初期のシステムでは、プログラムがパンチカードや紙テープなどを経由してコンパイラやアセンブラに送信されていたため、IDE をサポートできませんでした。Dartmouth BASIC はIDE で作成された最初の言語でした (また、コンソールやターミナルの前に座って使用するために設計された最初の言語でもありました)。その IDE ( Dartmouth Time-Sharing Systemの一部) はコマンドベースであったため、グラフィカル ユーザー インターフェイスの登場後に人気を博したメニュー駆動型のグラフィカル IDE とは似ても似つきません。ただし、編集、ファイル管理、コンパイル、デバッグ、実行の各機能が、現代の IDE と一貫性のある方法で統合されていました。
Maestro IはミュンヘンのSoftlab社が開発した世界初のソフトウェア統合開発環境[ 1 ]です。Maestro Iは世界中で22,000人のプログラマーに導入され、1989年までにドイツ連邦共和国だけで6,000台が導入されました。Maestroは1970年代から1980年代にかけて、この分野における世界的リーダーであったと言えるでしょう。現在、最後のMaestro Iの1台がテキサス州アーリントンの情報技術博物館に展示されています。
プラグインコンセプトを採用した最初のIDEの一つはSoftbenchでした。1995年、Computerwoche誌は、IDEの使用は開発者の創造性を制限するため、あまり受け入れられていないと評しました。
2023年8月現在、Google検索で最も多く検索されたIDEはVisual Studio、Visual Studio Code、Eclipseでした。[ 2 ]
特徴
IDE によく見られる機能は次のとおりです。
- 言語サポート
- GNU Emacs、IntelliJ IDEA、Eclipse、MyEclipse、NetBeans、MonoDevelop、JDoodle、PlayCodeなど、一部のIDEは複数の言語をサポートしています。代替言語のサポートはプラグインによって提供されることが多く、同じIDEに同時にインストールできます。たとえば、Flycheckは、 39の言語をサポートするGNU Emacs 24用の最新のオンザフライ構文チェック拡張機能です。 [ 3 ]もう1つの例は、88の言語をサポートするオンラインクラウドベースのIDEであるJDoodleです。[ 4 ] EclipseとNetbeansには、 C / C++、Ada、GNAT(たとえばAdaGIDE)、Perl、Python、Ruby、PHP用のプラグインがあり、ファイル拡張子、環境、またはプロジェクト設定に基づいて自動的に選択されます。
- 構文の強調表示
- ソースコード編集機能には通常、構文の強調表示が含まれており、構造、言語キーワード、構文エラーを視覚的に異なる色とフォント効果で表示できます。[ 5 ]
- 継続的な構文チェック
- コード構文は編集中に継続的に検証でき、ビルドが実行されるまで開発者が待つのではなく、エラーが導入されたときにエラーを提供できます。
- コード検索
- IDEは、クラスや関数の宣言、使用箇所、変数やフィールドの読み書きなどの検索をサポートする場合があります。IDEは、コード検索のために、フォームベースのウィジェット[ 6 ]や自然言語ベースのインターフェースなど、さまざまな種類のユーザーインターフェースを使用できます。IDEは、宣言の実装の検索もサポートする場合があります。[ 7 ]
- コード補完
- リファクタリング[ 5 ]
- バージョン管理[ 5 ]
- 簡素化された構成
- IDEの典型的な目的の一つは、複数の開発ユーティリティを統合するために必要な設定作業を削減することです。IDEは、統一された設定環境を提供することでセットアップ時間を短縮し、生産性を向上させることができます。特に、複数のツールを統合して習得するよりも、IDEの使い方を習得する方が早い場合などに有効です。
- デバッグ
- デバッグサポートには通常、エディタでのブレークポイントの設定、ステップの視覚的なレンダリングなどが含まれます。[ 8 ]
- ビジュアルプログラミング
- Visual Basicでは、プログラミング、ビルディングブロック、またはコードノードを移動してフローチャートや構造図を作成し、コンパイルまたは解釈することでアプリケーションを設計できます。これらのフローチャートは、多くの場合、統一モデリング言語(Unified Modeling Language)に基づいています。
- このインタフェースは、レゴ マインドストームシステムで普及し、 Mozillaのようなカスタム ブラウザの威力を活用したいと考える多くの企業で積極的に採用されています。KTechlabはフローコードをサポートしており、マイクロコントローラ用ソフトウェアの開発に人気の高いオープンソース IDE およびシミュレータです。ビジュアル プログラミングは、分散プログラミングの威力も担っています( LabVIEWおよび EICASLAB ソフトウェアを参照)。初期のビジュアル プログラミング システムであるMaxは、アナログシンセサイザーの設計をモデルにしており、1980 年代からリアルタイム音楽演奏ソフトウェアの開発に使用されています。もう 1 つの初期の例としては、もともとMacintosh用に開発されたデータフローベースのシステムであるPrographがあります。グラフィカル プログラミング環境「GRAPE 」は、 qfix ロボット キットのプログラミングに使用されます。
- このアプローチは、Openlab などの専門的なソフトウェアでも使用されています。Openlab では、エンド ユーザーは、従来のプログラミング言語に伴う学習曲線なしで、完全なプログラミング言語の柔軟性を求めています。
使用
IDEは長年にわたり、そして今日でもなお、Unix系環境よりもWindows環境で広く使用されています。注目すべき例外はAppleプラットフォームです。IDEは、1980年代半ばのMacintosh Programmer's Workshop、Turbo Pascal、THINK Pascal、THINK C環境にまで遡る、クラシックMac OSおよびmacOSで人気を博してきました。現在、macOSプログラマーは、 XcodeなどのネイティブIDEと、 Eclipse、Netbeans、ActiveState Komodoなどのサードパーティ製ツールのどちらかを選択できます。


IDEの代わりに、Unix系環境向けのソフトウェア開発では、多くの場合、GNUツールチェーン(GCC、GDB、makeを含む)[ 11 ]などのさまざまなコマンドラインツール[ 9 ] [ 10 ]や、 Emacs [ 12 ] [ 13 ] [ 14 ] やVimなどのテキストエディタを使用します。プログラマーの中には、IDEによって提供されるビルド構成エクスペリエンスよりも、 makefile(および同様のビルドファイル)の管理を好む人もいます。たとえば、PostgreSQLデータベースのほとんどの貢献者は、makeとGDBを直接使用しています。[ 15 ] Visual C++を使用してWindows用にPostgreSQLをビルドする場合でも、 IDEの機能に頼るのではなく、makeの代わりにPerlスクリプトが使用されます。 [ 16 ] Geanyなどの一部のLinux IDEは、従来のビルド操作にグラフィカルなフロントエンドを提供しようとしています。データディスプレイデバッガーは、多くのテキストベースのデバッガーツールのグラフィカルなフロントエンドです。
オンライン
オンライン統合開発環境(オンラインIDE)は、Web IDEまたはクラウドIDEとも呼ばれ、ソフトウェア開発やWeb開発を可能にするブラウザベースのIDEです。 [ 17 ]オンラインIDEはWebブラウザからアクセスできるため、ポータブルな作業環境を実現します。オンラインIDEは通常、従来のIDEやデスクトップIDEと同じ機能をすべて備えているわけではありませんが、構文の強調表示などの基本的なIDE機能はすべて備えています。
モバイルベースの統合開発環境(IDE)は、モバイルプラットフォーム上でのソフトウェア開発に必要な包括的なツールスイートを提供するソフトウェアアプリケーションです。従来のデスクトップIDEとは異なり、モバイルベースのIDEはスマートフォンやタブレット上で動作するように設計されており、開発者はモバイルデバイスから直接コードを記述、デバッグ、デプロイできます。
エージェント開発環境
IDEにおけるAIアシスタンスが増加するにつれ、エージェント開発環境(ADE)の概念が登場し始めました。エージェントはコード補完を提案するだけでなく、コードの説明、バグの分析、解決策の提案、計画、実装までを行います。GitHub Copilot、Cline、Visual Studio CodeのContinueのように、IDEのプラグインとして利用できるADEもあれば、Windsurf、Cursor、Google Antigravityのように深く統合されているADEもあります。Zed EditorにもオプションのAIが搭載されていますが、Jetbrains Fleet Editorは開発中止となり、Jetbrains AirというADEがベースになっています。[ 18 ]
参照
- 統合開発環境の比較
- 共同開発環境(CDE)
- コンピュータ支援ソフトウェアエンジニアリング(CASE)
- ソフトウェアエンジン
- マルチドキュメントインターフェース § IDEスタイルのインターフェース(MDI)
- 迅速なアプリケーション開発(RAD)
- 読み取り・評価・印刷ループ(REPL)
- ノートブックインターフェース
- コード分析ツール
- ソースコードリファクタリングツール
- ソフトウェア構築ツール(コンパイラ、リンカーなど、およびそれらを制御するためのビルド自動化ツール)
- バージョン管理、ソースリポジトリ(構成管理)とも呼ばれる
- 言語サーバープロトコル
- 構造化プログラミング機能
- トランスポータブルアプリケーション環境
注記
- ^ Eclipseは、元々Java IDEプラグインと共にインストールされることが一般的であり、現在でもその傾向が強いため、IDEと呼ばれることがよくあります。プラグインは開発環境を提供します。プラグインが有効になっていない場合、Eclipseアプリケーションは統合開発環境(IDE)の典型的な基本機能を含むエクスペリエンスを提供できません。
参考文献
- ^ "Interaktives Programmieren als Systems-Schlager" from Computerwoche (ドイツ語)
- ^ 「TOP IDE トップ統合開発環境インデックス」 . pypl.github.io . 2023年8月8日閲覧。
- ^ “Introduction - Flycheck 0.18-cvs” . Read the Docs . 2014年3月10日時点のオリジナルよりアーカイブ。 2014年3月10日閲覧。
- ^ [1]
- ^ a b c「コース CS350 統合開発環境」 . cs.odu.edu . オールドドミニオン大学. 2018年10月10日閲覧。
- ^ 「Eclipse Cookbook - コードの検索」。O'Reilly 。
- ^ Stolee, Kathryn T.; Elbaum, Sebastian; Dobos, Daniel (2014). 「ソースコード検索の解決」 . ACM Transactions on Software Engineering and Methodology . 23 (3): 1– 45. doi : 10.1145/2581377 . ISSN 1049-331X . S2CID 8558710 .
- ^ 「プログラミングソフトウェアとIDE」BBC Bitesize . 2018年10月9日時点のオリジナルよりアーカイブ。 2018年10月10日閲覧。
- ^ レーマン、クリストファー・ポール、クリストファー・R・ポール著。「Linux開発プラットフォーム:完全なプログラミング環境の設定、使用、保守」、2002年、 ISBN 0-13-009115-4
- ^ "UnixIsAnIde" .
- ^ "「Emacs を Microsoft Visual C++ で使用する...Emacs を IDE として使用する」. 2013年7月4日時点のオリジナルよりアーカイブ。
- ^ 「Emacs: フリーソフトウェア IDE | Linux Journal 」。www.linuxjournal.com 。
- ^ 「Common Lisp クックブック - Emacs を Lisp IDE として使用する」 . cl-cookbook.sourceforge.net .
- ^ 「EmacsをPerl IDEとして使う」 obsidianrook.com . 2016年5月21日時点のオリジナルよりアーカイブ。2011年5月11日閲覧。
- ^ 「開発者向け FAQ - PostgreSQL wiki」 . wiki.postgresql.org .
- ^ 「第18章 Windowsでのソースコードからのインストール」PostgreSQLドキュメント。2021年9月29日。
- ^ 「Webベースとデスクトップベースのツール – EclipseSource」 eclipsesource.com 2018年6月19日。
- ^ https://www.jetbrains.com/help/air/quick-start-with-air.html