BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Eclipse Ganymede: JDT(Java Development Tools)を徹底的に調べる

Eclipse Ganymede: JDT(Java Development Tools)を徹底的に調べる

6月25日のEclipse Ganymedeの(リンク・英語)リリースに合わせてInfoQではEclipseのサブプロジェクトについて連続特集を組んでいる。今回のサブプロジェクトはJDT(リンク・英語)(Java Development Tools:Javaの開発ツール群)である。バージョン3.4がリリースされる。InfoQではEclipseプロジェクトのリーダであるPhilippe Mulet氏と(リンク・英語)JDT UIサブプロジェクトのリーダであるMartin Aeschlimann氏にGanymedeneに期待することについて話を伺った。

JDT 3.4にはいくつかの新しい点がある。

  • コンパイラの強化 - コンパイルの実行に1つの(CPU)コアだけではなくマルチコアを利用することができるようになった。コンパイラの問題の発見について改良された。CLDC 1.1に準拠したクラスファイルの生成がサポートされた。ワークスペース外にあるクラスフォルダに対応した
  • 新しいリファクタリングの追加 - 新たにクラスの抽出が可能になった。これは変数のまとまりをクラスに抽出した上でメンバからのアクセスを保持する機能である。加えて、バイナリクラスへの参照を破たんさせる可能性のあるリファクタリングに対しては警告を表示することで他のクライアントに影響を与える思わぬリファクタリングを避けることが出来る。
  • Javaエディタのアップグレード - 現在選択している要素までのパスが分かるパンくず。問題ビューとJavaDocビューに対する充実したホバーダイアログ。コンテンツアシストに対するいくつかの改善、クイックアシスタントとSWTウィジェットのテンプレートなどが加えらた。
  • Javaデバッガの改善 - インスペクタに変数参照ホバーが組み込まれた。実行環境定義ファイル。検索結果の一部としての起動構成、そしてリモートデバッグの接続を待機する機能などが新しい。
  • その他UIの強化 - JUnitのテスト(メソッドごとの)実行所要時間、フィールドや型に対する階層の取得、実行可能なJARのエクスポート用ウィザード、そしてJava検索のオプションの追加などが新たに利用できる。

 詳細な内容については6月25日のGanymede公式リリース後まもなくNew and Noteworthy(新機能と注目機能)ページで(リンク・英語)入手可能になる。

Mulet氏はマルチコアによるコンパイルについてもう少し詳細に説明した。それによると、それぞれのプロジェクトは独立してコンパイルされるが複数のCPUコアに分けてプロジェクトのコンパイルを行うことでマルチコアCPUにおいて10%から30%の速度向上が見込めるということだ。Mulet氏はこの数値は暫定的なもので公式のベンチマークデータは近々公開されると示した。さらにJavaの新しいバージョンでは過去最大の速度向上が見込めることにも言及した。Java 1.4では10%に近い向上を達成したが、Java 6では30%近い向上を達成した。こうしてコンパイル時のパフォーマンスにおけるクリティカルな要素はディスクの速度ということになった。コンパイルは本質的にI/O領域のプロセスであるので、高速なメディアを利用すれば短いコンパイル時間で済むのである。

EclipseはJavaのIDEとして最もよく知られているが、JDTとJDT UIチームによる改良の数々は言語ツールキット(リンク・英語)(LTK)やPlatform Text(リンク・英語)(プラットフォームテキスト)といった共通的なライブラリにも取り込まれている。これらのライブラリはCDT(リンク・英語)のようなテキストベースのエディタに利用されていたり、全体的なリファクタリング・検索・デバッグや比較などの機能から利用されている。例えば、これらのライブラリはJavaDocのリッチなホバーテキストに使われておりこれによってリンク先を開くことが可能になっている。(次期バージョンの)3.5における強化点の候補の一つとしてプリプロセス機能のサポート(リンク・英語)が挙げられる。Mulet氏によればこれによってある利用状況での実装が簡単になるとのことである。

JDTから切り離されたもう一つの物がEclipse Compiler for java (ECJ:Java用のEclipseコンパイラ)である。Mulet氏によるとGNU Compiler for Java(リンク・英語) (GCJ)、Apahce Harmonyのjavac(リンク・英語)、Apache Tomcat JSP(リンク・英語)、AspectJコンパイラ(リンク・英語)といったプロジェクトがECJを利用している。そしてMulet氏はこれはほんの一部であると信じており他のどんなプロジェクトでECJがその一部として利用されているのかにとても興味があるとのことである。

この先の構想についてMulet氏は以下のように語った。

まさにそのことについて考え始めたところです。提案を歓迎します。(確約はできませんが)Java 7対応、Javaエディタのネスティング、プリプロセス機能、ソースフォルダごとの設定/クラスパス、APIツールの統合、ビルドパスにあるJARの連鎖、ビルドパスにおけるJARのネスト化、コンパイラによるエラーの説明を提供、埋め込み機能の単純化(例として規約の遵守とJREとはペアで管理されるべきでしょう)などの可能性があります。

JDTがe4(次世代Eclipse)にどのように統合されるかあるいはどういった影響を与えるのかについて質問したところMulet氏は以下のように語った。

e4とはEclipseプラットフォームをよりよくし、e4による開発を簡単にすることです。Eclipse1.0がそのようにして始まったように、e4が十分に開発されればJDTをそちらに移植するでしょう。その時点から2種類のJDTを開発していくということに関心があります。というのも3.x系が即座になくなることはないからです。そして(現在JavaからActionScriptへの変換を行っているように)JDTがJavaからスクリプト言語へのクロスコンパイルを補助するようになるまではJavaと同様にJDTは3.x系として存在してなければなりません。言語ツール関連で言えばもっと率先してやることがありそうです。例えば多言語エディタのようなものです。

原文はこちらです:http://www.infoq.com/news/2008/06/eclipse-ganymede-jdt

この記事に星をつける

おすすめ度
スタイル

BT