making things better, making better things

Thursday, April 9, 2009

RubyMine (IDEA for Ruby)

Quick thoughts on trying out the RubyMine IDE (based on IntelliJ IDEA) today:

  • It was probably unfair of me to test it on today’s project. I was working on someone else’s Radiant extension, updating the tests so they would run with the latest version of Radiant. That means (a) I was spending almost all my time in the tests, and (b) I was working with a directory structure that RubyMine didn’t quite know how to deal with.
  • That is, my “project” was a subdirectory of a Radiant installation, and depended on code from elsewhere in the installation, and I didn’t know how to tell RubyMine about that.  So the IDE couldn’t figure out where a lot of my classes were defined, let alone provide useful code completion; and when stack traces in the test runner included code from outside my subdirectory, it didn’t make them clickable.  I had to locate the file manually.
  • The open file dialog was one of several places where I would’ve liked a little native Mac magic.  I’m pretty proficient with the Mac file chooser; RubyMine’s homemade one just felt kind of lackluster.  And it doesn’t seem to be keyboard-traversible.
  • Speaking of which, more keyboard shortcuts needed. Command-O is pretty standard, and Command-N… should not be “Go To Class”. Also, I chose the “Default for Mac OS” keymap, but it’s missing a lot – including a bunch of basic Emacs keystrokes (C-a, C-n, etc.) that are built into Mac OS text fields.
  • I’m pleased that it has Git integration, but my first impression is that they tried to support Git by pretending it’s just like CVS and Subversion.  In particular, I couldn’t find anything that felt like I was working with the index – staging files and individual hunks – although it may have been using it under the hood.  I had to go to Emacs to feel like I was getting the git support I wanted.
  • Since I keep mentioning Emacs, I have to ask, does anyone else remember when people used to call Emacs bloated and slow?  This thing’s faster than NetBeans and Eclipse (last time I used them, which might have been two years ago), but it’s, uh, not shy about RAM.
  • Anyway.  The built-in test runner was nice!  I couldn’t find a quick way to invoke it for an individual spec file – I had to set up a configuration for each one I wanted to use – but once I had it set up, it was easy to get into the flow of test and fix.  One missing feature is the ability to get started investigating a test failure while the other tests are still running; as it is, I had no choice but to go read comics and Facebook while waiting for an opportunity to look at the test that failed right out of the gate.  Update: Turn off “Track Running Test” (the eye icon).  Saved from Facebook!
  • The text editor wasn’t able to help me much, but it didn’t often get in my way – which actually is pretty rare among Ruby-”supporting” editors (Emacs included).  I’m pretty sure on a standard Rails project it would be a joy to use.

All in all it’s a promising beta, and I’m hoping to get a chance to do some Rails hacking in it before my trial expires, or it gets out of beta, or whatever happens that makes it not be free anymore.  I kind of want to go look at the competition, see how far it’s come since I last gave up on IDEs.  But on the other hand I kind of want to go play Enchanter.

Update: I played Enchanter.

posted by erik at 11:13 pm  


  1. Hi,

    >including a bunch of basic Emacs keystrokes (C-a, C-n, etc.) that are built into Mac OS text fields.

    Thanks we didn’t know about this. If you provide a full list of supported Emacs bindings in MacOS, I will grateful you for help

    > git support
    Yes, we plan to improve it. This is initial version.

    >test failure while the other tests are still running
    This isn’t clear for me. RM’s Test runner shows output and allows to navigate to stacktrace when other tests are still running.

    Best regards,
    Roman Chernyatchik,
    RubyMine team

    Comment by Roman Chernyatchik — April 10, 2009 @ 3:35 am

  2. [...] is out, and I’d felt positive enough about the beta that I wanted to give it a try… but I didn’t want to do it in any existing working [...]

    Pingback by Echographia » I uncorrupted a git database! — May 11, 2009 @ 5:45 pm

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress