A comparison of Coda and Espresso
Ever since it came out, I’ve been using Coda to do my web design and development work in. It combines the functionality of many programs into one space, which drastically cuts down on the time you spend switching between applications and windows. However, a couple of weeks ago, Coda stopped working. Its built in FTP client wasn’t tracking my changes, so I had to use Transmit to upload each file manually. This added a huge amount of time to my workflow and made it practically unusable, so I had a look elsewhere.
The most direct competitor to Coda is Espresso, made by the same guy who created the outstanding CSSEdit. After using Espresso 1.1 for the last four days solid, I thought I’d write up my observations and compare the two.
Things that Espresso does better
When you’re working on a website, you’re usually concentrating on writing a handful of files at a time. In addition to these, you open others to check code in them and use them for reference. In Coda, all of the open files sit in tabs, like you would have for a web browser. However, this means that the files you’re most interested in working on are equally important to the ones you’re just referencing.
The workspace is where the files you’re working on right now live.
Espresso has a different approach. Instead of tabs, it has a workspace, where the files you’re really interested in live. Below this is the normal file view, but when you click on something in that, it just shows you it, but doesn’t seem to open the file properly. I found this workspace metaphor far more natural than the traditional way of handing files, as Coda does.
When you upload files in Coda, they are processed one at a time, or at least it seems that way. In Espresso, they are transferred in parallel and much quicker, especially when you have a few of them. Espresso also allows you to have multiple servers per project/site and lets you upload a file instantly whenever you save it.
Espresso’s quick PHP function lookup is also much faster and more convenient than searching Coda’s books, which are cumbersome at the best of times.
Where Coda still has the edge
Coda (1.6.8 tested here) has built in SVN support, a console window and a visual CSS editor, all of which Espresso lacks. You can also easily alter the colour and typeface of code in Coda, but not in Espresso, where the default font size is one size smaller than I’d like it to be.
Coda also allows you split each tab so that you can have two windows side by side. This can be extremely useful, allowing you to compare files or preview changes right as you’re editing code. The tab metaphor falls apart when you do this, but it’s still a feature that once you start using, you can’t imagine not having.
Although Coda’s file upload is slow than Espresso, it does a far better job of keeping track of the changes you make. Whenever any file is changed, a little ‘Publish All’ button appears and when you click it, files start transferring immediately. In Espresso, you have to review changes made – which can take several seconds – before you can upload files.
There are a number of little details in Coda which are also a huge help. Whenever the text cursor crosses a bracket, it highlights the other bracket it’s linked to. When you’re code becomes fairly complicated, this is an invaluable feature. There’s also a plug-in available which can quickly add PHPDoc tags to your code and does so in a superior manner to the equivalent function in Espresso.
So which is it to be?
Over the last four days, I enjoyed using Espresso immensely. However, now that I have Coda working again (thanks Panic!), I’ll be returning to use it.
Espresso is an awesome program whose workspace metaphor is simply better than the tabs used in Coda. It’s so good that it almost negates the many features that Coda has which it simply doesn’t. However, the overall impression I have is that Coda’s maturity shows through and right now, you’re probably better off choosing it. That said, once Espresso has some of the features that its competitor does, it may be a proposition too tempting to resist.