TextMate: Can Text Editing really be this much fun?

Much of my Developer life revolves around working with text files: web pages, perl scripts, php scripts, SQL exports, javascript, log files, config files, time logs, and even plain ol’ text files.

BBEdit has been my text editor of choice since the late 90s, and it’s done a great job with pretty much everything I’ve thrown at it. It’s handled huge 30meg files with ease, displayed scripts with syntax coloring, let me convert between Mac, PC and Unix formats, preview web pages, given me a Jump command and a function popup that instantly transport me to the relevant section of long files, and even let me enhance it by adding my own scripts (for instance to total client hours in my time log).

Still, I passed on upgrading from version 7, as the new version 8 didn’t seem to offer much that was useful to me. BBEdit is a workhorse prduct and it’s certainly served me well over the years, but to be honest it just feels, well, stale.

I’ve been hearing about the new kid on the block, TextMate, for a while now. There’s even a cool video about Ruby on Rails that showcases TextMate as much as it does the ease of developing in RoR (the TextMate windows are the ones with colored text on a dark background; notice the hierarchy on the left, the tabs, and how stuff appears automatically).

In January I took advantage TextMate’s free 30 day trial, and bought it about a week later and have been using it ever since. TextMate is a joy to use; it looks and acts like an OSX app, and tailoring it to work like I do is far, far easier than BBEdit ever was. Things like text folding, language context macros, tabbed windows, smart snippets, tab completion, and one key “compare against saved version” make programming easier and more fun, and I’m more productive.

The TextMate community provides great support, many people have contributed plug-ins, themes, and bundles to enhance TextMate. It supports a number of programming languages as well as HTML, CSS, XML, Textile, Markdown and more. My little script to total client hours that I wrote for BBEdit ported over to TextMate in about two minutes, most of the time was spent figuring out where BBEdit had hidden it. TextMate’s built-in Bundle Editor saved it for me and call it back later — I didn’t have to save the file myself, nor did I have to read the manual to find out where I should save it (both of which I had to do with BBEdit).

Oh, I still keep BBEdit open while I work, but it’s pretty much just for doing multi-file searches (one of the few thing it does better than TextMate). BBEdit has served me well, but it’s time to be put that workhorse out to pasture.

GoodPage Review

I’ve been using Tari “GoodPage”:1 for the past week to redesign the House-Mouse site. Unlike other CSS editors, GoodPage edits a page’s style sheet **and** its HTML, which makes it easier to create a modern web site. It can also show a live preview of the web page you’re editing so you can see the results of your changes without having to switch to a web browser, thus it consolidates three major parts of web page design. With GoodPage you do have to edit your HTML and CSS code directly, but I prefer doing that anyway.

GoodPage offers many ways to view your web page, but the ones I’m finding most useful are:

* HTML source code
* style sheet CSS source code
* structure (a graphic, 2D hierarchical view of the web page contents)
* list of individual css selectors (handy to look at a specific selector, rather than being overwhelmed by the entire style sheet)
* brower preview of the web page

The main window can display any two of those views side by side, so you can preview your web page in the left pane while you edit the html (or the style sheet) in the right pane. Or edit the html source and the stylesheet side by side. Or whatever combination you need at the moment. It’s handy not having to switch between windows, or to switch between programs for editing or previewing.

GoodPage offers a bunch of handy little tools to make development easier. For instance you can select an element in the web page preview (like a div, a paragraph or an image), and view its CSS properties in the other pane, then edit them and immediately see the change. This is great for debugging things like figuring out why there’s too much space above an element: you can not only see that top margin (or top padding) is too big, but which style sheet and selector are setting that property. And from there you can just fix the problem. Another nice feature of the side-by-side views is that you can select an element in one view hit Command-L, and a blue arrow appears to point out the corresponding item in the other view. So you can select a paragraph in the page preview and instantly see the html source for that paragraph in the other pane. Nice, it saves scrolling thru the source looking for it.

The developers have sucessfully leveraged the features offered by Mac OS X, and the program is a pleasure to use and is visually pleasing as well. I’m a sucker for aesthetic and useful, which is why I use a Mac.

As nice as it is, my biggest frustration with the program is that it comes with no documentation. None. The developers feel that GoodPage is so intuitively obvious to use that a manual just isn’t necessary. Unfortunately they’re wrong, and it’s taken a bit of stumbled around the program to figure out how to use it. In addition to only using a fraction of its features, I also feel that I’m not getting the most out of the features I am using. Using the program is like using some piece of wonderful alien technology that does some really cool things, but you just have to puzzle it out yourself and learn how to think like the aliens. For instance I can’t see what the big deal is with Structure View, but I get the impression that with it you can edit a page without knowing HTML, but I’ll be darned if I can figure it out. Still, what I have been able to discover has made me so much more productive that even after using it for just a few days, designing CSS web pages without using GoodPage would be so much harder.

With a price of $99 (early adopter special), it’s more expensive than the shareware alternatives, but cheaper than Dreamweaver. At that price it should include decent documentation, a tutorial, and more than the minimal CSS reference it comes with. Some sample templates would be also be great.

GoodPage works they way I do (at least what I’ve figured out so far) and it lets me focus on design without the distractions of switching to other programs, or searching through various style sheets for a given selector. This is an early version (1.1), so now that Tari has released this solid and useful tool I’m hoping they put their energy into writing a manual and perhaps creating a tutorial to show people how to use it. After all, what good are all those wonderful features if nobody can figure out how to use them?