Close
Glad You're Ready. Let's Get Started!

Let us know how we can contact you.

Thank you!

We'll respond shortly.

LABS
TextMate: The Last Straw

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:

  1. Edit some files in TextMate
  2. Leave TextMate running in the foreground
  3. Switch to console and “git pull” in the latest code from your workmates
  4. Run a search-and-replace that edits a file that was changed (by someone else) during the merge
  5. 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.

Comments
  1. Olly says:

    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.

  2. Alex Neth says:

    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.

  3. Kevin says:

    @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.

  4. Neal Clark says:

    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.

  5. Malc says:

    Vim all the way. If you do a lot of Rails work, http://rails.vim.tpope.net/ is worth every penny.

    * Run the current test file
    * Run the specific test under the cursor
    * Jump between related test / controller / view / model files
    * Replace highlighted code blocks with render partial calls and create the partial
    * Syntax highlighting and completion for all of Rails
    * All the other goodness that comes from an editor that has been under constant development for 10 years

    Expect an exceptional intense learning curve, followed by a couple of decades without switching editors.

  6. Malc says:

    Actually, make that 19 years

  7. 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

  8. 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;)

  9. Toby says:

    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.

  10. Alex Chaffee says:

    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.

  11. jeff says:

    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.

  12. Adam Bair says:

    +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.

  13. Neal Clark says:

    so, alex, more than two months later, how are you liking rubymine?

Post a Comment

Your Information (Name required. Email address will not be displayed with comment.)

* Copy This Password *

* Type Or Paste Password Here *