That's it. I'm done with TextMate. It hasn't been updated in over 2 years, either for essential functionality (replace in path) or performance fixes (searching through log files) or UI issues (how many boxes must you click to enable autosave?) or bug fixes. Every few months the author pokes his head up and says "I'm working on TextMate 3.0!" and then disappears again, happily accepting new license fees into his PayPal account.
I've just been bitten twice in two weeks by a bug that caused not just data loss, but data mangling in a way that was very difficult to fix. Here's the rough steps to reproduce:
- Edit some files in TextMate
- Leave TextMate running in the foreground
- Switch to console and "git pull" in the latest code from your workmates
- Run a search-and-replace that edits a file that was changed (by someone else) during the merge
- Save that edit
You'll see (with "git diff") that your version of the file has your new post-merge changes... but it also has reverted your buddy's changes from the merge. It's like you decided that those changes were no good and reverted them yourself and then added your own.
If you fail to notice this before checking in, you will totally hose your version control... but just for that one file. You can't just revert a whole commit... you'll have to step through change by change to figure out which change was theirs, which change was yours, and which change looks like it was yours but was actually an inadvertent revert of theirs!
I can't work under these conditions. I'm switching to RubyMine today. See http://bjclark.me/2010/03/10/rubymine-a-love-story/ for why.
P.S. I just found a bug report for this dated 2008-04-02. That's just about 2 years ago for a critical data-losing bug. Woot.

