Wednesday, March 14, 2007

BBEdit Comes Around

We programmers spend a lot of time editing text and tend to feel pretty strongly about the relative merits of various text editors. For the better part of two jobs - spanning nearly four years - I lived and breathed in BBEdit, “the programmer’s text editor”. It’s always seemed like a good product but even then it was already quite old and it seemed like its designers were resting on their laurels somewhat. The interface looked about the same as it had when my friend was using it in college on OS 9 back in 1998. There didn’t seem to be much work going on to create innovative features or even to copy ones that had started to crop up in other editing programs. But it still had an impressive feature list and at the time was by far the best tool for creating HTML/XML/CSS on Mac OS X.

But somewhere along the way I noticed TextMate. I saw a screencast for some Ruby on Rails demo and they were using snippets - type a keyword, hit some expansion key, get a whole bunch of templated text for free. I didn’t know the TextMate name for it but I knew the feature: it was the thing I most missed from a Java editing program that was a one time favorite on Windows. I decided to give TextMate a try even though it wasn’t free and even though I’d already shelled out big bucks for BBEdit (well, truth be told, the Reagents of the University of California shelled out the big bucks for BBEdit).

Over the years I’ve probably married about a dozen different text editors so it’s not a tremendously big deal for me to switch to something new. The muscle memory takes a little overcoming but it’s nothing horrific, especially if you’re not also switching platforms to something where the modifier keys are totally different.

It didn’t take long before I was hitched to TextMate. With the exception of occasional forays into emacs I’ve been using it exclusively for about 2 years. I switched and never looked back. Until today.

I was reading a blog which suggested that BBEdit had finally updated their interface so that it looked less out of place on OSX than does a disco ball at a funeral. So I downloaded the trial version (8.6) and gave it a spin.

There’s plenty to like

  1. The icon looks less like ass. I was using BBEdit when they switched from their chestnut of an icon to something that looked like a beta placeholder for the image it was replacing.


    Either the whole thing was a play from the people that brought us New Coke and Coke Classic or they’ve seen the light: the newest version looks like the old except rotated a few degrees.

  2. Rumors of interface polishing are true. The changes are rather minor but still welcome.

  3. They’ve revamped their Glossary tool. Now it’s called Clippings and it works much like snippets in TextMate. The expansion key (F5) is a little awkward, especially on laptops. And where TextMate allows you to cycle through various pre-defined locations in the expansion text by repeatedly pressing the the same key (tab) that expanded the text in the first place, BBEdit uses Ctrl-` to cycle through positions. F5 still seems like a bad choice but having a different key command to cycle through the positions actually seems like a good idea. One annoying thing about TextMate’s snippet system is that you can’t expand a snippet if you’re still tabbing through the positions of a snippet you just expanded. It will interpret “tab” as a request to move to the next position instead of searching for an expansion. The BBEdit team seems to have made a better choice in this matter.

  4. They’ve added support for a few more languages including Markdown and, get this, SQL. Yeah, it’s 2007 and they’re just getting around to adding SQL. Still they did it well and have support for multiple SQL variants like PL/SQL and MySQL.

  5. They’ve added a preview window just like TextMate and SubEthaEdit. If you keep it open while you type it will refresh the preview automatically whenever you stop typing for a second or two. You don’t need to save the document to use it. Yeah, it’s just like TextMate and yes, it feels like they’re copying but it’s still a worthwhile addition.

  6. Code folding. I make very little use of this feature but I’m sure it has its fans.

As long as they were out copying features I wish they’d copied a little more. There is still no equivalent to TextMate’s themes. The syntax highlighting engine still doesn’t support things like making keywords boldface. It still has pretty poor support for editing files with mixed languages (like PHP inside HTML). It still needs an organizational concept as functional and powerful as TextMate’s bundle system.

I’m not going to move back to BBEdit any time soon but these recent changes are enough to entice me into checking back on it in a few months. If nothing else, BareBones seems to have recognized that they’ve been squandering their name recognition and an enormous lead and that if they want to remain competitive they’ll need to start making radical changes. I think they made a couple of large mistakes when they moved to OS X. They ported the code but didn’t seem to do much to avail themselves of all that Objective C and Cocoa would provide. Even if they wanted to exploit the undeniable advantage of their extensively optimized and highly debugged text engine, they should have recognized that the arrival of OS X meant that others less encumbered than they would be able to make full use of everything from XCode to Cocoa to Objective C to the UNIX shell, and that this might allow a hypothetical upstart to move so quickly that any initial lead could evaporate before you could say “reality distortion field.”

No comments: