For those of you out there that are regular readers of theappleblog, you’ll probably have already seen this review. Now I don’t want to re-invent the wheel, so if you want a nice general overview of what TextMate is, then head over and have a look. This article attempts to bring some insight into the excitement surrounding TextMate.
So, what makes TextMate stand out? I would like to suggest that it is these three things:
TextMate has a single developer at the helm skilfully and passionately parenting its upbringing: a nice guy called Alan Odgaard. He started the TextMate project back in 2003, and now it has matured through to version 1.51. He is one of the lucky few living the life (both a self confessed status, and description from John Gruber). This basically means that he gets to live on the income generated by TextMate licenses, and spends his days fixing bugs, dealing with user support, and more interestingly there are always some cool new features planned for the future.
So what’s so great about just having one developer on the project? Well it all really depends on the quality of that developer, and with Allan Odgaard we are in safe hands. With no committee with which to have meetings with, and argue about future directions, Allan has full control of TextMate’s development. This means that Allan gets to choose what features to add, and when to add them, and perhaps more importantly what not to add. This allows Allan to stop TextMate becoming bloat-ware. This is clearly a Good Thing as TextMate is rapidly turning into a beautiful thing.
TextMate was designed from the start to be highly modular, and I really mean highly modular. Most of the logic that drives TextMate is incorporated in things it calls bundles. Bundles] can be seen as a collection of methods, shortcuts and the syntax highlighting information for a very large number of filetypes. With a little subversion knowledge you can even get your hands on a whole lot more. Bundles are really easy to create, so easy in fact that people that had previously never touched a script or regular expression are creating them (the screenwriting with TextMate bundle is testimony to this).
TextMate also has a load of other features that people expect from a good text editor. For example, it is extremely scope-aware, which allows for superb syntax highlighting support. It also links in to a whole bunch of useful scripts – such as subversion control, diff generation, and can also insert output from arbitrary terminal commands right into your text.
An interesting way of judging the perceived maturity of an application is to look at the other applications people compare it to. If you look around, you’ll see that people are engaging a lot of discussion comparing it to BBEdit. Regardless which one you think is better, it’s clearly good for TextMate to be discussed on the same level as something that’s as loved and appreciated as BBEdit. The comparisons don’t end there however, Dave Astels recently described it as a ‘new age emacs’.
What’s so special about TextMate’s community? Well, you just need to either subscribe to the mailing list, or have a look at the inordinate amount of commits to the bundle repository (many by Allan himself) to appreciate how much life is put into the project from external sources. Allan has open-sourced the bundle repository providing more incentive for people to contribute and share their own bundles. TextMate also comes with excellent documentation which makes understanding the application less of a cryptic puzzle and more of a pleasure. In terms of community communication, TextMate has no shortage of options. There is the mailing list, the blog, the wiki, and there is even an RSS feed for new submissions to the bundle repository!
It would be hard to mention TextMate without casting a quick glance at Ruby on Rails. In fact in doing so we see a number of parallels. Rails is a framework initially designed and created by one man with a vision (David Heinemeier Hansson), and is surrounded by a thriving and passionate community. And of course TextMate is the editor of choice for the Rails core team. In fact David Heinemeier Hansson even spurred Allan on with the development of TextMate when he was considering working for Novell back in 2004. Yukihiro Matz Matsumoto, the creator of Ruby, recently described Rails as the killer-app for his language. I wouldn’t go as far as saying that either Rails or TextMate are the killer-apps for each other, but the association is strong, and the uptake of Rails is clearly fuelling TextMate subscriptions.
Now I realise that I haven’t even begun to talk about TextMate’s features, there’s plenty more time for that – and if readers are interested I’ll happily go into far more detail. I just wanted to explain my thoughts into why there’s such a buzz surrounding just a text editor. Well I say ‘just a text editor’ but I’m fully aware of the passion that goes into choosing and defending a text editor. Don’t forget that the vi vs emacs wars still rage today..