JetBrains RubyMine™

先日のエントリで紹介したRDE(Ruby Development Environment)だが、Rails(2.2)の実行はできるものの、デバッグを行うのはちょっと無理のようだ。(私ができないだけかもしれないが、ブレークポイントを張って、実行中にRDEのデバッガで割り込みむと、serverのrequire File.dirname(__FILE__) + '/../config/boot' 内でスタックする)

Rubyの素晴らしさの一つは実行の手軽さにあるので、IDEを使わなくとも、いやむしろ使わないほうがいろいろと楽なのだが(Railsだってruby-debugを使うことで普通にデバッグできちゃうし)、世の中には「統合開発環境」(以降IDEと略する)が無いと気が済まない御仁がおり、そのような人たちにはIDEで動くことも見せてやらなければならないのだ。

ここまで、RubyのIDEとしては、上記のRDEの他に

を使ってきたが、今回は上記の製品の強力なコンペティターとなるRubyMineを使ってみようと思う。

RubyMineは、JavaのIDEであるIntelliJ IDEAや、リファクタリングツールであるReSharperで著名なJetBrainsが公開しているRubyのIDEだ。

  • JetBrains RubyMine


RubyMine™ Public Preview - JetBrains
JetBrains RubyMine Blog


なお、マイコミジャーナル等が既にレポートしている。
【コラム】イマドキのIDE事情 (46) JetBrainsのRuby IDE「RubyMine」を試してみる エンタープライズ マイコミジャーナル

マイコミの記事にもあるが、ベースとなっているのはIntelliJ IDEA、つまりJavaの開発環境であり、実際、RubyMine自身はIntelliJ IDEAにプラグインすることができるそうだ。
現在無償で公開されているのはPublic Preview版であり、対応プラットホームはWindowsとMac OS XLinuxだ。(Swingがまともに動けば他のプラットホームでも動きそうな気がする) なお、2009/02/17の時点でBuild 715とダウンロードサイトには表示されている。

  • インストール

インストールは至極簡単。Windowsを使用している場合はインストーラを実行するだけだ。

  • 開発手順

一般的なIDEと同様に任意のディレクトリ配下をプロジェクトとして管理することにより、開発作業は開始される。なお、プロジェクトを作成した際にRubyの設定がされてない場合は(最初大抵はそうだろう)以下のsettingsダイアログが開くので、使用するRubyインタプリタへのパスを入力する。(ターゲットとなるRubyインタプリタは複数指定することができるので、複数のバージョンのRubyを用途によって使い分けることができる)

この操作により、プロジェクト作成時にターゲットとしているRubyの環境がパースされ、使用しているライブラリィ、gemがプロジェクトに組み込まれる。SSでは見つかったgemが列挙されているのがみえるが、これは一度プロジェクトを作成し、Ruby環境をパースしないと更新されない。

プロジェクトに読み込まれているRubyライブラリィとgem

なお、現時点で作成できるプロジェクトは「Empty」つまり空のプロジェクトとRails用のプロジェクトだけだ。

今後は増えていくのだろうか。

一般的なスクリプトに関しては即、直接実行できる。なお、RubyMineはRDTやNetBeansと同様にデバッグに関しては、rubygem 'ruby-debug-ide'を利用しているようで、ターゲットのRuby環境に同gemが見つからない場合、エラーとなるので注意が必要だ。(ちなみに、ruby-debug-ideのインストールには依存している'ruby-debug-base'、'linecache'も別途必要)
プロジェクト自体を選択して実行又はデバッグを選択すると、Rails、Rake、Rubyスクリプトの実行を選ぶことにより、最も適した実行パラメタが使用される。

テバッグウインドウは「Debug」と「Console」に分かれており、Debugではスタックトレース、変数の監視、監視式の管理が、Consoleでは標準出力やエラーログのトレースを見ることができる等、使い勝手はIntelliJ IDEAと殆ど変わらない。

なお、このSSはRails2.2で動作中のscaffoldを試しにデバッグしている時のデバッグウインドウである。

  • エディタ

彼のマーチン・ファウラーに「IntelliJ IDEA以前と以後」と言わしめたように、これ以降のIDEに多大な影響を与えた素晴らしい開発環境をベースにしており、今更解説する必要も無いだろうが、高機能なエディタと入力補完、高度なリファクタリングツールは一度使うと癖になる程に便利だ。

当たり前だがテキストエディタとシェルだけを使っている時の軽さと自由さは無いが、一般的には開発環境が好まれるし、特にWindowsプラットホームはそうだろう。
IDEには必須なキーバインドを機能も充実しており、Rubyの開発に使用する可能性のある殆どのアプリケーションをカバーしている。

  • その他

これは私が最初にIntelliJ IDEAを使った時にも感じたことだが、デフォルトの設定では液晶モニタ(殆どがそうだろう)上でのエディタフォントのレンダリングが汚い。

IntelliJ IDEAに限ったことではないが、少し前までJavaで書かれたIDEはフォントの描画が苦手なケースが多く、当時のIntelliJ IDEAも私の記憶では、エディタ上のフォントにアンチエイリアスをかけることが出来なかった。※

RubyMineでは設定により、Java1.5以降対応しているフォントのアンチエイリアシングに対応しており、IDEAでの不満は解消されている。

このSSのように、settings->Edtitor->Appearanceで「Use Antialiased Font」をチェックすることで、以下ように非常に綺麗にフォントがレンダリングされる。(個人的に一番英字が綺麗に見えるDialog Inputを選択している)


他にも書きたいことが山ほどあるのだが、長くなりそうなので今回はこの辺にしておこう。

RubyMineはさすがにJetBrainsらしく、スマートで素晴らしい開発環境だ。RubyRailsの最低限の知識は必要だが、それさえあればすぐに使い始めることができるだろう。

特筆すべきは、ここまで書いた作業を行うのに、私はRubyMineのドキュメントに全く目を通さなかったということである。アフォーダンス(Affordance)に優れているとはこういうアプリケーションのことを言うのだろう。

現在"Public Preview"ということで、ロードマップでは1Qのうちに製品版を発売する予定のようだが、既にこれだけ高い完成度を誇っている。できるだけ安価に提供されて(できれば機能を限定したオープン版が欲しいよね)たくさんの人が使って欲しいものだ。

IntelliJ IDEAを試用した時のバージョンは幾つだったか忘れたので、定かではない。現在のバージョンではRubyMine同様に解消されているのだろう。