text editors I have known

I write code for a living. Primarily PHP, but increasingly HTML, CSS, XML, JSON, Objective-C/Cocoa, Processing, and Arduino code. Over the last 8 years, I’ve been going back and forth using several editors. It seems kind of silly to think that I could have used 5 or 6 different programs to edit text, but there are good reasons why. So here’s an incomplete list of things that caused me to use, stop using, and maybe restart using these GUI programs:

  • BBEdit
this is by far the program I’ve used the most. It’s the only program I trust to open a 100 Megabyte text file. I’ve been lucky to have my company pick up the latest version of BBEdit pretty much immediately after it’s released, so I’m particularly excited by the version 9 features. Code completion is nice. It seems to be pretty good about knowing about PHP. It doesn’t automatically close tags for you, but it does seem helpful. Another great feature new in this version is being able to drop a folder onto the BBEdit icon, and it will give you a file browser in a sidebar, and let you edit documents, tab free, directly from the file browser. Like every other modern text editor, it has clippings, or snippets, which is helpful. It’s search really is the best I’ve ever used. It’s just really nice. It saves search and replace actions for easy callback. It uses Grep. It’s nice. I would be nice if you could choose other syntaxes, grep certainly seems powerful enough. Mostly it would be nice to get some interactive experience using other regex modes. Not a deal breaker, I get my work done when I use BBEdit. There are so many great features in BBEdit, it’s hard to condense it down to one paragraph. As of version 9 and these new features, this application is back in my application dock. 

  • TextMate
Textmate popped up a few years ago and was a stark contrast to BBEdit at the time. It’s major features that are different from BBEdit would be tab-commands, where you predefine snippets or commands and assign them to a key combination. Then when you’re editing text, you can type things like snippet-[tab] and whatever you defined as “snippet” will be replaced. It’s very powerful and can be very, very helpful. It has support for lots and lots of languages, and I’m sure there are a ton of features that I don’t know about. For PHP, i haven’t found it to be spectacularly helpful. As I’ve gotten into using SVN, I’ve noticed that TextMate creates a hidden .filename for *every* file it comes into contact with. So along with not being extraordinarily helpful with code completion with PHP and creating lots of not-invisible files, I’ve taken this off my application dock for now.

  • Coda
Coda is kind of a lighter-weight text editing tool whose main focus is to reduce the number of tools required to do web development. It’s major feature is having text editing, CSS editing, web browser for code preview, terminal functionality, FTP connectivity through Transmit, and a slightly weird technical reference… all mashed into one application. It has some nice features… Really nice, in fact, for a budding programmer looking to learn or troubleshoot html/php/css code. I used this app to cement my understanding of how CSS works because of how easily you can roundtrip from editing to preview, in fact, on the same screen in the same window with screen splitting. Pretty nice. My particular job doesn’t require me to do this much, so while I admire the product immensely, I do not have this in my day-to-day set of tools. I am using it as a teaching tool, though, because I feel like it’s aimed directly at being fast and useful for learning CSS. 

  • Komodo Edit
This app is a recent entrant to my toolbox, and I have to say that I’m *really* impressed. Komodo Edit is the “free” version of Komodo’s larger suite of development products, but I’m finding it to be very full-featured. What I love about this program is how extremely PHP aware it is, and how it helps me keep my tags closed. I find writing code in this program to be very easy, easy to read, easy to understand what’s going on where, and generally kind of awesome. There are a few things that aren’t quite as awesome as I would like, such as: It would really prefer you start a new project for everything. You can open individual files without doing this, but if you want to drop into a folder to edit more than one file, you gotta start a project. It’s not so annoying that it’s preventing me from seeing the awesome PHP code editing power it has, but I would love this app more if I could skip the project files and just edit files from a folder browser like every other text editor in this list. Also, I find the search and replace to be kind of annoying because it requires you to check a “replace” checkbox every time you bring up the search field. Even if you were just there and want to tweak your search or replace criteria. When I’m starting whole new projects, I’m trying to use Komodo Edit, but lately when I’m editing preexisting projects, I’ll drop them on BBEdit.

  • Processing/Arduino IDEs
I’m only putting these in this list because they have two features that i wish I had in other text editors: keyboard-shortcut code cleanup and reformatting, and a “prepare for discourse” function where it creates a snippet of HTML that’s ready to post to a blog or discussion board. Super nice. Otherwise, these IDEs are kind of painfully minimal. But I put up with them because of what they produce. :) Which is awesome.

  • XCode
