Text files and me IV - BBEdit and TextMate

Yesterday’s release of BBEdit 10 has spurred me to finally get this post written, a good three months after the last one in the series. If you’re late to the party, here are Part 1, Part 2, Part 3, and Part 3.5.

This post and the next are going to cover two big changes in the way I worked: the move from Linux back to the Mac, and the adoption of Markdown for almost everything I write. Both of these changes occurred in 2005 and 2006 and went in parallel, so I’ll have to abandon the chronological structure of the series and switch to a thematic organization. Today’s topic is switching back to the Mac.

I’d been using Linux since 1997 and was quite comfortable with it, but three things were pulling me back to the Mac:

  1. I was tired of having to know and configure everything on my computer. Linux had made great strides in compatibility in the years I’d been using it, but I still had to make sure there were drivers for the internal cards and peripherals I bought for my desktop computer. And getting Linux installed and running well on a laptop, where there was no opportunity to mix and match components, was a dicey proposition. I wanted to spend more time using my computers and less time configuring them.
  2. The Mac had come a long way since 1997. OS X’s teething days were over and had become, with Panther, a decent Unix environment. This was important because my Linux days had taught me how wonderful Unix was, especially for someone who worked mainly with text files. I would not move to a non-Unix or substandard Unix platform.
  3. The hardware was getting better. During my Linux years, whenever I was in a computer store, I’d go over to the Mac section and have a look. Most of that time, what impressed me about Macs was how goddamned hot they ran. I’d lift up a laptop and practically burn my hand on the underside. There was no way I could have that sitting on my thighs. The first time I saw a Cube, I put my hand over the top of it—not touching it, mind you, keeping at least an inch away—and caused an immediate shutdown. I’d blocked enough airflow out of its “chimney” that it overheated and shut down to protect itself. But by late 2004, the hardware seemed cool enough and fast enough to be workable.

So I got a 12″ iBook G4 in either December 2004 or January 2005, a wonderful little machine that I just retired this past December after six years of faithful service.

12″ iBook G4

That 4:3 screen looks weird nowadays, doesn’t it?

One of the first things I did was get TeX installed, which went pretty smoothly with Gerben Wierda’s now-deprecated i-Installer. I moved my personalized LaTeX packages and fonts over, and did all the updmap stuff necessary to tie them into the TeX system.

The next step was to choose a text editor. I could use TextEdit, of course, but that wasn’t going to be a long-term solution because it didn’t have the programmability I’d gotten used to with Linux editors. Since Panther came with X Windows, I figured I could get that running and use my fave rave Linux editor, NEdit.

I got NEdit installed and running, but it was clear from the start that it wasn’t right, either. X Windows programs were just ugly on a Mac, mainly because fonts didn’t get anti-aliased. Just starting up X was a pain. Clearly, I needed a native Mac editor.

BBEdit was the natural choice. Sometime in the year or two before I left the Mac, I had bought BBEdit and used it to create my company’s web site. I had fond memories of it, especially since I first learned regular expressions from its user manual.

But there was the cost issue. At the time, BBEdit cost $200, an amount that was particularly hard to swallow for someone coming from the “everything is free” environment of Linux. There was a distinctly lower upgrade price ($50? I don’t remember exactly), but I didn’t have a registration number, and even if I had I suspected Bare Bones wasn’t really interested in giving the upgrade price to someone who’s bought his copy seven or eight years earlier.

I did, however, have my old BBEdit install CD, and I knew I’d registered with Bare Bones when I bought it. So I called them up and asked if I could get the upgrade price. No problem, they said. They had my registration info and (I’m pretty sure I’m remembering this right) just wanted me to fax them a photocopy of my CD to show that I really still “had” it. I may be the only person to have upgraded directly from BBEdit 4 to BBEdit 8.

(As regular readers know—and as new readers will learn in a few paragraphs—I don’t use BBEdit now and haven’t for quite a while. But I’ll always think well of Bare Bones because they treated me right when many other companies would have considered me an annoyance.)

So with a shiny new copy of BBEdit in hand, I started configuring it to my liking. I grabbed a copy of Bitstream Vera Sans Mono and set that to my default font. I made a “capitalize previous word” script to correct for the habits my pinkies have of lifting off the Shift keys just a little too early. And I made these scripts for handling GTD task lists and printing out Hipster PDA cards.1 Over the course of 2005, I settled in as a BBEdit user.