I've been using RubyMine since 1.0 and can't say enough about how great it is. How anyone uses TextMate or vim or emacs or any other text editor on large projects is beyond me. RubyMine is worth the price for Cmd+B alone.
Well good luck with RM. You get some more power but at the cost of problems like:
There are many features I wish I had in TM that RM has. But here's what it comes down to for me (and it's sort of a close call):
1) The base of every good IDE must be a GREAT text editor. That was a big difference between Intellij and the old bloated java IDE's. RM is not a great text editor, it's not snappy and it cares way too much about trying to eval the ruby code the way Intellij eval'ed java. Of course you get some power here when it works well but when it doesn't...man do you lose time and, more importantly, flow.
And having lived with both, simply having good syntax highlighting on ruby code is kind of fine, for me. It's not java where you needed a tool to deal with all the boilerplate.
2) Stability and performance. The issues that come up are exotic and often not reproducible, but they come up on a regular basis. I'm more or less certain that one or two flow states will be interrupted per day.
We don't care to publish the latest RM issues people are having on our standup blog, but if we did I think you might think about this a lot differently.
Again this is not to say that TM is great. In fact RM blows TM away on the tools "around" the text editing - cross-project search, scm integration - it's just (in my judgement) not that pleasant as a text editor that encourages flow, which is priority #1.
I'm nearing my evaluation period for tm and am very reluctant to chalk up the license fee given the staleness of the product. I have the same concerns about RM though. 90% of the time I just want a super responsive text editor and RM slows me down. I'm not sure what to do.
@Alex Neth
Have you tried the classic editors such as Vim? They're a bit spartan, but they're free and edit text very well.
http://www.vim.org/download.php
They also have a bunch of plugins for things like git and rails.
I use RubyMine almost exclusively, and I agree with everything Steve wrote above. I think it really depends on the person. How much are you willing to put up with to get all the kick-ass features that it has? Stuff like "Go to symbol", or ⌘+click to make references to classes, files, methods, etc. hyperlinks... At this point I couldn't get on without it.
For me, there is no vi-emulation worth using for textmate so I'll put up with quite a lot from RubyMine. Plus it is actively developed and released frequently. It's gotten a lot better over time and I expect it to keep getting better.
I'll try TM2 if it ever comes out, but for me TM1 is little more than a replacement for TextEdit.
Vim all the way. If you do a lot of Rails work, http://rails.vim.tpope.net/ is worth every penny.
Expect an exceptional intense learning curve, followed by a couple of decades without switching editors.
Actually, make that 19 years
Plenty of great options out there. Emacs & Vim have become extremely powerful in the Ruby space; a simple clone of someone's config on Github and you're up and running immediately.
And most have Textmate modes to keep the good parts like @defunkt's Textmate.el for Emacs:
http://github.com/defunkt/textmate.el
I will admit though I'm really curious what TM2 is going to hold; if we ever see it... But now that I've been on Emacs for almost a year now, I see no reason why I would ever go back.
@mwillliams
Hi,
I started developing another generic text editor some time ago. Although I'm not a Rubyist myself it's one of my number one priorities to support great syntax highlighting for Ruby. It is snappy and does also read full rails logs, asks you before you want to save smth. (also after find and replace)...
If you want to try out "Pacu" take a look at: http://www.cyblogic.com/en/products/1-pacu
It's probably not as feature complete as textmate. If you feel there is something missing let me know. (Excuse me for placing an add here so bluntly;)
It's all about the right tool for the right job.
I use TextMate 99% of the time for basic text editing and general Rails development. It's simple, fast, and generally a good editor. Snippet support is awesome. Bundles (cucumber, haml, etc) are awesome.
TextMate also really sucks that the following:
For log files (or any file over 10,000 lines) I only use vi or unix command line tools. RubyMine isn't much better than TextMate in this department in my experience.
RubyMine is pretty good at refactoring and search and replace, but it's a pretty crappy text editor. It's slow and crashes frequently (beach ball of death, 700m+ of memory, thanks!). Also, releases break lots of stuff, sometimes multiple times between releases. Everyone is always searching for the 'least crippled' release. I've never seen cucumber feature running work (everyone somehow lives with running features in a terminal when TM has amazing focused run support). I also kinda hate its fuzzy finder except on rails projects that have more than 100 controllers (admittedly, TextMate file finder falls down when you have 50 files named '_form.html.haml')
I find your problem with 'atomic saves' in TextMate to be pretty hilarious considering RubyMine's settings pane would make most 747 cockpits look pretty minimal. :)
I'll cast my vote in for vim as well. Vim fuzzy_finder plugin + ctags covers all navigation needs. I've had trouble with the rails.vim plugin path breaking (seems like rails.vim doesn't like HAML) so mapping Rrefresh! to r made it easy to fix on-demand.
Brandon - I agree with all your points save one. (Get it?)
Yes, RM has a million settings. But at least they're all in one place, and there's a search function, and they're organized. TM also has a million settings, only in TM, the million settings are spread around the menus, the preferences dialog, and the bundle editor, and some of them (e.g. autosave and key bindings) can contradict each other with no way to resolve the contradictions.
I had a last-straw moment with RM yesterday. We were doing a simple cross-project method inlining, and let's say there were about 60 references (mostly in tests).
Here's what this magical IDE got us:
My pair pointed out that we could do a cross-project regexp search and replace. Like you do in a good text editor.
Then I started thinking about this whole it's-an-IDE claim. It's not really true...not like Intellij. I think I successfully F4 into maybe half of all the methods I hit F4 on. Shift-F6 has similarly limited capability and if you're not careful with it in a dynamic language you can do damage. It's a dynamic language and RM is doing its best, but do inconsistently-working IDE features really get you anywhere? Isn't it almost worse that it works sometimes vs consistently-not-at-all?
One thing I think we can all agree on is it's a FAR worse text editor than TM.
Have you tried Netbeans? I've been using it for over a year now and I'm pretty happy with it. Used it on both Windows and Mac. I don't know if it has any Git integration since I still just use SVN, but then again the only SCM integration I "use" is when it shows me uncommitted changed lines in the gutter. I still do commits from the command line.
+1 I left TM (and went back to vim) quite a while ago when I realized that TM was essentially abandonware. The only thing I missed from TM was CMD+T but I replaced it with fuzzyfinder_textmate (which is now abandoned) and then Command+T (http://www.vim.org/scripts/script.php?script_id=3025) which is most excellent.
Vim is fast, versatile, reliable, cross-platform, and will be around forever. Your time is important, invest it in something that will last.
so, alex, more than two months later, how are you liking rubymine?