Hatena::ブログ(Diary)

りぬの勉強ログ Twitter

2012-04-17

Scala 開発環境としての IDEA と Eclipse

Scala 始めました(*´ω`*)

Java 開発環境として Eclipse を使っていたので、 Scala 開発環境もそのまま Eclipse を使っていたんです。

使い慣れた環境のほうが心地良いですよね。


が、

  • EclipseJava 開発環境と Scala 開発環境の機能差がまだまだ大きかったり
  • IntelliJ IDEA がいいよっていう声がちらほらあるので

IDEA 試してみました。


結局 Scala 開発環境は IDEA に乗り換えたのですが、せっかくなので Eclipse との簡単な比較をメモっておきたいと思います。


※ 間違いがあったら指摘してもらえると嬉しいです(*´ω`*)



試したバージョン

試したのは

です。


IntelliJ IDEA について

http://www.jetbrains.com/idea/

Community Edition はフリーです。

私は Scala 開発なら Community Edition で十分だと思います。



機能比較

Eclipse IDEA
全体的に
安定性 たまに正しいコードがエラー扱いされたりする 比較的安定している
自動コンパイル OK NG(後述)
ナビゲーション
クラス名指定によるジャンプ OK OK
クラスアウトラインの表示 OK OK
クラス/メソッド等が使用されている場所の検索 NG OK
implicit conversion の表示/ジャンプ OK OK
implicit parameters の表示 OK OK
リファクタリング
クラス/変数リネーム OK OK クラス名を変えるとテストクラス名も変えてくれたり
補完/コード生成
メソッド呼び出しコードにて、implicit conversion により追加されるメソッドの補完 OK OK
メソッド呼び出しコードにて、パラメータ名の補完 NG OK
コメント内でのクラス名等の補完 NG OK
implicit キーワード等の補完 NG OK
override メソッドの自動生成 NG 自動生成候補に Object クラスのメソッドしか出ない OK
存在しないメソッドを呼び出すコードから、メソッド本体の自動生成 NG OK
その他
Emacs キーバインドで補完候補内を上下移動 たまに OK OK
sbt マルチプロジェクトの扱い project/Build.scala などを編集するのが手間 project/Build.scala なども、実ソースと同様の手軽さで編集できる

こんな感じでした。 比較途中から 「IDEA がいいな」 って思ってしまったので、あまり詳しくは比較してないです。。


リファクタリング機能なども、 IDEA のほうがすぐれてそうな印象ですが、クラスの移動、リネームくらいしか使ってないので違いは調べてないです。



IDEA の特徴(とデメリット)

と、機能面では IDEA のほうが好みなのですが、 Eclipse とは考え方が違う点もちらほらあったりします。



コンパイルが手動

Eclipse が裏で勝手にコンパイルしてくれるのに対し、 IDEA は手動でコンパイルを実行する必要があるようです。

差分コンパイルなので、そんなに時間が掛かるわけではないのですが、 Eclipse になれていると若干違和感を感じます。


参考 http://www.jetbrains.com/idea/documentation/migration_faq.html


リアルタイムコードエラーチェックとコンパイル処理の齟齬

上に書いたように、 IDEAコンパイル処理が自動で走りません。

そのため、リアルタイムのコードエラーチェックとコンパイル時にでるエラーに齟齬があったりします。

つまり、 IDEA 上ではエラーになっているのに、プログラムは実行できる。。なんてことがあります。

まぁ、両方でエラーにならないコードを書ければいいんですけども。。



さいごに

操作性等は個人の好みもあるかとは思いますが、機能面は現時点では IDEA のほうがよさそうです。


操作性などは実際使ってみないとわからない部分も多いので、 Scala 開発する際は、 IDEA も少し触ってみるといいかもしれないですね。


例えば IDEA のインデントに線をつけてくれる機能とか・・・好きです

f:id:rinu:20120417125527p:image

とはいえ、 Scala IDE for Eclipse は Typesafe team が関わっていたりもするので、今後が楽しみですねー

(http://scala-ide.org/docs/dev/roadmap.html)


そんな感じです(*´ω`*)

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/rinu/20120417/1334636425
リンク元
Connection: close