I’ve been using TextMate to develop Ruby on Rails applications for a very long time. But as of today, I’m abandoning TextMate. And I’m not the only one.
For me, the last straw with TextMate was the issue illustrated in this video. When you have all of your methods folded up, and you delete a line of whitespace that follows a folded up block of code, the editor will in fact delete the entire folded up code block. This might be working as expected, but I expect better.
Some other annoyances I’ve had with TextMate include:
- Random Pinwheeling (lockups that take unspecified amounts of time to clear)
- Sluggish performance
- Drawer behavior: When I want it on the left, I want it on the left. Even if my window is too close to the left side of my monitor. STOP OPENING ON THE RIGHT! DO YOU HEAR ME! (excerpt from an actual conversation with TextMate).
- No significant updates in over two years. Not even the kind you pay for. I guess the upside of this is that any Bundles you find are pretty well guaranteed to work with your version of TextMate, because there’s really only one version.
After making the decision that I couldn’t continue to work in a professional setting with an editor that contains so many productivity-sapping limitations for me, I decided to switch.
I found that in making my list of requirements for a replacement editor, the beginning of it was an enumeration of what sucks about TextMate. I needed:
- Fast Search in Project
- Fast “Find Usages”
- A lack of code-munching bugs.
But there are a lot of things that I like about TextMate. I wanted to keep those features too:
- Fuzzy Match
- Strong Ruby Language Support
- HAML and SASS support
- Modules / Plugins / Bundles
- No Crashing
- Themes and control over colorization
First, I checked out RubyMine, but found that it crashed and froze on me a lot. I can’t have a code editor that crashes or freezes a lot. Alex Chaffee of Pivotal Labs likes RubyMate, however, so your mileage may vary. It’s worth checking out. And you can check it out for free.
Next I investigated Coda: it’s pretty, but doesn’t have a made-for-ruby feel to it. It’s got a very extensible plugin framework, and a lot of plugins made for it, but a couple of key plugins were missing, and I can’t afford to take the time to write the plugins right now.
Then I tried BBEdit: nice, but again: not enough support through plugins for the kinds of ruby development I do.
Then MacVim: which is awesome but I HATE ‘vi’ (if I’m going to use a UNIX editor for programming, it’s going to be emacs).
Finally, I decided to try NetBeans, and found everything I needed, and some stuff I didn’t even KNOW I needed. I was genuinely surprised that I liked NetBeans, given its background as a Java IDE. But the Ruby modules for Netbeans are very nice. Here’s what I liked the most, in no particular order:
- Autotest, running right in the IDE: I don’t have to remember to start it in a terminal. It just runs in my IDE.
- Search. It’s Fast. And I didn’t have to install Ack In Project to make it so.
- When my continuous integration build fails, my IDE is notified, and it tells me so.
- It integrates with bug trackers.
Aside from the “search” item, I didn’t even know I needed half of that stuff. But now that I have it, I can’t go back.
I still use TextMate for a basic editor, and still love the column-wise cut-and-paste feature. But I won’t use it for development anymore.
So long, TextMate. It’s been a ride.