Marco.org

I’m : a programmer, writer, podcaster, geek, and coffee enthusiast.

My next text editor

TextMate is over.

Suspecting this was going to happen last fall, I tried a few alternatives: BBEdit, Sublime Text 1, and an alpha of Chocolat. At the time, none of them won me over. Once the TextMate 2 alpha was released, I switched to it full-time.

But a few weeks ago, after concluding that TextMate 2 was probably going to be abandoned, I started trying the alternatives again with their significant updates: Sublime Text 2, and Chocolat 1.2.

I’ve now chosen my TextMate replacement, but before I reveal it, let me give a huge disclaimer: You will have your own opinion. It’s probably safer to talk about Jesus, gun control, Israel, global warming, parenting techniques, regional pizza styles, Linux distributions, why I don’t like cats, or my favorite PHP features.

Yet here I am, comparing text editors and giving my subjective and arbitrary opinions on them. What could possibly go wrong?

The big three

Like most software, text editors are best when they’re under active development and have large user communities. These usually ensure the fewest bugs and the strongest ecosystems of plugins and themes. In the world of general-purpose Mac text editors, that leaves three choices, in decreasing order of popularity:

BBEdit: Very long history, very active development, and top-notch developers. Unfortunately, it’s not my style in many big and small ways. I think its long history will continue to endear it to its userbase and long-time Mac users, but it doesn’t feel like the younger apps at all. It also has a much simpler syntax-parsing engine, which I think keeps it very fast but reduces the usefulness of syntax highlighting and scope-related editing features relative to the other editors. But I’m also pretty sure it will outlive them all. I wish I liked it more. (Used full-time for 2 weeks.)

Sublime Text 2: Cross-platform, fairly young, active development. In many ways, it’s “not Mac-like”, possibly because of the cross-platform implementation. It’s a bit ugly in places, and some common operations are unintuitive. But it has a huge fanbase and tons of plugins, and the engine seems solid: it’s extremely fast, seems stable, and supports every modern feature I tried. (Used full-time for 2 weeks.)

Chocolat: Very young, active development. It has the most modern Mac interface, but it also bears a creepy, uncomfortable, Samsung-like resemblance to TextMate: it’s effectively a TextMate clone with a few new features added. It’s very pleasant to use, but its youth is obvious: it’s still noticeably incomplete, and it suffers from serious performance problems frequently. The performance issues scare me, and I’m not sure it will be able to mature into a fast, full-featured, rock-solid editor. (Used full-time for 2 weeks.)

Alternative lifestyles

Vim and Emacs: Not native, very hard to learn, ugly, lack many modern features (flame suit: on). But they’re very powerful, they’re available on all modern OSes, and they work in remote terminals. Bonus feature: you can throw away your mouse. These apps are good for many things, but not the type of app I’m looking for. (Used Vim full-time for 2 years, and still use it on remote servers. Cursed at Emacs a few times in college.)

MacVim: Slightly native, but otherwise the same drawbacks as Vim.

Coda 2: A great web-development IDE by Panic. You couldn’t ask for better developers. But it’s a complete IDE, not a general-purpose text editor, so I can’t really include it here: if you want the type of app that Coda is, you should definitely try Coda, but if you’re looking for a text editor, it probably isn’t a good fit.

SubEthaEdit: A very good editor, but it was dramatically outclassed by TextMate 1. Coda 1’s editor was based on SubEthaEdit’s engine. Recent development seems minimal. I bet that if you’re reading this and you have SubEthaEdit, the last time you launched it was at WWDC, where its collaborative-editing feature is still very popular for publicly shared, collaborative notes. And before that, the last time you launched it was probably WWDC 2011. (Used full-time for a few months in 2006.)

TextMate 1: You could just use TextMate 1 until it stops working. But it has many small flaws, a few big ones, and some performance issues, and it lacks many modern features. It will probably never get another significant update, and it might not even get any future bugfix or compatibility updates. (Used full-time for 5 years.)

TextMate 2 alpha: Development has just been open-sourced after 7 months of going almost nowhere, so it’s probably safe to assume that it’s effectively abandoned. It supports many modern features and is quite good in many ways, but there are huge bugs, shortcomings, and performance issues that will probably never be fixed. If someone else took this over and worked on it full-time for a year or two, it might become a great editor, but today, it isn’t, and there’s nobody at the wheel. (Used full-time for 7 months.)

So what’s next?

I almost picked Chocolat, but its performance problems gave me pause.

So I picked Sublime Text. So far, I don’t love it, but I like it. The more I used Chocolat, the less I liked it, but as I continue to use Sublime Text 2, I like it more.

And I think it has a more promising future of stable, high-quality, long-term development than anything else on this list except BBEdit, which I still wish was more my style, but it still isn’t.

I’ll see how Sublime Text grows on me.