It was during 2005, though, that another Mac text editor began making noises. Back then most people were, I think, introduced to TextMate through a screencast of David Heinemeier Hansson demonstrating Ruby on Rails. The video sold a lot of developers on Rails, but an unexpected consequence was interest in TextMate, the editor Hansson was using as he zipped through the creation of a blog engine in 15 minutes.

I was a pretty early adopter of TextMate—my serial number is 11092—but I had to return to BBEdit because TextMate was awfully buggy in the early days. As I said in February of 2006:

I used TextMate exclusively for a few months last year when I first moved back to the Mac after several years of using Linux. Ultimately I returned to BBEdit, which I had used and enjoyed back in the mid-90s, because:

  • BBEdit does what it says it will do. I found that TextMate often didn’t.
  • BBEdit says what it will do. TextMate’s documentation was thin to the point of anorexia.
  • The TextMate “community” was acting like an open-source group, but I had to pay for TextMate and could never get into the code to tweak the things I didn’t like about it.

Some of these things may have changed, and I’m sure TextMate is a better product than it was when I left it. It seems more Unix-y than BBEdit, which is something I like, and I may eventually move over to it. But so far, whenever there is a new hullabaloo over TM—which seems to happen every few months—I download the latest version and check it out, only to find some dealbreaker or another that sends me back to BBEdit.

Ironically, it was right after saying this that I became a full time TextMate user. By early 2006, the bugs that had so frustrated me were gone (or mostly gone), allowing the clever design to shine through.

The appeal of TextMate was how Unix-y it was. You customized it by writing scripts that communicated via stdin and stdout. Bash, Csh, Perl, Python, Ruby, Awk, PHP, Lua—like Unix, TextMate didn’t care which language you used. Whatever was your favorite was alright with it.

And the snippets! Long before TextExpander had fill-in-the-blank snippets, TextMate had them and they were spectacular. They could even be repeated or modified later in the same snippet.

And then there were macros and scopes and nested scopes and bundles. In short, TextMate was a tinkerer’s dream. It had its faults—no split views, for example, and an undo system that made you wonder if Allan got a commission every time you hit ⌘Z—but they were easy to overlook. And so many software tinkerers began using TextMate that it soon had a huge number of bundles to aid the editing of almost any type of file. A goodly number of posts in this here blog were descriptions of TextMate commands, macros, or snippets. They were fun to make.

And they’re still fun to make. Sort of. Every past tense in the previous three paragraphs could be changed to present tense and it would all still be true, but there’s definitely a pall over the TextMate community, an uneasiness as we wait and wait and wait for TextMate 2.

TextMate 2 was announced when Tiger (OS X 10.4) was nearing the end of its run. TM 2 was going to be so advanced that it would require Leopard. Which makes for easy jokes.

I’m a little worried about the upcoming Lion OS X. TextMate 2 is going to require Leopard…

7:52 PM Wed Oct 20, 2010

It’s not that TextMate has stopped being a great text editor. But there’s a worry among its users that some OS X update will break it, and we’ll all have to scramble to get up to speed with a new editor. Today’s release of Lion generated this blog post at MacroMates (not by Allan) and this list of compatibility problems. The blog post says

We will release an update to correct the issues where possible once we believe that all of them have been found.

which doesn’t inspire confidence. How could you possibly know that all the compatibility problems have been found? It sounds like an easy excuse for putting off a bugfixing update.

This post has turned into a complaint, which isn’t fair to Allan. I’ve been using TextMate as my only editor for 5½ years, far longer than I’ve used any other editor. And unless those Lion compatibility problems (they’re not issues, they’re problems) affect me, I could continue to use it still. And I very well may.

But as I said at the beginning of this post, Bare Bones released BBEdit 10 yesterday, with very aggressive pricing and a reorganization that looks like it’s going to make the program more Unix-friendly. With some misgivings, but also with some hope, I’ve downloaded the trial version and will give it a workout over the next few weeks (after I finish a report that’s in progress; I’m not going to fight with a new editor in mid-project). I’ll post progress or lack-of-progress reports as the experiment goes on.

In fact, I want to write Part V of the series, The Markdown Conversion, in BBEdit. Which means I can’t wait as long to write that post as I did to write this one.


  1. I certainly don’t use or recommend the task handling part of these scripts anymore, but I do still use a version of the printing script. 

  2. Two problems with giving my serial number: First, it will inspire users with lower serial numbers to sneer at me. Second, it will allow Allan Odgaard to look up my real name. I’m less worried about the second because I’m sure Allan is hard at work on TextMate 2 and has no time for blog reading.