Why is TextMate so popular?

TextMate won the 2006 Apple Design Award for Best Mac OS X Developer Tool. Congrats to Allan and everyone who has contributed to the project.

I was a Vim guy for many years, and recently made the jump to TextMate. I’ve had a few false starts in the past, going back to what’s familiar, but I’ve completed the transition in less than 210 days. (Applause).

There are a couple reasons why I switched. Most important was my belief that while Vim is great at slicing/dicing text, TextMate was built for slicing/dicing higher-level concepts and structures expressed in text. I convinced myself that the context-awareness and snippet-fu that TextMate brings to the table would lead me to be more productive in the long run.

TextMate brings to the commoditized world of text editing what OS X has brought to the commoditized world of operating systems. I think that the tastes and preferences that lead a developer to buy into and evangelize the Mac platform are the same ones that lead that same developer to buy and evangelize TextMate.

A quick analogy: If you look at text editors as operating systems, then TextMate is the OS X of Text OSes. Much like OS X takes the power of Unix and makes it lickably good looking and easy to use, TextMate has taken shell script pipelining and built the necessary abstractions required to profoundly flatten the learning curve.

But, you may rightly say, Emacs has had rich programmability for years. Any Emacs (or Vim, for that matter) guru can duplicate many of the functions that TextMate provides. Not only that, they can take the list of reasons why their editor is arguably better, have the items psychoanalyzed, and emailed to you in an encrypted file, all without leaving the confines of their Text OS, er, text editor.

My response? “Exactly.”

Any Emacs guru can and will do those things, and they will be very happy and productive in the process. Vim, Emacs, and TextMate are all great editors. It’s no longer a matter of what’s the best editor, but rather, what is the best editor for you?

I think that Emacs is the Linux of the Text OS world, whereas TextMate is the OS X of the Text OS world.

Specifically, the things that make users pick TextMate over Emacs are precisely the types of things that make a user pick OS X over Ubuntu Linux as their operating system of choice.

So once a developer makes the deliberate move to OS X, making the subsequent jump to being a TextMate customer is both easy to do and consistent with their underlying value system.

So that’s why Allan has sold scads of licenses. He’s built a great product that strongly resonates with many of the tastes and preferences of his entire target market.

Or…maybe it’s just that the Rails and TurboGears screencasts were flat-out cool. What do I know?

12 Responses to “Why is TextMate so popular?”

  1. Jeremy Says:

    I respect your adoration for your chosen editor. That being said, there are a number of problems with TextMate that any serious developer would be turned off by:

    1. It’s not free or open source. Major points deducted for this.
    2. It’s only for OSX. I know what you’re going to say… “who cares! OSX is all that matters!”. Well, like it or not, most developers work in multiple OSes, which means the hard work you put into learning TextMate is useless away from home base.
    3. No command line version. Seriously… WTF.

    Vive le Vim

  2. mcoyle Says:

    Hi Jeremy,

    Thanks for the feedback. In response to your comments:
    1) TextMate has an interesting model, in that the app itself is commercial, but there is a sizable community that maintains many of the plugins, snippets, etc. So you get much of the benefit that community involvement brings to the table, even though the app is not itself Open Source.

    2) I’ve been a multi-platform guy most of my career, so the value of portable tools isn’t lost on me. Vim is still my editor of choice for Linux and Windows. But I looked at it from the perspective of “What should I optimize for, the 90% of the time I’m using my Mac, or the 10% that I’m using something else?”. Since the odds that I’ll forget vi anytime soon are pretty slim, it was worth the jump for me.

    3) TextMate won’t run in a console/xterm, but it can be invoked from the command line. FYI, here is the output of “mate -h”
    –begin command line stuff–
    Usage: mate [-awlrdnhv] [file …]
    Options:
    -a, –async Do not wait for file to be closed by TextMate.
    -w, –wait Wait for file to be closed by TextMate.
    -l, –line
    Place caret on line after loading file.
    -r, –recent Add file to Open Recent menu.
    -d, –change-dir Change TextMates working directory to that of the file.
    -n, –no-reactivation After edit with -w, do not re-activate the calling app.
    -h, –help Show this information.
    -v, –version Print version information.

    If multiple files are given, a project is created consisting of these
    files, -a is then default and -w will be ignored (e.g. “mate *.tex”).

    By default mate will not wait for the file to be closed
    except when used as filter:
    ls *.tex|mate|sh -w implied
    mate -|cat -n -w implied (read from stdin)

    An exception is made if the command is started as something which ends
    with “_wait”. So to have a command with –wait as default, you can
    create a symbolic link like this:
    ln -s mate mate_wait

    –end command line stuff–

    Thanks, and Happy Vimming :)

    –Mike

  3. Jeremy Dunck Says:

    KDE IOSlaves are cool.
    http://simon.incutio.com/archive/2003/12/10/pythonFilesystems#comment6

  4. petrilli Says:

    As someone who, at one point, had over 60K of elisp for Emacs — and had to byte-compile it to get it to start quickly enough — I switched to TextMate for one simple reason: it gets the heck out of my way. It’s clean, generally powerful, and the community around it has created some amazing bundles for snippets and other things. Yes, I could have done all this in Emacs, but I didn’t in general.

    As for “no serious developer,” I find that akin to religious arguments, and honestly, Emacs has been open source its whole life, but I’ve never touched anything but the Lisp components, which, like TextMate’s bundles, are available free. The core? Not interesting. Personally, I find it either a freaky fetishistic behavior, or more likely just general cheapness.

    Great software requires a huge amount of time; time is money; I don’t mind.

  5. Reg Braithwaite Says:

    “there are a number of problems with TextMate that any serious developer would be turned off by”

    Jeremy, do you mean to suggest that TextMate users are not serious developers? One of your points is that TextMate is not free as in beer or free as in speech. This leads me to wonder if you are saying that serious developers do not pay for their tools, which in turn implies that developers who pay for their tools are not serious.

    I know I’m making some inferences here. Please set me straight as to what you mean.

  6. checkmate Says:

    The biggest problem with TextMate is that it will melt down your machine if you open a very large file. Accidentally click on a log file or big sql dump in the file drawer, and you are going to have to reboot. Ugh.

  7. J Lianoglou Says:

    Checkmate, I have to agree with you on the whole huge file thing… it’s funny, but no GUI based text editor handles huge text files as well as BBEdit. Not on OS X, anyhow (can’t attest to stuff on other platforms).

    Still, TextMate is pretty much the best thing since sliced bread… and — by opening large text files — you can even toast it!! ;-)

  8. Piers Cawley Says:

    The thing that keeps me using Emacs rather than TextMate is the ability to split windows. Whilst I like the tabbed approach for a lot of things, sometimes I really want to keep both the test I’m writing and the controller I’m making it pass with visible at the same time and spawning an whole new window is just overkill.

    There’s a couple of annoyances (which may now be addressed) with the way it handles indentation, but the split window issue is the showstopper for me. It’s been requested on the textmate wiki several times, but so far without response from Allan.

    And yes, I like textmate enough that I’ve bought my own copy.

  9. Tips Says:

    Another option is Cream. It’s a version of gvim with a collection of scripts that make it easy to use. If you set Cream to “expert mode” in the preferences, you can get back into vim’s insert mode with the ESC key. Cream has a great Ruby on Rails plugin that gives you abbreviations and other nice features.

    Just another open-source option. Cream is as easy to use as Notepad, but has all the features of vim under the hood.

  10. James Says:

    “It’s not free or open source. Major points deducted for this”
    BOOOOOOOOOOOO HOOOOOOOOOOO!

    Shall I not hire you because you insist on working for money?

    Stop being a cheapskate, textmate costs pennies for what it can do, its about the price of a half decent meal out but can have a massive effect on your workflow.

  11. regeya Says:

    “Shall I not hire you because you insist on working for money?”

    You don’t comment on the ‘open source’ nature of things, so I see you won’t mind if I keep my code a complete secret from my co-workers. Job security for me! WOOHOO!!!!

  12. Brian Adkins Says:

    I have to agree with Piers regarding split screen, although I use it via vim. There are other things I really like about vim, but when I discovered TextMate didn’t have split screen capability, that became a deal breaker for now.

    I usually have at least 2, and usually 4, split screens active at once, when I’m coding and being able to view 4 files at once and easily move the cursor between them with keystrokes is extremely important to me.

    If TextMate gets split screen functionality, I would be interested in checking it out, but the cross platform thing is also important - it’s nice to be able to leverage my vim knowledge when I ssh to a server and need to edit a file.

Leave a Reply