かとじゅんの技術日誌

技術の話をするところ

[Scala] Scalaでコードを書きたいけど、どの開発環境がいいの?

最近、Scala本が増えてきてますが、早い話こういう話になりますよね。本はわかった、コード書かせろとw
実際にコーディングするための開発環境はどれがいいのか、触ってきた感想を超簡単にレポートします。
触った開発環境は以下です。

EclipseScalaプラグインであるScala IDE for Eclipseは頑張っているようですが、時々応答しなくなるとか、まだ安定性に欠ける感じです。まぁ、時間で解決できるような気がしています。安定するようになれば、インクリメンタルビルドも使えるようになると思うので、かなり期待してます。ですが、今はちょっと実用レベルではないと思います。

Emacs + ENSIMEは結構軽そうで よさげ ですが、自分自身がまだEmacs自体に慣れていないという感じ。IDE脳になってしまうとEmacsに戻るのは大変ですね。。

次はNetBeans。これはこれで結構マトモに使えました。だだ、以下の手順どおりにやるとインストールができませんでした。プラグインのファイル自体を手動でダウンロードしてインストールした記憶があります。自分が触ったバージョンはScala IDEとしての機能がまだ十分でなかった気がします。もしかしたら、今は十分に使えるかもしれませんが。
Scala - NetBeans Wiki

NetBeansも悪くないのですが、ScalaのIDEとしての完成度は、IntelliJ IDEA + Scalaプラグインの方が上です。先日のScalaでWicketを始めるで書いたようにMavenプロジェクトでもScalaに対応した環境がつくれます。Scalaで書いたテストも簡単に起動できます。そういう意味では、実用レベルですぐに開発が始められます。

ちょっと古いですが、このあたり参考になると思います。(Scala PowerPackはインストールすると起動時にエラーが出た記憶があります。入れないほうがいいと思います)
IntelliJ IDEA 9 Community Edition + Scala Plugin セットアップ手順 - NetPenguinの日記

IntelliJは良く出来ているIDEだと思うのですが、Eclipseと比較するとインクリメンタルビルドが使えないのでイライラさせられるかもしれません。(これはJDTがスゴすぎるというか、そう簡単にマネができないわけで、これはしゃーないですw)インクリメンタルビルドは使えませんが、sbtのプラグインを入れて、~ compileでソースファイルの変更を検出したら自動的にコンパイルすることで、とりあえず代用できます。
IntelliJ IDEAでsbtを使う | Ken's evitation

さらに、さくさくっと軽快にコーディングしたいなら、JRebelを使えば開発時にクラスを動的にリローディング環境もつくれます。Scalaで開発する場合はライセンスが無償提供されるので試してみる価値はあると思います。
JRebelを使った動的クラスリローディング - ゆろよろ日記
試してないから、アレだけど。WicketでもJRebelは使えるようなので、Scalaな人は、Scala + Wicket + JRebelで、アプリケーションサーバを立ち上げっぱなしで、さくさくっと開発できるんではないでしょうか。Railsぽくやりたい人は、Scala + Play framework + JRebelでやるとLLぽい感じで開発できるかも。
Using JRebel with Wicket | ZeroTurnaround.com

というわけで、Scalaの開発環境もこれから注目ですね。