In the attempt to streamline the process of maintaining the myriad scripts and config files that I use day to day as part of both my day job and my droll hobby. I’ve used TextMate for everything, which I’ve previously discussed (particularly using it in conjunction with CSSEdit, which we’ll come back to). But this has sort of spiraled out of control as I’ve spent more time working with PHP scripts (such as WordPress themes) and I’ve started to wonder about the newer generation of all-in-one editors.
First things first, I should probably talk about TextMate. Textmate 2 feels like vaporware.
However, it’s been a few years since there was anything especially novel about TextMate, and this doesn’t help the fact that the editor is getting a little long in the tooth visually. This isn’t really a problem, as a good editor can outlast almost anything else in the environment surrounding it. Many, many cranky people still use vi and emacs, which have both outlasted the operating systems they were built for.
I’ve just grown weary of having to finagle and finesse TextMate into usable shape. Admittedly, the Green Moleskin mod helps substantially (good bye project drawers!), and the use of updatable bundles has kept this editor viable in these rough and tumble times. I just can’t help hating the fact that I have to keep CyberDuck open if I’m editing something remotely. Lack of SFTP/SSH support really is all I’m wistful about. Finicky bundle extensions (the Blogging bundle specifically is what I’m thinking of) are annoying but they are decidedly not deal breakers.
Since I am a geek, and therefore always looking for a better tool, I began testing Coda ($99) and Espresso ($79.95 or $64.95 if purchased with a CSSEdit License; It’s unclear if special pricing is still available if you already own CSSEdit). Both offer a generous, fully functional, trial period. Both offer promises of kitchen-sink editing (defined as being able to handle all of my editing needs without leaving the app, including CSS editing, script editing, and remote filesystem editing over SFTP/SSH).
Panic is one of the top old-school Macintosh software companies. Their webpage is slick and their applications are polished like some sort of granite space mirror. Coda is their relatively seasoned (released in April of 2007) web development application. MacRabbit (also an extremely slick, in the lick-able sense, Macintosh software development company) then released Espresso during March of 2009 into the same kitchen-sink web development market that Coda was fighting for. If:
- you work with HTML and CSS
- you work in a language like PHP or perl
- you hate Dreamweaver
then Panic and MacRabbit want your dollars.
I started with Espresso, as I am a regular CSSEdit user. As mentioned earlier I have had nothing but good things to say about CSSEdit, especially since they rolled in the live preview/x-ray and local override features. Espresso is extensible through the use of small plugins called Sugars. Unfortunately, this means that as of today it also has poor language support (the Coffee House aggregator shows that Sugars are relatively immature and that there is no best-practice or general standards for them yet.). Of note is that there is no real support for Ruby yet, which is annoying as all hell since most of my back-end scripts are in Ruby. You’ll see in the included screenshot that Ruby documents are just plain text documents, with no syntax highlighting. However, HTMl, PHP, and Python support and highlighting were all excellent.
Interestingly, Espresso has none of the CSSEdit guts worked into it from what I could find. It’s very much a web programmers editor, not a web designer editor. While it wasn’t uncomfortable to work with CSS in Espresso, I found myself switching over to CSSEdit more often than not. I imagine that in time MacRabbit will probably roll CSSEdit and Espresso into a single application. For now though, it’s more context switching, with no gain in productivity to show for it.
Espresso shows promise (it is a beautifully designed application), and the concept of workspaces is novel. I appreciated the ability to work on something locally while automatically publishing it remotely, and Sugars have the potential to be as awesome as Bundles, if not more so. But much as every child has the potential to be president someday, only time will determine if Espresso’s Sugars are making me coffee for $6.00 an hour in a few years.
Panic’s challenger for my hard-earned editor dollars is Coda. Coda does a few interesting things, like integrating the SubEthaEdit engine for collaborative editing and incorporating the Transmit core for remote file operations. As of late it also supports plugins, though I’ve been unable to really find much in the way of usable plugins, since they’re a relatively new feature.
The kitchen-sink approach that Panic took with Coda also extends to having a built-in terminal, which can connect to a local machine or a remote machine, for code debugging, remote operations, or whatever you’d normally keep a terminal open for while developing. Coda is a very, very complex application, and that’s ultimately the problem I had with using it.
Coda wants to be everything at once, and it’s very good at most things that it does. The text editor never feels like it’s holding me back, but one of the big quirks I found was that the constant language-unaware auto-complete suggestions are much, much more aggravating than helpful.
I also found little utility in the included HTML reference, but that’s only because I know HTML and CSS very well (not that my blog layout implies this, but I do. Honest.), and for a developer who only uses HTML to present manipulated data, I can see it being a helpful reference. Panic has recently (as of version 1.5) added the ability to point Coda towards other websites as reference guides, and that’s much more useful long-term.
At the end of the day the only real utility Coda and Espresso offer me is remote editing. They don’t support any configuration file formats and their support for anything except “web languages” (ASP, PHP, perl, Python, ActionScript, HTML, CSS and kinda-sorta Ruby) is poor at best. TextMate has bundles for Apache, nginx, and SSH, as well as general support for any of a variety of key-value pair style config files. it also supports Bash and these are ultimately the make-or-break features for me.
However, I recognize that Espresso and Coda aren’t trying to be the programmers swiss army knife that applications like Vim or TextMate already are. They’re editors geared towards web developers. Unfortunately, while that is a sizable 20% of my needs, the other 80% of my work is dealing with configuration files every single day I am on the clock.
For the time being, it looks like I’m sticking with TextMate.
You might ask now “Why not MacVim or BBEdit? What’s wrong with TextWrangler?”
Well, BBEdit is an excellent editor that just took too long to have its visual appearance overhauled. It used to look exactly like a Classic Mac OS application running inside a Cocoa OS X frame. They’ve just released a new version that I’m told would be worth my time to test and no longer looks like a very powerful editor hidden inside a child’s toy. I may revisit it soon and see if it’s shaping up into something that doesn’t make me want to punch my monitor in frustration. TextWrangler feels almost like borderline abandonware at this point and it’s an extremely watered down programmers editor for the languages I’m working in and for the amount of work I have to do. MacVim is an excellent 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 Aquamacs then your genitals will spontaneously combust.