高機能ながらオープンソースであり、Javaをはじめとするいくつかの言語に対応する。Eclipse自体はJavaで記述されている。Microsystems(太陽)とは無関係である[1]。外部リンク歴史[編集]Eclipseの歴史は1990年代後半から始まる。当時の状況は、JBuilder、VisualCafe(英語版)、そしてIBMのVisualAge、PFUのteikadeなど第1世代のJava開発ツールが存在している。IBMは様々なプラットフォームの製品を抱えていることから、Javaのマルチプラットフォームの可能性に注目していた。単なるVisualAgeの代替ではなく、IBMや他社のツールを統合するための共通プラットフォームの開発という基本構想の下、1998年11月にIBMカナダでプロジェクトが開始された。その後、IBMはこのプラットフォームに搭載するツールの開発のために組織の編成を行い、さらにオープンソース化することで新しい開発者の引き込みを図った。Stewardsを設立する。公開されたEclipseはたちまちのうちに多くの開発者の興味を惹くこととなった。Stewardsの参加メンバーも80を越えている。爆発的人気の影で、Eclipseは、IBM以外の他団体から新たなツールが提供されないという問題を抱えていた。それは、IBMがEclipseの制御権を握っているという認識によるものであった。Eclipseの勢いを止めないために、IBMとEclipseを切り離すことが必要とされた。Stewardsは、Eclipse組織の再構築を発表した。Foundationに移管することで、全ての団体や開発者を対等に扱うこととなった。3.0、3.1、3.2がリリースされている。Foundationは、115以上のメンバー企業、50以上のサブプロジェクトを抱えるオープンソース組織に成長している。3.2に10のオープンソースプロジェクトを合わせたリリースを行った。Callistoと呼ばれている。同時リリースにはコードネームが付与されており、3.4まではガリレオ衛星に因んだ名が付けられていたが、3.5で予定されていたIoはI/Oと誤認されるおそれがあるため、ガリレオ衛星発見者のガリレオ・ガリレイよりとった名称であるGalileoへと変更された。2010年リリースの3.6はHelios(ギリシア神話の太陽神であるヘーリオス)と名付けられている。Galileoからは頭文字がアルファベット順となるような名称が投票で選ばれている。3.8は存在するが、3.7のバグフィクス版であること、すでに4.2のリリースが決まっていたことなどからWeb上では公表されていない。Studioへ移行された。バージョンリリース日コードネーム由来3.22006/06/30Callisto木星の第4衛星カリスト。3.32007/06/29Europa木星の第2衛星エウロパ。3.42008/06/25Ganymede木星の第3衛星ガニメデ。3.52009/06/24Galileoガリレオ衛星の発見者ガリレオ・ガリレイ。3.62010/06/23Heliosギリシア神話の太陽神ヘーリオス。3.72011/06/22Indigoニュートンがプリズムによって光を7色に分解できることを発見したときに紫の内側の色に付けた名前。4.22012/06/27Junoローマ神話に出てくる、女性と結婚を守護する女神ユーノー。妻であり、6月を意味する"June"の由来。4.32013/06/26Kepler「ケプラーの法則」で有名なドイツの天文学者ヨハネス・ケプラー。4.42014/06/25Luna月を意味する。4.52015/06/24Mars火星を意味する。4.62016/06/22Neon元素の一つ、ネオンを意味する。4.72017/06予定Oxygen元素の一つ、酸素を意味する。Eclipseの機能[編集]Eclipseの主な機能は以下のとおり。プラグイン[編集]機能統合環境にプラグインとしてさまざまな機能を組み込むことができるよう設計されている。多様な言語への対応が可能となっている。プラグインはJavaで記述され、プラグイン開発環境自体もEclipseに標準で付属している。これは、Emacsがその主要機能を搭載したLISP言語で記述できることと対比できる。LISPの代わりにJavaを用いるEmacsのようなものなのだと例えられることもある。Foundationの傘下にあるサブプロジェクトである)。このため、EclipseプラグインはOSGiフレームワークに規定されているbundle形式で配布される。主なプラグインは後述する。用いたグラフィカルデバッガが含まれている。バージョン管理システム連携[編集]バージョン管理システムのCVSやSubversion、git等を使ってソースコード管理を行うことができる。EclipseのCVS機能はコマンドラインのCVSコマンドを呼び出すフロントエンドとして動作するのではなく、自前のコードで直接CVSサーバと通信する(ssh、pserverの両方が利用可能)。JUnit連携[編集]Javaソースコードから、JUnitテストコードの自動生成、テスト実行を行うことができる。4を使うことが可能になった。Ant連携[編集]ビルドシステムAntと連携できる。Antは、Unix系のコマンドmakeを置き換えるプログラムで、Makefileに相当する各ソースコードの依存関係をXMLにより記述する。Foundationプロジェクトで開発されている。EclipseはAntをデフォルトで同梱している。setterメソッドの自動生成や、try-catchの自動追加、java.util.ResourceBundleによる文字列の外部化、クラス名・メソッド名・変数名の変更(それを参照している部分も自動的に書き換わる)、メソッドの移動や抽出などをウィザード形式で行ってくれる。throws節の自動追加、必要なメソッドスケルトンの自動生成などさまざまな編集支援機能を持つ。(ECJ)[編集]JavaDevelopmentToolsに使用されているEclipse独自のJavaコンパイラ。この為EclipseはJDKが無くてもJavaファイルのコンパイルが可能である。Studioなど)と比べて動作があきらかに軽快である。採用していることで得られている。ウィンドウシステムレベルの描画操作をネイティブメソッド群というレイヤ(つまりCあるいはC++で書かれたJNIメソッドのDLL・共有ライブラリエントリ)で抽象化し、それをさらにJavaのAPIで覆い、インタフェースが二重に重ねられているのに比べ、SWTではネイティブのウィンドウシステムのAPIとJNIメソッドがほぼ一対一に対応するように定義されており、JNIの層が量的・質的に非常に薄い、ということである。言い換えると、ネイティブのウィンドウシステムのAPIレイヤと、JavaのGUIツールキットクラスライブラリとしてのレイヤの間のセマンティックギャップを埋めるのに、AWTではCコードとJavaコードの両方を使用するのに対して、SWTではCの部分が僅少でありJavaコードが実質的に主体である。AWTにおいて、下位層のウィンドウシステムのAPIをOSを越えて共通のものにみせかけるための、DLLのエントリとして定義されるインターフェース層は、積極的な存在意義が無く、見通しを悪くしており、2回のセマンティクス変換が効率を悪くする可能性があり、柔軟性にかけ、拡張性に劣る。JNIを使ったCコードというのは単なるCコードよりもはるかに可読性が悪く、デバッグも難しく、開発効率は極めて低い。APIの間の機能マッピングロジックが見通しよくJavaのみで記述されている。SWTでは問題の切り分けも容易である(AWTではソースの無いDLL中のエラーは基本的にデバッグ不能。SWTでは生じた問題をネイティブAPIを呼び出す等価なCコードに書き換えることができ、問題の切り分けが容易)。AWTとSWTのどちらが速いのかは実は良くわからないが、見た目や機能上の制約から現時点でAWTでアプリケーションを書くことはほぼありえない。したがって実用的な意味でSWTと速度比較すべきなのはSwingであり、その比較においては明らかにSWTの方が軽快であるし、アプリケーションがそれを実証している。J2SE1.4登場前の話。ハードウェアアクセラレーションが施されるようになった1.4.1以降はVMの高速化とJNIが相対的にネックになってきたSWTより快適な場合もわりと多くなってきた。SWTはEclipseとは独立して、単独でJavaアプリケーションから利用することもできる。JFace[編集]詳細は「JFace」を参照SWTの利用時において、生産性を上げるために、JFaceというクラスライブラリがある。Controllerのプログラミングスタイルを支援する。SWTよりも、より抽象化されたデータの取り扱いを可能にする。誤解されやすいが、SWTに対するJFaceは、AWTに対するSwingとは大きく異なる。EEなどのウェブ系開発に必要なものが一通りそろっているEclipse.orgで開発されているプラグイン。JavaScript、HTML、CSS、XML、JSPのエディタ、データベースエクスプローラー、サーバエクスプローラーも内蔵。将来、Ajax開発環境も取り込まれる予定。Lombozプラグインが原型。Editor)EclipseでAWT/Swing/SWTのGUI開発ができるEclipse.orgから出ているプラグイン。Servlet・JSPコンテナであるTomcatと連携できる。Sysdeoプラグイン、LombozプラグインなどによってもTomcatと連携することができる。J2EEアプリケーションサーバのJBossとの連携ができる。(MDA)、リバースエンジニアリングなどを行うことができる。プラグインなどがある。DoJaプラグインiアプリのプロジェクトの作成、ビルド、エミュレータの起動を行うことができる。プラグインJavaをアスペクト指向プログラミング言語として拡張したAspectJによるプログラミングを行うことができる。Tooling)C/C++の開発をできるようにするプラグイン。よるデータ中心のアプリケーション開発をサポートするプラグイン。Platform)テスト、モニタリング、トレーシング、プロファイリングなどを可能にするプラグイン。Tools)レポート、帳票作成をサポートするプラグイン。Platform)組み込みデバイスソフトウェア開発を支援するプラグイン。開発を支援するプラグイン。CheckstyleプラグインコーディングスタイルをチェックするCheckstyleをEclipseで使うことができる。FindBugsプラグインJavaソースコードからバグパターンを検出するプラグイン。従来の代表的なBTS(BugzillaやScarabなど)と違い、WebサーバやDBサーバを構築する必要がない。プラグインJavaソースコードを編集中にリアルタイムで、そのソースコードのバイトコードを表示するプラグイン。2のプロジェクトとしても使うことができ、マウスによるMavenの実行、Mavenリポジトリからライブラリの自動ダウンロード、自動インストールを可能にするプラグイン。プラグインMavenのリポジトリを検索し、検索結果から表示されたライブラリリストからライブラリに合わせた<dependency>タグを生成し、クリップボードに貼り付けるプラグイン。PerlプラグインPerl開発を可能にするプラグイン。Preprocessor|PHPプラグインPHP開発を可能にするプラグイン。Tools)、PHPEclipse、PHP-IDE、TruStudioなどがある。Tools)Ruby開発を可能にするプラグイン。Rails開発環境を提供するプラグイン。PyDevPython開発を可能にするプラグイン。MonalipseEclipseで2ちゃんねるを閲覧できる2ちゃんねるブラウザプラグイン。Caml開発を可能にするプラグイン。Toolsに引き継がれた(後述)。Caml開発を可能にするプラグイン。プラグインGoogleが開発した携帯電話用プラットフォームであるAndroid用のプロジェクトの作成、ビルド、エミュレータの起動を行う。2015年末で、Googleのサポートが終了することが発表されている[2]。Engineによるウェブアプリケーションのプロジェクト作成、ローカルサーバーでの実行、Googleのインフラストラクチャへのデプロイ、などを行う。IDEセールスフォース・ドットコムの提供するクラウドプラットフォームのForce.com上で動作するForce.comアプリケーションの開発を可能にするプラグイン。Workbenchウルフラム・リサーチ社の提供する、Mathematica開発環境を提供するプラグイン。日本語化[編集]Babel多言語化のためのEclipseのIncubationプロジェクト。より動的に日本語化するプラグイン。日本語化言語パック(サードパーティ版)以前は、IBMが無償で日本語パックを提供していたが、提供されなくなったためBlancoプロジェクトにより作成されている。翻訳内容は、Pleiadesの内容と同じ。EPLは、OSIオープンソース・コンソーシアムからオープンソースの認定を受けている。派生したライセンスである。2014年10月21日閲覧。2015年8月24日閲覧。(日時は個人設定で未設定ならばUTC)。表示-継承ライセンスの下で利用可能です。追加の条件が適用される場合があります。詳細は利用規約を参照してください。開発者Cookieに関する声明モバイルビュ。