Xcode is hands-down the best text editor I’ve ever used for objective-c and cocoa. It has *The Best* code completion niceties I’ve ever seen, and should be the absolute envy of every other text editor on this list. Hear that, everyone? Emulate the code completion functionality that XCode has. Sadly, XCode seems to want to actively not be useful for PHP. I’ve long held the idea that XCode would be a *killer* IDE for PHP if it only knew about its syntax. It’s unbeatable for Obj-C and Cocoa, and possibly for other languages, but I only use it for Mac OS X and iPhone development. Since all of these things are text based, I end up wishing I had some of the features from XCode in *any* of the tools I use for PHP… but oh well. :) 


Technorati Tags: , , , , , ,

Share this:
Share this page via Email Share this page via Stumble Upon Share this page via Digg this Share this page via Facebook Share this page via Twitter
Bookmark and Share

  • millerlony

    Hi this is millerlony,
    I Like your blog its a great description on php its very impressive, thanks for this sparking ideas.

  • millerlony

    Hi this is millerlony,
    I Like your blog its a great description on php its very impressive, thanks for this sparking ideas.

  • millerlony

    Hi this is millerlony,
    I Like your blog its a great description on php its very impressive, thanks for this sparking ideas.

  • Trent MIck

    > Also, I find the search and replace to be kind of annoying because it requires you to check a “replace”
    > checkbox every time you bring up the search field

    Hello,
    I work on Komodo and implemented the “annoying” find/replace dialog. :) I’m curious as to what exactly you mean here. If you use “Cmd+=” (on Mac OS X) to open the find/replace dialog, the “Replace” checkbox will be set (and the “Replace with” textbox enabled). I believe this is the same keybinding for doing a replacement in XCode. Or are you perhaps using Cmd+F to do replacements as well?

    Cheers,
    Trent

  • Trent MIck

    > Also, I find the search and replace to be kind of annoying because it requires you to check a “replace”
    > checkbox every time you bring up the search field

    Hello,
    I work on Komodo and implemented the “annoying” find/replace dialog. :) I’m curious as to what exactly you mean here. If you use “Cmd+=” (on Mac OS X) to open the find/replace dialog, the “Replace” checkbox will be set (and the “Replace with” textbox enabled). I believe this is the same keybinding for doing a replacement in XCode. Or are you perhaps using Cmd+F to do replacements as well?

    Cheers,
    Trent

  • Ethan
  • Ethan
  • steve cooley

    Trent Mick, thanks very much for your response. Yeah, I would probably break down my text editing experience like this:

    BBEdit: 70% (command-g, command-= find next, replace with last criteria)
    TextMate: 15%
    Komodo Edit: 10%
    processing/arduino: 3%
    XCode: 2%

    So, to be honest, I really don’t know what the key bindings are in xcode. Seriously, no disrespect intended, I was just showing Komodo off to a coworker yesterday and he was really interested in it… appropriately so, IMO. What my coworker said when I asked him what tools he uses was that there’s no one tool that does everything perfectly, and I agree.

    Also, I continue to pound on Komodo, and plan on doing so indefinitely, which is probably the best compliment I can give to any open source tool. Code completion is the most important feature to me when I’m writing new things, and Komodo is the best at that feature for php.

    What I should have said in the body of my post was this:

    Things that these editors are the best at, in my opinion:

    BBEdit: search and replace, opening large files
    Komodo: code completion
    TextMate: tab-based clipping support and fancy text editing UI tricks
    XCode: Objective-C… that’s pretty much it for XCode, imo. And it’s the best at that task.
    Coda: learning how CSS works
    arduino/processing IDEs: easy code reformatting

  • steve cooley

    Trent Mick, thanks very much for your response. Yeah, I would probably break down my text editing experience like this:

    BBEdit: 70% (command-g, command-= find next, replace with last criteria)
    TextMate: 15%
    Komodo Edit: 10%
    processing/arduino: 3%
    XCode: 2%

    So, to be honest, I really don’t know what the key bindings are in xcode. Seriously, no disrespect intended, I was just showing Komodo off to a coworker yesterday and he was really interested in it… appropriately so, IMO. What my coworker said when I asked him what tools he uses was that there’s no one tool that does everything perfectly, and I agree.

    Also, I continue to pound on Komodo, and plan on doing so indefinitely, which is probably the best compliment I can give to any open source tool. Code completion is the most important feature to me when I’m writing new things, and Komodo is the best at that feature for php.

    What I should have said in the body of my post was this:

    Things that these editors are the best at, in my opinion:

    BBEdit: search and replace, opening large files
    Komodo: code completion
    TextMate: tab-based clipping support and fancy text editing UI tricks
    XCode: Objective-C… that’s pretty much it for XCode, imo. And it’s the best at that task.
    Coda: learning how CSS works
    arduino/processing IDEs: easy code reformatting