BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Eclipseの10年

Eclipseの10年

原文(投稿日:2011/11/07)へのリンク

10年前の今日,Eclipse という名のオープンソース Java 開発環境が Windows および Linux 向けにリリースされた。Eclipse 1.0 の Windows (98/ME/2000/NT) 版と Linux (RH 7.1) 版,そして言語パック (いずれも IBM の提供による) は,現在もダウンロード可能である。

Eclipse コンソーシアムが創設されたのが 2001年11月29日,Eclipse 財団は 2004年2月2日 である。つまり 10 周年を迎えるのはこれらの組織ではなく,ソフトウェアの初回リリースから,という意味だ。

Eclipse 1.0 は IBM による 4,000 万ドル 相当のソースコード寄贈の結果から生まれたものだ。2000年頃を振り返ってみると,当時は多数の Java 開発環境が入手可能だった。Symantec VisualCafé, Borland JBuilder, そして IBM 自身の Visual Age for Java などだ。しかし,そのほとんどが Java 言語専用の開発環境であったため,その後の Servlet や HTML ページ (後には JSP) の発展に対して,当初は対応が十分ではなかった。特に IBM の Visual Age for Java は,ソースコード保存にファイルではなくオブジェクトデータベースを使用していたため,急速に人気を集めつつあった初期のエンタープライズ Java アプリケーションを開発できなかった。

経緯

1998年6月 に最初の WebSphere をリリース (当時は Servlet エンジンだった) したことにより,IBM には既存の Java 開発ツールを補完する開発ツールが必要になった。同社は HTML 編集機能を提供するために WebSphere Studio を開発し,1998年9月 には WebSphere Studio 1.0 と WebSphere Application Server 1.1 との組み合わせでリリースした。この WebSphre Studio が後に Eclipse 1.0 の基盤となった。2001年11月5日 の発表によれば,

IBM の新しい WebSphere Studio は,Eclipse というコード名のオープンソースソフトウェア上に構築された,最初の市販ツールです。Eclipse は,ソフトウェアツールベンダによって新たに創設されたコミュニティに対して,IBM が寄贈したものです。WebSphere Studio を始めとする Eclipse ベースのツールは,ベンダに依存しない一貫した "ルックアンドフィール" を持った,使い勝手のよい共通インターフェースを開発者に提供し,ユーザのトレーニングコストを軽減します。

当時,IBM の主力製品である Visual Age for Java は開発者の支持を失いつつあった。Apache Ant – バージョン 1.1 が 2000年7月19日に公開された – など新しいタイプの開発ツールや動的 Web サイト構築ツールが,Java ソースファイル自体を処理するものであったため,Visual Age ではそれらを活用することができなかったのだ。他の市販ツールは普及しつつあったが,それぞれのインターフェースや動作には少しずつ違いがあった。WebSphere Studio のコアをオープンソースとして開放するという IBM の決断が,商品としての認知度を高める手段としてであったのか,あるいは競業他社とのより大きな協力関係を見越した決定であったのか,いずれにしても Eclipse のリリースは2つの明確な目標を達成した。Java IDE のデファクトスタンダードとなること,そして,多種多様な企業によってサポートされる組織およびツールチェーンとなることだ。

Eclipse が最初のオープンソース Java IDE でないことも知っておく必要があるだろう – NetBeans がオープンソースになったのは 2000年7月のことだ。しかしながらユーザインターフェースの表示機能の面で,NetBean が (当時は) パフォーマンスの比較的低かった Swing ベースであったのに対して,Eclipse は OS のネイティブウィジェットを採用した,完全に新しいツールキットをベースとしていた。処理速度の差はその後徐々に減少しているが,Swing のレンダリングに対して SWT のネイティブ統合の持つ優位性は,オペレーティングシステムの進化に伴って今も継続されている。

Eclipse 以外の Java 開発環境製品で当時から生き残っているのは,2001年1月にリリースされた IntelliJ のみだ。その他の主要な製品は廃止になったか,あるいは Eclipse ランタイム上で動作するように変更されている。

Eclipse コンソーシアム

Eclipse コンソーシアム 創立時のメンバは Borland, IBM, Merant, ONX Software Systmes, Rational Software, RedHat, SuSe, TogetherSoft である。当初 IBM の作成した Common Public License の下でリリースされたプラットフォームは,Visual Age Micro Edition を発展させた WebSphere Studio 製品から転用したコードによる,Java プラットフォーム中心のものだった。

