概要
統合開発環境 (IDE) とはアプリケーション構築のためのソフトウェアで、複数の一般的な開発者用ツールを 1 つのグラフィカル・ユーザー・インタフェース (GUI) で使えるようにしたものです。IDE は通常、以下のツールから構成されます。
- ソースコードエディター:ソフトウェアのコーディングに役立つさまざまな機能を搭載したテキストエディターで、構文の強調表示機能、使用言語に特化した自動補完機能、コードの入力と同時に実行されるバグチェック機能などを備えています。
- ローカルビルド自動化:コンピュータのソースコードをバイナリーコードにコンパイルする、バイナリーコードをパッケージ化する、自動テストを実行するなど、ソフトウェアのローカルビルド構築の一環として実行される、シンプルな反復作業を自動化するユーティリティです。
- デバッガー:他のプログラムのテストを実行し、元のコードでバグの場所をグラフィカルに表示するプログラムです。
一般的な IDE
IDE のユースケースは技術的なものからビジネス上のものまで幅広いため、市場には数多くのプロプライエタリー IDE やオープンソース IDE が存在しています。一般的に、それらの IDE を区別する大きな特徴は次のようなものです。
- サポートする言語の数:1 つの言語に特化した IDE は、特定のプログラミング・パラダイムにおいてはベターな選択肢と言えるでしょう。たとえば、IntelliJ は基本的に Java の IDE として知られています。逆に、Java、XML、Python など多数の言語を幅広くサポートする Eclipse のような IDE もあります。
- サポートするオペレーティングシステム:IDE がクラウドベースでない限り、IDE の選択肢は OS によって限定されます。また、開発対象のアプリケーションが特定の OS 用である場合 (Android や iOS など)、選択肢はさらに限定されます。
- 自動化機能:ほとんどの IDE には主要 3 機能 (テキストエディター、ビルド自動化、デバッガー) が備わっていますが、それに加えてリファクタリング、コード検索、継続的インテグレーションおよび継続的デプロイメント (CI/CD) のツールをサポートする IDE も少なくありません。
- システムパフォーマンスへの影響:メモリーを大量に消費するアプリケーションを IDE と同時に使用する場合、IDE のメモリー消費量も重要な検討事項になります。
- プラグインと拡張機能:IDE の中には、開発者のニーズや好みに合わせてワークフローをカスタマイズできるものもあります。
モバイル開発用 IDE
今や、スマートフォンやタブレット向けに設計されたアプリの隆盛に影響を受けていない業界はほぼ存在しません。そのため、多くの企業が従来の Web アプリケーションに加えてモバイルアプリの開発も行っています。モバイルアプリ開発の重要な要素の 1 つに、プラットフォームの選択があります。たとえば、新しいアプリケーションを iOS、Android、および Web ページで提供する場合、複数のオペレーティングシステムに対応できるようにクロスプラットフォーム・サポートを提供する IDE を使うと良いでしょう。
クラウド IDE
クラウドベースの Software-as-a-Service (SaaS) として提供されている IDE には、ローカル開発環境に対する独自のメリットがいくつかあります。まず、あらゆる SaaS 製品に言えることですが、ソフトウェアをダウンロードしてローカル環境や依存関係ファイルを設定する必要がないため、開発者はすぐに開発を始められます。また、これによりチームメンバー全員の開発環境が一定レベルまで標準化されるため、開発時によくある「こちらのマシンでは動くのにあちらのマシンでは動かない」といった問題を抑制できます。さらに、こうした開発環境は一元的に管理されるため、コードは開発者個人のコンピュータではなくサーバー上に保管されます。これは知的財産の管理やセキュリティに関する懸念の解消に役立ちます。
プロセスがローカルマシンに与える影響も異なります。ビルドの実行やスイートのテストは通常、重い処理負荷を伴います。そのため、このようなプロセスを実行中のワークステーションで他の作業ができなくなることもあります。しかし、SaaS 形式の IDE であれば、そうした長時間を要するジョブを実行してもローカルマシンのコンピュートリソースが使い尽くされることはありません。また、クラウド IDE は一般的にプラットフォームに依存しないため、さまざまなクラウドベンダーへの接続が可能です。