【コラム】
本連載では数回に分けてEclipse 4.2 Junoの新機能を紹介しているが、最終回となる今回はJunoで新たに追加されたプラグインとしてEclipseのコード補完機能を強化するEclipse Code RecommendersとDSL開発のためのワークベンチを提供するXtextを紹介する。
Eclipse Code Recommenders (以下Code Recommenders)は、Eclipseにより高度な入力補完機能を提供するためのプラグインだ。Junoで提供されているパッケージの中では「Eclipse IDE for Java Developers」にのみ標準でインストールされている。
Eclipseはメソッドの補完時にメソッド名の昇順に補完候補を表示するが、実際に利用頻度の高いメソッドはごく一部だ。Code Recommendersはこれらのメソッドの中から適切と思われるものを順位を付けて表示する。
Code Recommendersは、Exdoc Viewというビューも提供している。このビューはJavaエディタで選択した要素に関するドキュメントを表示するもので、通常はJavadocを表示するが、Code Recoomendersによってメソッドの利用頻度、オーバーライドされているメソッドの頻度などが表示される。既存のコードを分析して得られた統計情報を参照できるため、使い慣れないAPIを利用する際に参考になるだろう。
Xtextは、EclipseでDSLを開発するためのツールセットを提供する。構文定義からパーサを生成できるだけでなく、Eclipse上で動作するエディタまで自動生成できるのが大きな特徴だ。このエディタは構文定義に応じた強調表示や構文チェック、入力補完機能などを備えた強力なもので、すでに本連載でも紹介したEclipse plugin for LESSやe(fx)clipseなど、Xtextを使用したエディタを提供するプラグインも登場してきており、DSL開発だけでなく開発ツールを作成するためのツールとしても注目を集めている。
また、Eclipse Foundationでは、XtendというXtextベースのプログラミング言語の開発も行われている (Xtendの詳細については本連載の第118回を参照していただきたい)。
JVMベースのプログラミング言語としてはScala、Kotlin、Ceylonなど関数型言語のエッセンスを導入したものが注目を集めているが、Xtendはこれらの言語と異なり、Javaを置き換えるのではなく、あくまでJava使用した開発をサポートするためのツールという位置付けであり、ソースを直接インタプリタで実行したり、コンパイラによってクラスファイルを生成するのではなく、Javaのソースコードが生成される。生成されたJavaコードは可読性にも配慮されているため、Javaコードを効率的に記述するためのDSLとしてXtendを使用することもできるだろう。他のJVMベースの言語と比べると導入しやすい点は大きなメリットだ。
なお、XtextやXtendはJunoで提供されているパッケージのうち「Eclipse IDE for Automotive Software Developers」にのみ標準でインストールされている。試してみたい方はこのパッケージを利用するといいだろう。
本連載でも述べたようにJunoではEclipse 4.x系への移行による変化は大きいものの、機能面ではそれほど大きな追加はなく、MavenサポートやGUIビルダなど様々なプラグインが提供されるようになった昨年のIndigoと比べると地味なリリースに見えるかもしれない。
しかしXtextはすでに様々なサードパーティ製のプラグインで利用されており、Xtendも実用性の高いJavaベースの新言語として注目を集め始めているなど、Eclipseは新たな広がりも見せ始めている。来年も6月にリリースされる予定のKeplerではどのような進化を見せてくれるだろうか?
| JAEA、ウラン化合物の超伝導前駆状態で電子ひずみの原子レベルの測定に成功 [08:30 6/19] |
| 世界最速スパコンは中国『天河二号』 [07:00 6/19] |
| 精神疾患の脳機能計測に「光トポグラフィ」が有効 - 東大病院など [18:58 6/18] |
| 東大、スピンアイス磁性体で磁気モノポールの量子ダイナミクスを発見 [18:52 6/18] |
| フラバンジェノールは紫外線ダメージによるシミ発生を抑制できる -東洋新薬 [18:30 6/18] |
|
JR九州が旅行費用を負担! "鉄旅"をブログでレポートする若者を公募 [08:30 6/19] 旅行 |
|
鹿島建設、クラウドで企業を超えたプロジェクト関係者間でBIMデータを共有 [08:30 6/19] エンタープライズ |
|
Chrome、新しい動画コーデックを有効化 [08:30 6/19] 開発・SE |
|
LLVM 3.3登場 [08:30 6/19] 開発・SE |
|
JAEA、ウラン化合物の超伝導前駆状態で電子ひずみの原子レベルの測定に成功 [08:30 6/19] 開発・SE |