This post is part of a periodic series about The Tools I Use.

Being a Smalltalk programmer, I’m used to having a rich set of live, dynamic development tools available when I’m programming. When I work in other languages, I miss what I have available to me in Smalltalk.

For most text editing tasks, I tend to prefer Emacs. I learned it years ago when I was a Lisp programmer, and so it’s pretty familiar to me. When I first started learning Ruby, I stayed there.

At one point, I needed to work with some Java code. I was building a plugin for Jenkins, and that needs to be done in Java. I was also porting the latest version of FitLibrary to Smalltalk, and I needed some way of navigating the Java code I was porting.

Java source code tends to be spread across many directories. Without some kind of “project” extension for Emacs, it gets pretty tedious to try to navigate the code, especially in an unfamiliar codebase. For these tasks, I wanted something richer than a text editor.

I’d tried Eclipse in the past and wasn’t terribly fond of it, so for this project I decided to try IntelliJ IDEA. There’s a free Community Edition, so I gave it a shot. I found it to be a very good IDE.

At that point, I remembered that the same company (Jet Brains) also makes an IDE for Ruby, called RubyMine. I figured it was worth trying based on my experience with IDEA.

RubyMine is a very good IDE for Ruby. It’s easy to navigate around projects. There are lots of tool integrations (Git, Bundler, Rake, Rails, various test runners, etc.). There are automated refactorings that work well. There’s a debugger, which can be handy at times.

I only get to write Ruby code periodically, so I’ve only scratched the surface of what RubyMine is capable of. But I find that I prefer using it for any significant Ruby development I do. I might do simple one-off tasks in Emacs, but if I’m doing anything more involved, then it’s time to pull out RubyMine.

While I’ve never found anything as rich as Smalltalk for working with code, RubyMine and its siblings are very good IDEs and well worth a look.

I’ll note in passing that JetBrains makes IDEs for many different languages and they’re all built on the same foundation. Even if you’re not a Ruby programmer, they might have an IDE for you. For example, I’ve watched a number of JavaScript screencasts, and I see a lot of WebStorm in those.

Most Ruby programmers I know are passionate about their current text editor (Vim, Emacs, Sublime, Atom, etc.). But I recommend giving RubyMine a fair shot. You might be surprised by what the extra tools can do for you.

For the record, I have no affiliation with JetBrains, other than being a happy customer.