Visual Age for Java は Visual Age for Smalltalk ベースの共通製品として開発された。ツールセットが Java で再実装されたのは,J2ME 開発用の Visual Age Micro Edition として Visual Age for Java が再実装された後のことであって,それが後に WebSphere Studio,さらには Eclipse になった。Visual Age for Smalltalk は Nextstep の Interface Builder に着想を得ている。開発がすべて Object Technology International によって行われたものであることも注目に値する。カナダのオタワにあった同社は 1996年に IBM によって買収されたが,Eclipse の中でも後の基盤部分に関与するコミッタがオタワに多いのは,このような事情によるものだ。

Borland と Rational,さらに以前からの Java 開発者の支持によって Eclipse はすぐに人気になり,最初の月に平均 4,000ダウンロード/日に達した。(IBM はその後,2002年12月から2003年2月にかけて Rational Software を買収している。) さらに組み込み市場を対象とする QNX が,1年足らずの期間で開発した 2003年3月に CDT 1.0 を提供するためにコンソーシアムに参加している。現時点ではまだ,Java 用の開発パックが僅差で CDT をリードしている状態だ。

Eclipse 財団

Eclipse 財団はコンソーシアム設立の2年半ほど後, 2004年2月2日 に発足している。これにより Eclipse は独立した理事会に加えて,多数の戦略的パートナとアドイン提供企業をサポートするエコシステムを備えた非営利法人を持つことになった。財団の発足は,2001年のドットコムバブル崩壊その他の問題にも関わらず,Eclipse の基盤が規模とメンバーシップの面で成長を続けていることを示すものだった。

Eclipse 財団の発足は Eclipse Public License の導入とも関係している。2005年リリース の Eclipse 3.1 から適用されたこのライセンスは,メンバ組織が 100 にまで増加したこととも合わせて,発表から4年と経っていない Eclipse の急成長ぶりを裏付けるものだった。

2009 年2月25日 までは CPL が Eclipse の一部に残されていた。すべてのコントリビュータに CPL から EPL への再設定を説得する作業に失敗した IBM は,その後 CPL に関する同意責任者 (Agreement Steward) として Eclipse 財団を指名した。財団は即座に EPL 1.0 を CPL 1.0 の後継版として指定した。その結果,Eclipse CPL のすべてのソフトウェアは,既存の権利の下で完全に EPL への移行を果たしたのだ。

EclipseCon

Eclipse のエコシステムが他のどのソフトウェア製品にも勝ることを示したのは,おそらく何よりも 2004年2月にアナハイムで開催された EclipseCon だろう。財団発足が発表された初回の EclipseCon 以降,カンファレンスが毎年開催されている。2005年はカリフォルニア州バーリンゲームのハイアットリージェンシーで,2006年から 2011年はサンタクララ・コンベンションセンターで行われた。2012年の EclipseCon は,バージニア州レストンに 場所を移して開催される 予定だ。

NetBeans 自体のカンファレンスは行われていない – Sun の JavaOne が代わりとなったことは何度かあった – が,NetBeans Girls が EclipseCon に登場したことが一度ある。バグ報告はあった ものの,彼女たちが再び登場することはなかった。

米国における EclipseCon の成功を受けて,2007年10月には Eclipse Summit Europe がドイツのルートヴィヒスブルグで行われた。その後,年次イベントに変更され,2008年2009年2010年 に開催されている。先日終了した 2011年 の会議で,カンファレンスの名称が Eclipse Summit Europe から EclipseCon Europe に変更されることが決定された。

EclipseCon カンファレンスは,他では競合関係にある企業同士が中立的な立場で会合を持ち,個人の向上やオープンソースプロジェクトの将来に関して議論するための場を提供するとともに,Eclipse エコシステムにおけるニュースや発表を配布する手段の役割も果たしている。

リリーストレイン

Eclipse のこれまでを語るとき,統合型リリーストレインのプラットフォームへの導入がもたらしたメリットを無視することはできない。Eclipse は過去10年にわたって,信頼性の高いソフトウェアリリースを約束している (そして実践している) が,2006年の Callisto からは,すべてを一括で提供するリリーストレインが導入された。それまではベースプロジェクト (Java 開発ツールと Ritch Client Platform で構成される) のみがメインのダウンロードであって,他のプラグインはそれぞれ個別に追加する必要があった。いくつかの不整合があったことから,残念ながらこれは試行段階であったと言わざるを得ない。リリースの一部については,公開されたダウンロードファイル以降のバグフィックス版を新たに取得して,正しい組み合わせにしなければならかったことからも,問題の所在は明らかだ。

