Eclipseは、コンピュータプログラミングで使用される統合開発環境(IDE)です。[ 5 ]基本ワークスペースと、環境をカスタマイズするための拡張可能なプラグインシステムを備えています。2016年にIntelliJ IDEAに追い抜かれるまでは、Java開発で最も人気のあるIDEでした。[ 6 ] Eclipse は主に Java で記述されており、主な用途は Java アプリケーションの開発ですが、 [ 7 ]プラグインを介して、Ada、ABAP、C、C++、C#、Clojure、COBOL、D、Erlang、Fortran、Groovy、Haskell、HLASM、[ a ] JavaScript、Julia、[ 9 ] Lasso、Lua、NATURAL、Perl、PHP、PL/I、[ a ] Prolog、Python、R、Rexx、[ a ] Ruby ( Ruby on Railsフレームワークを含む)、Rust、Scala、Schemeなどの他のプログラミング言語でアプリケーションを開発するためにも使用できます。また、 LaTeX (TeXlipse プラグイン経由) を使用したドキュメントや、Mathematicaソフトウェアのパッケージの開発にも使用できます。開発環境には、Java および Scala 用の Eclipse Java 開発ツール (JDT)、C/C++ 用の Eclipse CDT、PHP 用の Eclipse PDT などがあります。[ 10 ]
初期のコードベースはIBM VisualAgeから派生したものです。[ 11 ] Java 開発ツールを含むEclipseソフトウェア開発キット(SDK) は、Java 開発者向けです。ユーザーは、他のプログラミング言語の開発ツールキットなど、Eclipse プラットフォーム用に作成されたプラグインをインストールすることで機能を拡張でき、独自のプラグインを作成して貢献することもできます。Eclipse 3.0 (2004 年にリリース) 以降、プラグインはOSGiの実装であるEquinoxを使用して「バンドル」としてインストールおよび管理されます。[ 12 ]
Eclipse SDK は、 Eclipse Public Licenseの条件に基づいてリリースされた無料のオープンソース ソフトウェアですが、 GNU General Public Licenseとは互換性がありません。[ 13 ] GNU Classpathで動作する最初の IDE の 1 つです。IcedTeaでも問題なく動作します。
Eclipse はSmalltalkベースのVisualAgeファミリーの統合開発環境(IDE) 製品に触発されて開発されました。[ 11 ] VisualAge 製品は、かなり成功を収めましたが、大きな欠点は、開発されたコードがコンポーネントベースのソフトウェア エンジニアリングモデルではなかったことです。代わりに、プロジェクトのすべてのコードはSCID技術を使用した圧縮データベース (zip ファイルに似ていますが、.dat 形式) に格納されていました。個々のクラスには簡単にアクセスできず、ツール以外からはアクセスできませんでした。主にノースカロライナ州キャリーの IBM ラボのチームが、Java ベースの代替製品として新製品を開発しました。[ 14 ] 2001 年 11 月、Eclipse をオープンソース ソフトウェア としてさらに開発するために、管理委員会を持つコンソーシアムが設立されました。IBM は、その時点ですでに 4,000 万ドル近くを投資していたと推定されています。[ 15 ]当初のメンバーは、 Borland、IBM、Merant、QNX Software Systems、Rational Software、Red Hat、SuSE、TogetherSoft、WebGain でした。[ 16 ] 2003年末までにスチュワードの数は80人以上に増加した。2004年1月にはエクリプス財団が設立された。[ 17 ]
Eclipse 3.0(2004年6月21日リリース)は、ランタイムアーキテクチャとしてOSGiサービスプラットフォーム仕様を採用した。 [ 18 ]
計算機学会は、 2012年4月26日にEclipseに2011年ACMソフトウェアシステム賞を授与した。 [ 19 ]
Eclipse IDEの最新リリースでは、Java 23やC++23といった最新のプログラミング言語標準への対応に加え、刷新されたライトテーマ、Javaのコード折りたたみ機能の改善、Clangコンパイラフロントエンドに基づいたC/C++ツールの更新など、ユーザビリティの向上も図られています。
Eclipse Public License (EPL) は、Eclipse プロジェクトがリリースされる際の基本的なライセンスです。[ 20 ]一部のプロジェクトではデュアル ライセンスが必要となり、そのために Eclipse Distribution License (EDL) が利用可能ですが、このライセンスの使用には申請が必要であり、ケースバイケースで検討されます。
Eclipseは当初Common Public Licenseの下でリリースされましたが、後にEclipse Public Licenseの下で再ライセンスされました。フリーソフトウェア財団は、どちらのライセンスもフリーソフトウェアライセンスであるが、 GNU General Public License (GPL)とは互換性がないと述べています。[ 21 ]
当時、 IBMのRational部門(2003年設立)の最高技術責任者であったリー・ナックマンによれば、「Eclipse」(少なくとも2001年から存在)という名前は、 Sun Microsystemsをもじったものではなく、命名当時、この製品の主な競合製品はMicrosoft Visual Studioであり、Eclipseはそれを凌駕することになる、とのことである。[ 22 ]
Eclipse のさまざまなバージョンには、科学に関連したさまざまな名前が付けられています。木星の衛星であるカリスト、エウロパ、ガニメデにちなんで名付けられたバージョンに続いて、これらの衛星を発見したガリレオにちなんで名付けられたバージョンがありました。これらに続いて、ギリシャ神話のヘリオスと、虹の 7 色の 1 つであるインディゴ(太陽によって生成される) という、太陽をテーマにした 2 つの名前がありました。その次のバージョンである Juno は、ローマ神話の人物、小惑星、木星への宇宙船という3 つの意味を持っています。[ 23 ] Kepler、Luna、Mars は天文学のテーマを継続し、その後、NeonとOxygen は化学元素のテーマを構成しました。Photonは太陽をテーマにした名前への回帰を表しています。
2018年現在アルファベット順の命名規則は、新しい同時リリース戦略に合わせるために廃止されました。[ 24 ]リリースは、四半期ごとのリリースを反映するために、YYYY-MM の形式で命名され、バージョン 4.9 は 2018-09 と命名されています。[ 25 ]
2006年以来、財団は毎年同時リリースを調整している。[ 26 ]各リリースにはEclipseプラットフォームと他のいくつかのEclipseプロジェクトが含まれる。
2008年から2018年までは、同時リリースは毎回6月の第4水曜日に行われていました。2018年にプロジェクトは、中間サービスリリースなしで四半期ごと(13週間)のYYYY-MMリリースに切り替わりました。[ 27 ]
Eclipse は、ランタイム システム内およびその上にすべての機能を提供するためにプラグインを使用します。そのランタイム システムは、 OSGiコア フレームワーク仕様の実装であるEquinoxに基づいています。 [ 91 ]
Eclipse Platform をCやPythonなどの他のプログラミング言語で拡張できるだけでなく、プラグイン フレームワークにより、Eclipse Platform はLaTeX [ 92 ]のような組版言語や、 telnetやデータベース管理システムなどのネットワーク アプリケーションと連携できます。プラグイン アーキテクチャは、構成管理など、環境への任意の拡張機能の書き込みをサポートしています。Java とCVS はEclipse SDKでサポートされており、その他のバージョン管理システムはサードパーティのプラグインによってサポートされています。
小さなランタイムカーネルを除いて、Eclipse のすべてはプラグインです。したがって、開発されたすべてのプラグインは、他のプラグインと同じ方法で Eclipse と統合されます。この点において、すべての機能は「平等に作成」されています。[ 93 ] Eclipse は、さまざまな機能のプラグインを提供しており、その中には、無料モデルと商用モデルの両方を使用するサードパーティ製のものもあります。プラグインの例としては、統一モデリング言語(UML)、シーケンスやその他の UML ダイアグラム、DB エクスプローラーのプラグインなどがあります。
Eclipse SDKにはEclipse Java開発ツール(JDT)が含まれており、JavaインクリメンタルコンパイラとJavaソースファイルの完全なモデルを内蔵したIDEを提供します。これにより、高度なリファクタリング手法とコード分析が可能になります。また、IDEはワークスペースを使用します。この場合、ワークスペースとはフラットなファイルスペース上のメタデータのセットであり、対応するワークスペースリソースを後で更新すれば、外部ファイルの変更が可能になります。
Eclipse は、Standard Widget Toolkit (SWT)と呼ばれる Java ツールキットのグラフィカル コントロール要素を実装していますが、ほとんどの Java アプリケーションは、Java 標準のAbstract Window Toolkit (AWT)、Swing、またはJavaFX を使用しています。Eclipse のユーザー インターフェイスは、 JFaceと呼ばれる中間グラフィカル ユーザー インターフェイスレイヤーも使用しており、SWT に基づくアプリケーションの構築を簡素化しています。Eclipse は、2014 年のGoogle Summer of Code (GSoC) プロジェクト中にWayland上で動作するように作られました。[ 94 ]
2017年現在Babelプロジェクトによって開発されている言語パックは、40以上の自然言語への翻訳を提供します。[ 4 ]
Eclipseは、汎用アプリケーション開発のためのリッチクライアントプラットフォーム(RCP)を提供します。
リッチクライアントプラットフォームは、以下のコンポーネントで構成されています。
Eclipseをベースとしたリッチクライアントアプリケーションの例としては、以下のようなものがあります。
EclipseはTomcat、GlassFishをはじめとする多くのサーバーでの開発をサポートしており、多くの場合、IDEから直接必要なサーバー(開発用)をインストールできます。また、リモートデバッグにも対応しており、接続されたサーバー上で実行されているアプリケーションの変数を監視したり、コードをステップ実行したりすることができます。
Eclipse Web Tools Platform (WTP) プロジェクトは、Web アプリケーションおよび Java EE アプリケーションを開発するためのツールを備えた Eclipse プラットフォームの拡張機能です。さまざまな言語のソース エディタとグラフィカル エディタ、開発を簡素化するウィザードと組み込みアプリケーション、アプリケーションのデプロイ、実行、テストをサポートするツールと API が含まれています。[ 96 ]
モデリングプロジェクトには、モデルベース開発技術に焦点を当てたEclipse Foundationの公式プロジェクトがすべて含まれています。これらはすべて、IBMが作成したEclipse Modeling Frameworkと互換性があります。これらのプロジェクトは、次の6つのカテゴリに分類されます。
Eclipse のアプリケーション ライフサイクル管理(ALM) とタスク管理には、タスク中心のインターフェースのオープンソース実装である Mylyn ( / ˈ maɪ l ɪ n / )と呼ばれるオプションのコンポーネントが必要です。タスク中心のインターフェースを組み込んだツール用の API を提供します。ソフトウェア開発者にとっては、バグ、問題報告、新機能など、さまざまなタスクを効率的に扱うのに役立ちます。タスクは Mylyn に統合されます。統合されたすべてのタスクについて、Mylyn はユーザーのアクティビティを監視し、目の前のタスクに関連する情報を特定しようとします。このタスク コンテキストを使用して、Eclipse UI を関連情報に集中させます。Mylyn は、 Bugzilla、Trac、Redmine、Mantis [ 98 ]、JIRA、Unfuddle [ 99 ]、GitHub [ 100 ]などのリポジトリと統合できます。検索、スクロール、ナビゲーションを減らすことで生産性を向上させることに重点を置いています。 Mylynは、タスクのコンテキストを明確にすることで、マルチタスク、計画立案、過去の作業の再利用、専門知識の共有を促進することも目的としている。
このプロジェクト名は、ニューロンの軸索を囲む電気絶縁層であるミエリンに由来する。 [ 101 ]このプロジェクトの元の名前「Mylar」は、 boPETフィルム会社の商標を模倣していたため、 Eclipse Foundationはプロジェクト名を変更した。[ 102 ]
Eclipse IDE の機能には、構文の色分け、コーディング支援、コード補完、コードリファクタリング、クイックフィックスの提案を含むコード分析、およびコードデバッグが含まれます。[ 103 ]
Java 9以降では、OSGiのネイティブサポートに加えてJPMSのサポートも追加されました。 [ 103 ]
Eclipse は豊富な拡張機能をサポートしており、 PyDevを介したPythonのサポート、Google の ADT ( 2015 年以降はAndroid Studioに置き換えられました) を介したAndroid開発のサポート、 e(fx)clipse を介した JavaFX、JavaScript 、 jQueryなど、Eclipse Marketplace で入手できる多くの拡張機能が追加されています。Valable はEclipse 用のValaプラグインです。[ 104 ]
Javaコンパイラの組み込み警告に加えて、コードの品質と一貫性を向上させるためのリンティング用プラグインとして、SpotBugsやSonarなどが利用可能です。[ 105 ] [ 106 ]
Ant、Maven、Make、CMakeなどのビルドツールのサポートには、Eclipseネイティブプロジェクトファイル形式をMaven pom.xmlに直接置き換える機能が含まれています。[ 107 ]
Eclipseプロジェクトには、いくつかの代替ディストリビューションが存在する。
PHP Hypertext Preprocessor (PHP) Development Tools プロジェクトは、Eclipse プラットフォームのフレームワークを提供します。このプロジェクトには、コード補完、PHP の開発、拡張性の促進など、すべての開発コンポーネントが含まれています。既存の Eclipse Web Tools Platform (WTP) とDynamic Languages Toolkit (DLTK) を活用しています。[ 108 ]
Android Development Tools (ADT) は、Google が Eclipse IDE 用のプラグインの開発を中止した後、2015 年に Eclipse Foundation 独自のプラグインAndmore: Development Tools for Androidに取って代わられました。[ 109 ] ADT/Andmore は、開発者が新しい Android プロジェクトをセットアップし、アプリケーションの UI を作成し、Android Framework API に基づいてパッケージを追加し、Android SDK ツールを使用してアプリケーションをデバッグし、署名 (または署名なし) の .apk ファイルをエクスポートしてアプリケーションを配布できるように、Eclipse の機能を拡張します。無料でダウンロードできます。Google の ADT は 2015 年まで Android の公式 IDE でしたが、Eclipse の Andmore と公式のAndroid Studioに置き換えられました。[ 110 ] [ 111 ] 2024 年現在、このプロジェクトは 2017 年以降活動がなく、衰退しているようです。[ 112 ]
{{cite web}}:欠落または空欄|title=(ヘルプ){{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)Web Tools Platform (WTP) プロジェクトは、WebおよびJava EEアプリケーション開発用のツールでEclipseプラットフォームを拡張します。さまざまな言語のソースエディタとグラフィカルエディタ、開発を簡素化するウィザードと組み込みアプリケーション、アプリケーションのデプロイ、実行、テストをサポートするツール、および機能を拡張するためのAPIが含まれています。
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク){{cite book}}: CS1メンテナンス: 場所の発行元が見つかりません (リンク)