ついにリリースされたScala IDE for Eclipse 2.0

JavaVM上で動作する次世代言語として注目を集めるScalaだが、Eclipse(JDT)という非常に強力なIDEが存在するEclipseと比較すると、決定版と呼べるIDEが存在しないことで言語が持つ特性を最大限に発揮できないことが問題視されていた。

これまでもScalaプログラミングのためのツールとして、Eclipse、NetBeans、IntelliJ IDEAといったJavaベースのIDEで動作するプラグインは存在したものの、いずれもEclipse上でJavaプログラミングを行う場合と比べると満足できるものではなかったのが実情だ。

このように強力な開発環境が存在しないことはScalaのディスアドバンテージの1つとされてきたが、EclipseプラグインであるScala IDE for Eclipse(初期のバージョンについては過去に本連載でも取り上げたことがある)が2.0へのメジャーバージョンアップで大幅に刷新され、実戦でも利用可能なレベルになってきた。

今回は2011年12月20日にリリースされたばかりのScala IDE for Eclipse 2.0を紹介したい。

図1 : Scala IDE for EclipseのWebサイト

Scala IDE for Eclipse 2.0のインストール

Scala IDE for Eclipseは以下の更新サイトからインストールすることができる。利用するScalaのバージョンによって更新サイトのURLが異なるので注意して欲しい。

  • Scala 2.9.1向け
    http://download.scala-ide.org/releases-29/stable/site

  • Scala 2.8向け
    http://download.scala-ide.org/releases-28/stable/site

なお、ScalaIDE for Eclipseは内部的にJDTを拡張する形で実装されており、プラグイン同士の相性による動作の不具合が起きる場合があるようだ。このため、Scala IDE for Eclipseを試す場合には普段利用しているEclipseとは別に、新しいEclipse環境を用意したほうがよいかもしれない。

Scala IDE for Eclipseの主な機能

Scala IDE for EclipseはほぼJDTと同じ感覚で利用できる。CTRL+SPACEでコードの入力補完ができ、ファイルを保存するとインクリメンタルビルド機能によって即座にエラーが報告される。

図2 : Scalaエディタ

ハイパーリンクでクラスやメソッド、変数の定義部分にジャンプすることができるなどナビゲーション機能も充実しているほか、キーボードショートカットやクラスパスの設定などもJDTと同じなのでEclipseでJavaプログラミングの経験があればすんなり利用することができるだろう。

コンパイラによる警告の出力はデフォルトでは無効になっているが、設定を変更することで警告を表示できるようになる。不適切なコードを検出できるので積極的に利用するといいだろう。

図3 : コンパイラの設定

このほか、プロジェクトを右クリック-[Scala]メニューからScalaの対話シェルを開くことができる。補完が効かないなどコマンドラインで対話シェルを利用するより使いにくい部分もあるが、ちょっとしたコードの動作確認などに利用するといいだろう。

図4 : Scalaの対話シェル

sbtとの連携

Scala界隈では標準のビルドツールとしてsbtが利用されることが多い。Scala IDE for Eclipseとsbtの連携にはいくつかの方法がある。

1つめはsbt側でsbteclipseというプラグインを組み込んでEclipse用の設定ファイルを生成する方法、もう1つはEclipseにesbtというプラグインをインストールする方法で、sbtを使用しているプロジェクトに対してクラスパスの設定を自動的に行う。また、プロジェクトを右クリック-[SBT Command...]で任意のsbtコマンドを実行することができる。

esbtは以下の更新サイトからインストールすることができる。

  • esbt更新サイト
    https://raw.github.com/scalastuff/updatesite/master

まとめ

Scala IDE for Eclipseはこれまで定番の開発環境が存在しなかったScalaにとって大きな意義のあるリリースといえる。ScaladocやXMLリテラルの補完ができなかったり、クラスやメソッドの参照元の検索ができないなど、JDTと比べるとまだ機能的に見劣りする部分も見受けられるものの、充分に実用的なツールといえる。

Javaユーザにはお馴染みのEclipseで実用レベルの開発環境が利用できるようになったことで、これからScalaをはじめてみよう、というユーザもJavaからスムーズに移行することができるだろう。今後のScalaのさらなる普及に期待したい。