IntelliJ IDEAのPros and Cons

最近IntelliJネタばっかりですが、自分が使った範囲で感じたIntelliJの良いところ、良くないところをまとめて書いてみます。

IntelliJの良いところ

オールインワン
必要なもの(SVN, Git, Maven, etc)が最初から揃っていて、それぞれ完成度も高い。オールインワンなので、IDE全体が良く調和している。
周辺言語のサポート
Scala, Groovy, HTML(*), JS(*), Flex(*)などのサポートが手厚い。Javaの開発に近いレベルで、リファクタリング、コード解析、整形等ができる。Scalaプラグインの完成度は、現時点ではEclipseNetBeansプラグインを圧倒しているし、Flexもコードエディタに限ればFlex Builderより高機能。(*はUltimate Editionのみ)
コード解析
コード解析機能が充実している。FindBugs/CheckStyleと同等以上のインスペクション、推論付き補完、データフローの解析、コード構造の検索/置換(*)、重複コードの検出(*)など。(*はUltimate Editionのみ)

IntelliJの良くないところ

インクリメンタルビルドがない
編集中のコードのエラーはリアルタイムに把握できるが、プロジェクト全体のエラーはビルドするまで分からない。実行時、ビルドが終わるまで待たされる。
インデックス構築が遅い
プロジェクトの作成/オープン時、インデックス構築で数分待たされる。一応バックグラウンド化できるが、その間は基本機能しか利用できない。
操作体系が独特
3種類の補完を場面に応じて使い分ける必要があるなど、操作体系が独特。ただし、慣れれば逆に快適になるはず(補完を使い分けた方が、候補リストのスコープが狭くなって選択しやすいなど)。