作成されたリリーストレインには,2008年の Ganymede と 2009年の Gallileo – 当初は木星の衛星の名前が付けられていた – のリリース以降,アルファベット順に沿った名称を付けるようになった。順序にさらに一貫性を持たせるため,2010年は Helios,次の 2011年は Indigo と命名された。(来年のリリースは Juno という名称が予定されている。)

リリース (およびトレイン) の計画は,厳密なスケジュールに従って行われる。スケジュールはアジャイル思想に基づき,コンテント管理のために一定の時間を確保している。結果的にソフトウェアは過去10年間,毎年,計画に従って予定どおりリリースされている。

  • Eclipse 1.0 – 2001年11月7日 (Win32/Linux32 Motif)
  • Eclipse 2.0 – 2002年6月27日 (Linux32 Motif + GTK, Solaris/QNX/AIX)
  • Eclipse 2.1 – 2003年3月27日 (OSX 初版)
  • Eclipse 3.0 – 2004年6月25日 (最初の OSGi バージョン)
  • Eclipse 3.1 – 2005年6月27日
  • Eclipse 3.2 – 2006年6月29日 (Callisto)
  • Eclipse 3.3 – 2007年6月25日 (Europa)
  • Eclipse 3.4 – 2008年6月17日 (Ganymede)
  • Eclipse 3.5 – 2009年6月11日 (Galileo)
  • Eclipse 3.6 – 2010年6月8日 (Helios)
  • Eclipse 3.7 – 2011年6月22日 (Indigo)

Juno のリリース計画 では,2012年6月27日頃の同時リリースが要請されている。過去の例からすれば,この目標が達成されることは間違いないだろう。

OSGi とモジュール性

Eclipse は 1.0 の頃から一貫してプラグインモデルを採用し,オープンソース,有償製品,あるいはその混在を問わず,各社の開発したコンポーネントがプラグイン可能であるように設計されていた。他の IDE もプラグインモデルを採用している – NetBean と (その後に) IntelliJ はいずれも,外部コンポーネントをメインアプリケーションに付加することが可能だ。ただし IntelliJ (IDE を構成するコードと拡張プラグインを区別している) とは違って Eclipse では,常にモジュール性を念頭においた設計が行われていた。

Eclipse が真に業界全体を変えたのは,2004年の Eclipse 3.0 リリース の時だ。独自のモジュールシステムを捨てて,まだ知名度の低かった OSGi というフレームワーク上で動作するように変更したのだ。OSGi という名称は,当時は頭字語だった。

Eclipse は,機能拡張可能なアプリケーション構築のための仕様である OSGi (www.osgi.org) フレームワーク仕様を新たにサポートしました。プラグイン拡張に関するこのオープン仕様は,複雑な統合ツールとクライアント環境において,プログラムの制御下におけるインストールと動的アクティベーションをサポートし,メモリなどのリソースの詳細なレベルでの保護を可能にします。さらに Eclipse Plug-in Development Environment では,非常に多数のプラグインを組み込むプラットフォーム用のコンポーネント統合がサポートされるようになりました。

このオープン性とスケール性によって Eclipse 自体が以前よりもはるかに大規模になっただけでなく,OSGi が注目の存在として,開発者全体の関心を集めることにも成功した。不運な JSR 198: IDE 用の標準 API とは違って,OSGi は Eclipse ベースの IDE すべてのコアに装備されることになり,現在では主要な JavaEE アプリケーションサーバすべてに採用されている。新たなモジュールの動的追加だけでなく既存モジュールの動的置き換えも可能な OSGi は,7年前に Eclipse のランタイムに選択されたおかげで,同種の仕様が達し得なかった位置にまで到達することができたのだ。

この共存関係の副産物として,OSGi DevCon は毎年,EclipseCon と同じ場所で開催されている。Eclipse 'カーネル' (Equinox) は独立したトップレベルプロジェクト (EclipseRT) に移動したが,IDE の他のランタイムベースのツールやバックグラウンドプログラムにおいては,両者は依然として協力関係にある。

