Text editing for fun and profit

In the attempt to stream­line the process of main­tain­ing the myr­iad scripts and con­fig files that I use day to day as part of both my day job and my droll hobby. I've used Text­Mate for every­thing, which I've pre­vi­ously dis­cussed (par­tic­u­larly using it in con­junc­tion with CSSEdit, which we'll come back to). But this has sort of spi­raled out of con­trol as I've spent more time work­ing with PHP scripts (such as Word­Press themes) and I've started to won­der about the newer gen­er­a­tion of all-in-one editors.

First things first, I should prob­a­bly talk about Text­Mate. Text­mate 2 feels like vapor­ware.

Is it? Prob­a­bly not. And in the inter­est of full dis­clo­sure, I wrote this post in Text­Mate using the not-utterly-terrible Blog­ging bun­dle.

How­ever, it's been a few years since there was any­thing espe­cially novel about Text­Mate, and this doesn't help the fact that the edi­tor is get­ting a lit­tle long in the tooth visu­ally. This isn't really a prob­lem, as a good edi­tor can out­last almost any­thing else in the envi­ron­ment sur­round­ing it. Many, many cranky peo­ple still use vi and emacs, which have both out­lasted the oper­at­ing sys­tems they were built for.

I've just grown weary of hav­ing to fina­gle and finesse Text­Mate into usable shape. Admit­tedly, the Green Mole­skin mod helps sub­stan­tially (good bye project draw­ers!), and the use of updat­a­ble bun­dles has kept this edi­tor viable in these rough and tum­ble times. I just can't help hat­ing the fact that I have to keep Cyber­Duck open if I'm edit­ing some­thing remotely. Lack of SFTP/SSH sup­port really is all I'm wist­ful about. Finicky bun­dle exten­sions (the Blog­ging bun­dle specif­i­cally is what I'm think­ing of) are annoy­ing but they are decid­edly not deal breakers.

The Chal­lengers

Since I am a geek, and there­fore always look­ing for a bet­ter tool, I began test­ing Coda ($99) and Espresso ($79.95 or $64.95 if pur­chased with a CSSEdit License; It's unclear if spe­cial pric­ing is still avail­able if you already own CSSEdit). Both offer a gen­er­ous, fully func­tional, trial period. Both offer promises of kitchen-sink edit­ing (defined as being able to han­dle all of my edit­ing needs with­out leav­ing the app, includ­ing CSS edit­ing, script edit­ing, and remote filesys­tem edit­ing over SFTP/SSH).

Panic is one of the top old-school Mac­in­tosh soft­ware com­pa­nies. Their web­page is slick and their appli­ca­tions are pol­ished like some sort of gran­ite space mir­ror. Coda is their rel­a­tively sea­soned (released in April of 2007) web devel­op­ment appli­ca­tion. MacRab­bit (also an extremely slick, in the lick-able sense, Mac­in­tosh soft­ware devel­op­ment com­pany) then released Espresso dur­ing March of 2009 into the same kitchen-sink web devel­op­ment mar­ket that Coda was fight­ing for. If:

  • you work with HTML and CSS
  • you work in a lan­guage like PHP or perl
  • you hate Dreamweaver

then Panic and MacRab­bit want your dollars.

Espresso

Espresso, editing a ruby script

Espresso, edit­ing a ruby script

I started with Espresso, as I am a reg­u­lar CSSEdit user. As men­tioned ear­lier I have had noth­ing but good things to say about CSSEdit, espe­cially since they rolled in the live preview/x-ray and local over­ride fea­tures. Espresso is exten­si­ble through the use of small plu­g­ins called Sug­ars. Unfor­tu­nately, this means that as of today it also has poor lan­guage sup­port (the Cof­fee House aggre­ga­tor shows that Sug­ars are rel­a­tively imma­ture and that there is no best-practice or gen­eral stan­dards for them yet.). Of note is that there is no real sup­port for Ruby yet, which is annoy­ing as all hell since most of my back-end scripts are in Ruby. You'll see in the included screen­shot that Ruby doc­u­ments are just plain text doc­u­ments, with no syn­tax high­light­ing. How­ever, HTMl, PHP, and Python sup­port and high­light­ing were all excellent.

Inter­est­ingly, Espresso has none of the CSSEdit guts worked into it from what I could find. It's very much a web pro­gram­mers edi­tor, not a web designer edi­tor. While it wasn't uncom­fort­able to work with CSS in Espresso, I found myself switch­ing over to CSSEdit more often than not. I imag­ine that in time MacRab­bit will prob­a­bly roll CSSEdit and Espresso into a sin­gle appli­ca­tion. For now though, it's more con­text switch­ing, with no gain in pro­duc­tiv­ity to show for it.

Espresso shows promise (it is a beau­ti­fully designed appli­ca­tion), and the con­cept of work­spaces is novel. I appre­ci­ated the abil­ity to work on some­thing locally while auto­mat­i­cally pub­lish­ing it remotely, and Sug­ars have the poten­tial to be as awe­some as Bun­dles, if not more so. But much as every child has the poten­tial to be pres­i­dent some­day, only time will deter­mine if Espresso's Sug­ars are mak­ing me cof­fee for $6.00 an hour in a few years.

Coda

Panic's chal­lenger for my hard-earned edi­tor dol­lars is Coda. Coda does a few inter­est­ing things, like inte­grat­ing the SubEthaEdit engine for col­lab­o­ra­tive edit­ing and incor­po­rat­ing the Trans­mit core for remote file oper­a­tions. As of late it also sup­ports plu­g­ins, though I've been unable to really find much in the way of usable plu­g­ins, since they're a rel­a­tively new feature.

The kitchen-sink approach that Panic took with Coda also extends to hav­ing a built-in ter­mi­nal, which can con­nect to a local machine or a remote machine, for code debug­ging, remote oper­a­tions, or what­ever you'd nor­mally keep a ter­mi­nal open for while devel­op­ing. Coda is a very, very com­plex appli­ca­tion, and that's ulti­mately the prob­lem I had with using it.

Coda's weird autocomplete suggestions

Coda's weird auto­com­plete suggestions

Coda wants to be every­thing at once, and it's very good at most things that it does. The text edi­tor never feels like it's hold­ing me back, but one of the big quirks I found was that the con­stant language-unaware auto-complete sug­ges­tions are much, much more aggra­vat­ing than helpful.

I also found lit­tle util­ity in the included HTML ref­er­ence, but that's only because I know HTML and CSS very well (not that my blog lay­out implies this, but I do. Hon­est.), and for a devel­oper who only uses HTML to present manip­u­lated data, I can see it being a help­ful ref­er­ence. Panic has recently (as of ver­sion 1.5) added the abil­ity to point Coda towards other web­sites as ref­er­ence guides, and that's much more use­ful long-term.

Con­clu­sion

At the end of the day the only real util­ity Coda and Espresso offer me is remote edit­ing. They don't sup­port any con­fig­u­ra­tion file for­mats and their sup­port for any­thing except "web lan­guages" (ASP, PHP, perl, Python, Action­Script, HTML, CSS and kinda-sorta Ruby) is poor at best. Text­Mate has bun­dles for Apache, nginx, and SSH, as well as gen­eral sup­port for any of a vari­ety of key-value pair style con­fig files. it also sup­ports Bash and these are ulti­mately the make-or-break fea­tures for me.

How­ever, I rec­og­nize that Espresso and Coda aren't try­ing to be the pro­gram­mers swiss army knife that appli­ca­tions like Vim or Text­Mate already are. They're edi­tors geared towards web devel­op­ers. Unfor­tu­nately, while that is a siz­able 20% of my needs, the other 80% of my work is deal­ing with con­fig­u­ra­tion files every sin­gle day I am on the clock.

For the time being, it looks like I'm stick­ing with TextMate.

Follow-up ques­tions

You might ask now "Why not MacVim or BBE­dit? What's wrong with Tex­tWran­gler?" Well, BBE­dit is an excel­lent edi­tor that just took too long to have its visual appear­ance over­hauled. It used to look exactly like a Clas­sic Mac OS appli­ca­tion run­ning inside a Cocoa OS X frame. They've just released a new ver­sion that I'm told would be worth my time to test and no longer looks like a very pow­er­ful edi­tor hid­den inside a child's toy. I may revisit it soon and see if it's shap­ing up into some­thing that doesn't make me want to punch my mon­i­tor in frus­tra­tion. Tex­tWran­gler feels almost like bor­der­line aban­don­ware at this point and it's an extremely watered down pro­gram­mers edi­tor for the lan­guages I'm work­ing in and for the amount of work I have to do. MacVim is an excel­lent port of Vim to Mac OS X, but at the end of the day it is Vim, and Vim gives you AIDS. Worse still, if you use Aqua­macs then your gen­i­tals will spon­ta­neously combust.

One Comment

  • Unlike one of the com­menters on the Macro­mates blog, I HAD removed it from my feed reader and didn't even know that Allan had acknowl­edged the sta­tus of his vapor­ware. I agree with you on Coda and Espresso and most of my work IS web work, how­ever I still can't switch. I acci­den­tally hit tab short­cuts all the time in Coda and Espresso and can't bring myself to spend the time required to give either a try any­more. I put the Green Mole­sk­ine theme together to revamp TM and get rid of the circa 10.2 OS X eye­sores and hope­fully keep me happy until TM 2 comes out. I can wait. I will wait. Oh yeah, and I'll be there wait­ing to make a new icon to get rid of the purple.