What Editor Do Rubyists Use?

editors

Well, you’ve decided to learn Ruby, have you? That’s great! Ruby is a wonderful language that aims to make programmers happy. Go for it! As you enter the world of Ruby you realize, “I need an editor”. OK, Google, find me the best Ruby editor.

Holy smoke! There are a ton of editors, each with a community that swears by its features. “Use vim!” “Use Emacs!” “Use TextMate!” “Use Sublime Text!”. You recoil in fear….what if you make the wrong choice???

--ADVERTISEMENT--

This short story, which likely applied to many Rubyists, inspired me to interview established Rubyists about their best Ruby editor. If nothing else, this will show which editors are used by more Rubyists, with some data as to why. My hope is that it will serve as a guide for newcomers to Ruby, or possibly even those already working with Ruby, on which editors are popular.

I spoke to 100 Rubyists. The interviews brought up the following editors (given in order of preference):

  1. Vim
  2. Sublime Text
  3. Emacs
  4. Atom
  5. TextMate
  6. Sakura
  7. Pico

Vim was, by far, the most preferred editor, being utilized by 50% of the interviewees. The charts below tell the tale:

columnchart

piechart

I spoke to two of the most well-known Rubyists: Yukihiro Matusmoto (Matz) and David Heinemeier Hansson (DHH). If you don’t know, Matz is the creator of Ruby as a language, and DHH is responsble for Ruby on Rails. Matz prefers Emacs, while DHH uses the original version of TextMate. I find it very interesting that two pillars of Ruby don’t use the most popular editor, surely something to consider when choosing your toolset.

Regardless, Vim wins the Most Used Ruby Editor award for my sample set. Vim was written by Bram Moolenaar, and first released to the public in 1991. There’s no end to the articles about Vim on the web, including two very good ones here on SitePoint. Islam Wazery penned Getting Started with Vim and Effective Rails Development with Vim, both worth reading if you are choosing the beaten path.

But, what is it that makes Vim so special? Well, the answer is “many, many things”. I will pick a couple of items from an article called Great Vim Features that consists of contributions from many Vim users to try and drive the point home.

Stephan Houban states that one of the features of Vim he loves is the macro feature. At first glance, this feature may not seem so special. q[letter] starts recording a macro, a second q terminates it. The macro is invoked my typing @[letter].

But, that’s just when the fun starts. Let’s say I want to create a macro that does the following: Go down one line and replace the first and the second word. Using standard Vim commands, this can be expressed as: j^dwwhp

Recording this sequence into a macro called @a is done as mentioned previously. Now, you can repeat the macro for all the lines in the file, if you like. Not bad!

Stephan Thorn comes in and says, “This is nice, but the idiom can be improved immensely using :g.”

For example, you’ve got a macro for changing the second word on a line to “foo” qb^wcwfoo<esc>q (man, that looks weird to type). Now, visually select a block you want to perform the macro. Don’t yank the selection, though, instead press :, which will place you into command mode for the selected block (the command line looks like :'<,'>, marking the start and end of the visual block). Then, append g/^/normal @b, so the command line looks like:

:'<,'>g/^/normal @b

(Note: This presumes the macro you recorded was saved with the letter ‘b’.)

This will execute the macro for each line in the visual block. Complex to explain, but it’s surprisingly quick once you’re familiar with visual mode and :g/.

Another contributor in that article compares some features with Emacs:

“IMHO, the single most useful feature of VI which Emacs does not have (AFAIK) is the . (dot) command, which repeats the previous operation. (i.e.: previous insert, replace word, delete word, …). It makes you appreciate why VI is a modal editor.”

(It’s worth noting that Emacs users have responded to this claim, which is another reason to read it.)

Finally, I would like to highlight another comment about someone’s preferred features in Vim:

I definitely appreciate the following features of vim:

  • unlimited undo
  • editing the history of ex commands (issue some ex commands, press : and use the arrow keys)
  • editing the history of search commands incremental search
  • persistent marks

While Vim has a commanding lead in numbers, that is but one consideration. Do you have an opinion? Love Vim? Use Sublime Text? What is your best Ruby editor?

Sponsors

Replies

  1. Don't know too much of Ruby, but - as it's coming from the most prominent IDE developer, JetBrains - it's at least odd not to see RubyMine here

  2. So because RubyMine does more than editing, it gets excluded? That seems a bit short-sighted to me. I happen to use IntelliJ for most of my "editing/development" when I need to work on anything outside of the .NET framework.

    I may not touch most of what that application offers, but it serves my editing twitch very well and gives me the option of utilizing the other tasks it is able to handle should the project require it.

    Everything I see necessary for what most deem "to be a good ruby programmer" is: An editor, a way to write tests, a way to execute tests, and version control. Anything that implements those items and maybe more, seems like a fair contender to me...

    I actually almost bought RubyMine, but I already had a phpStorm license and I wanted to get into Python a bit too, so upgrading to IntelliJ was by far the best decision I've made. I'd highly recommend it as an editor (or the cheaper RubyMine product if you don't need to support multiple languages).

    So I'm not sure on the distinction you are trying to make between IDE and Editor, to me there is a great overlap between the two.

    I've also been spending a lot of time in Cloud9 (again, this may fall under your IDE side, but it is free to use and its editor has been really nice to work with -- gives me quick ways to run/write tests, etc.)

  3. But of course, silly me -.-' I wonder if such article - for most languages, not just Ruby - could be more than just a simple comparison of known players (NetBeans/Eclipse-Aptana/Jetbrains/Komodo) - I guess not too many exotic solutions exists outside of that pack.

  4. Thanks @cpradio for your comment and nice information.Yes, an IDE can surely serve as a text editor, but, as you know, it can also do much more, like compiling code, running code, ...etc.

    There are situations where you just simply need only a text editor, and there are others where you want to go beyond that, to using an IDE.

    Most of whom I interviewed, including Yukihiro Matusmoto (Matz) and David Heinemeier Hansson (DHH) replied with one or more of the editors listed above, provided that I didn't ask them to choose from certain editors, rather, the question was an open question. Even the small portion that replied with RubyMine for instance, when asked that the goal of the interview is about a text editor and not an IDE, the next reply sent from them was a text editor of their choice.

    So, it appeared to me that the community seems to be aware of this distinction between a text editor and an IDE.

    Does that make sense?

  5. Thanks for your comment. Yes, maybe some debate can happen as what would be considered a text editor. For that, I tried to clarify that in my other post where I tried to differentiate between a text editor and an IDE. You can find it here: http://www.sitepoint.com/ides-rubyists-use/
    Please let me know your thoughts. Thanks.

11 more replies