Modelling,Mylyn,その他

Eclipse 財団には,初回リリース当時には予想もされなかったようなプロジェクトも数多くある。

トップレベルの モデリング フレームワークは,UML ツールのコア実装としてデファクト標準であるだけでなく,グラフィックモデリングやモデルベース開発といった新技術を生み出すための肥沃な研究土壌になっている。

Mylyn は無限にスクロールするリストに代わる,意味的に関心のあるコンポーネントのみを一度に表示する手段として IDE を利用する方法を確立したが,同時にオープンソースと商用の問題追跡ツールとを統合する接点としての意味も持っている。Mylyn はコードレビューツール (Gerrit など) にも適用範囲を広げていて,アプリケーションライフサイクル管理ツールスイートのデファクトになることを目標としている。

Xtext は,Eclipse 内でホストされる IDE の生成をビルトインでサポートする,パーサジェネレータツールを提供している。先日立ち上げられた Web サイト www.xtend-kang.org で,Xtext で構築された言語のデモを見ることができる。ソースファイルが保存されると,Java コードが自動的に生成およびコンパイルされて,問題発生時のイントロスペクションとデバッグが可能になる。

ビジネスインテリジェンスとレポートツールを提供する BIRT は,Actuate の製品のコアを形成するオープンソースソフトウェアだ。レポートツールによって,コンフィギュレーションされたデータソースに基づくチャートとレポートの自動生成が可能である。

Eclipse 財団には他にも多数のプロジェクトがある。最新のカウントによれば,170 以上のメンバ企業が 270 を越えるプロジェクトを展開していて,1,000 以上のコミッタが Eclipse 財団の管理下にある 5,000 万行のコードの開発に貢献している。

次の 10 年は ...

過去10年間にこれだけの変遷を遂げた Eclipse の,これからの 10 年はどのようなものになるだろう? 確立された IP ガイドラインに基づいて商用製品を構築可能な基盤としては,明らかに期待が持てるだろう。しかし OSGi への移行のように非常に大きな影響を持つ,予測不可能な変化があるかも知れない。

次のリリースではこれまでの明示的なコード記述に代えて,宣言的 UI 構築と CSS によるスタイル指定を行う e4 への移行が行われる予定である。Juno は (Indigo と同じように) e4 ベースと '従来型' ベースの UI の両方を備えて公開されるが,e4 をデフォルトとする初の Eclipse トレインになる。

この件は Eclipse のもうひとつの重要な特長を際立たせるものでもある。それはすなわち,プラグイン移行ガイド に記載されるごく少数の問題点を例外として,以前のリリースとの下位互換性を確保するために最大限の努力を払う,という点だ。3.7 向けに開発されたプラグインの大半は,e4 ベースの Eclipse インストールでも動作するものと期待される。

Eclipse 初回リリース以来の重要な変更としてはもうひとつ,Web 開発に関するものがある。2005年にリリースされた Google Map に代表される AJAX 人気の興隆によって,IDE の次の進展が何かを見つけることが目標とされてきた。その答えのひとつが,Web 用の Web ベースエディタである Eclipse Orion だ。

最後に取り上げるのは,ソースコード管理システムが進化した結果,エディタ自体の機能を備えるようになったことだ。Eclipse が最初にリリースされたとき,コードは CVS サーバに管理されていた。現在でも一部が保管されている。SVN の出現と普及により,新たなプロジェクトはそれを起点とするようになった。さらに今年から開始された Git の採用に伴って,Eclipse における CVS と SVN のレポジトリ数はともに減少する様子を見せている。Git 内のプロジェクト数,あるいは GitHub などのソーシャルハブにミラーされるプロジェクト数が増加することによって,プロジェクト外部からのコントリビュートは以前より簡単にできるようになった。

 

最後に,新しい言語 – Scala であれ,Groovy であれ,あるいは (J)Ruby や Kotlin, あるいは Ceylon – が流行し始めて,新しいプラットフォーム – Andloid/Dalvik あるいは将来的には Dart/Go – 上に構築されるにつれて,Eclipse は IDE 界の礎石となり,新たなシステムへの出発点を引き上げる役割を今後も続けることだろう。

しかし将来の Eclipse は,OSGi への移行や Mylyn の出現のような大きな衝撃によって,予測できない創造物になっているかも知れない。

この記事に星をつける

おすすめ度
スタイル

BT