Flirtations with IDEs editors and why I'm boring after all...

I've been using Coda since 1.0 and having worked as a web developer for the past decade, I really like how polished it all feels. It just feels like an IDE "light" which I really love. It doesn't take 40 minutes to load, I don't have to download a dozen plug-ins to make it useful, and it's simple to setup and operate.

However after experimenting with some other web-oriented editors/IDEs out there, I found some things I'd like the fine folks at Panic to implement.

Sort the code navigator

For the love of god, please sort the code navigator. While I can appreciate mirroring the order as it appears in the file, when working with other people's code, this is unbearable. I know what I'm looking for, please make it easier to find it!

Flag Files as Unpublishable

This comes up quite often - you have a settings.php or config.php or whatever, and it has a DB connection string, or an email address for form submissions or a file path or whatever. Almost always, you have different settings for a local development server vs the settings on the destination server. If you do a lot of work locally, and you (foolishly) publish the entire folder, you've just blown away your app's production settings...

To get around this (I know, I know - version control) it would be nice to flag a file as unpublishable. If the flag is set, skip it when uploading the whole folder. Either that or a regex so we can skip version control folders or other project metadata too. Simple, effective.

Speaking of publishing...

Multiple Publish Destinations

This was from Aptana and an incredibly powerful and useful feature. Imagine the following scenario, you work with a staging site, and a live site. It's nice to be able to publish a file or set of files to a selectable location. Currently, we use Coda to work on the local server and the staging server, then Transmit to publish to the live site. The downside to this approach becomes apparent in the following scenario:

You make a change locally, then publish the change to the staging site for review. You make a few more changes. Eventually, you've done a bit of work, and now you need to publish to the live site. Good luck remembering everything you changed. Ideally, Coda could track changes and where a given local file was sent, so when you look at another publish destination, you can see that it needs to be updated there too.

What's that? I should be using version control like subversion to manage this instead? Oh yeah, that bring me to my next point.

Deeper Subversion Integration

If you do use subversion to track changes, and you work with systems that use plugins (drupal, wordpress, etc..) it would be nice to let Coda see that I'm using subversion for a particular directory (not necessarily the whole project). As it stands, I currently don't use Coda's built-in subversion support (which is very nice btw), and instead use either the command line, or a third party app such as Versions. This goes against the "one window development" mantra that Coda was created to enable.

So that's really it, a handful of things I'd like to see from Coda that I liked from my flirtations with other coding tools. I liked Aptana, but in the end, it didn't feel right. I've tried eclipse at various times in the past, and never quite got into it. Everything felt like it was bolted on, and the workspace approach was counter intuitive. I'd have one workspace, and various projects. I didn't see the benefit of having a locally hosted PHP project asking me if I wanted to start the current script as a Python app. Finally somebody told me to try one workspace per client, and configure the launch and debug settings specific to the client's project (or suite of projects). Still, the whole thing felt wonky to me.

Same with TextMate. It's a great editor. Good implementation, tons of features, but it felt like I was using Xemacs again. It's 2010, we're on Macs. Make it sexy. Do a cutesy animation or something. I'll tell you the one thing that drove me nuts about TextMate - block editing. Coda makes it easy and intuitive to enter block edit mode. Once you're in it, it's apparent where the block is, and it's forgiving. You can navigate about within the block. TextMate doesn't do that. It's an arcane key combination to enter block mode, then once you're in it, there's no feedback. You just type and that's it. Granted that's one example, but the whole thing felt that way. The Xemacs reference stands - it could probably be configured to wash my car for me, but you're going to have to pour through the manuals for a week to figure out how to do it. Same with TextMate. It's crazy powerful, but sometimes I just want to edit a file.

That's why I'm sticking with Coda for now. Thanks guys. Keep up the good work.

What are your thoughts? Think I'm dead wrong? Think I should be using VIM and be happy it's not ed? Tell me!

UPDATE

After speaking with some friends, I just wanted to add something that I forgot to mention.

These were just my experiences in trying new things. As a professional in this space, my job demands I look at new things to stay relevant (and that's half the fun too). The primary thing to remember though is something I learned a long time ago: "It's not the tools, it's the talent." If you have enough of the latter, you can make do with the most basic of the former.