My word processor cannot use graphics. It won't let me create custom headers and footers, format a page in columns, or define style sheets. If at any point during a project I were to see an adorable cartoon Macintosh Classic somersault into view and give me advice on how to write a proper business letter, it could mean only that I should either stop buying the generic-brand gin or, better yet, quit drinking altogether during work hours.
My word processor is Bare Bones Software's BBEdit, and it's not technically a word processor: it's a text editor marketed to software developers and Web designers. But who cares? It's the app I usually hold up when I want to explain the Rules of Great Software, because it underscores the concepts upon which all truly great software is built.
Rule 1: Be Yourself
When it comes to designing an application's feature set, multiple half-assed solutions do not a whole ass make. Too often, you install a piece of software and discover that it's a steaming pile of almosts. There are features that are almost useful and therefore merely utilitarian, procedures that are almost intuitive and therfore merely learnable, and interfaces that are almost subtle and therefore--well, at least not nearly as bad as Microsoft Word 6.0's.
Even as BBEdit has broadened its scope and utility, Bare Bones has never allowed it to become anything more complicated than a text editor. Why don't the people at Bare Bones let BBEdit parse basic HTML tags and thus let you see boldface and italic type as you code Web pages? Because that's a word processing feature, not a text-editing one. Why do they include FTP functionality? Because in many cases, text files reside on remote servers. So why not enhance those features beyond simple Open and Save commands? That's the realm of the FTP client, not the text editor. Et cetera, et cetera, et cetera.
Rule 2: Play Nice
And why should Bare Bones squander time and resources by competing (poorly) with the makers of Interarchy or Fetch when it's so much easier to integrate BBEdit with those products and refer users to their download sites? Great software always plays nice with the other children.
Perhaps the biggest insult you can inflict upon an app is to hit command-Q. You're telling that poor, emotionally vulnerable app that you can live without it. On my Mac, BBEdit is always running; it's too valuable to close. The program's AppleScript support is top-notch. If BBEdit is open on my Mac, any other AppleScript-savvy application can take advantage of BBEdit's text-manipulation strength. FileMaker doesn't offer powerful search-and-replace scripting, but it doesn't need to.
Rule 3: Support Standards
That's because BBEdit's search-and-replace isn't just powerful, it's The Imperial Star Cruiser That Engulfs the Rebel Blockade Runner in the Opening Scene of Star Wars powerful. BBEdit's search uses grep, the time-honored search facility that can, with one properly formatted search-and-replace, translate Valley Girlspeak into the archaic regional patois spoken by a wholesaler of fish sauce to the Holy Roman Empire.
The support of industry standards is a force multiplier for any app. Many potentially great programs are sunk by Not Invented Here syndrome: if the company didn't invent it and can't slap on a zippy name and announce it in an ego-boosting press release, they're not interested.
Grep is the 900-pound gorilla of searching. It's the very best available technology, and it's open technology. Granted, taking advantage of that power often seems about as easy as turning a washing machine into a working bicycle using raw steak as a tool. But that's OK because, for one, once you've learned grep somewhere, you can apply that knowledge anywhere in the computer-using universe; and two, the target users are geeks, people who'd think, "Well, obviously I'd use a crown roast; I could grind those ribs into a whole set of tools!" And so it's only right that BBEdit includes the real grep, not some home-grown replacement.
Rule 4: Act Like a Mac App
A Mac app should look like a Mac app! The concept is readily understood (if only sporadically applied) these days. And while it's astonishing that BBEdit has never crashed on me and taken an unsaved manuscript with it, people who expect modern apps not to crash also expect Mommy and Daddy never to fight in front of the children. Still, BBEdit gets full points for Mac-ness, and also for doing the mostest with the leastest memory and processor resources.
Rule 5: Know Thyself
Great software stays "on message." If at any moment its developers become unclear about its true character and purpose, its users sure won't stand a chance.
BBEdit serves as a perfect example of a great app. But is it a great word processor? Nope. It's become a usable word processor thanks to the fact that in 2001, text files rule. Content isn't a pretty, formatted, ready-for-print document; it's merely a nugget of text other software can purpose for print, or the Web, or an e-book.
Besides, the power of BBEdit lies not in its feature set but in its philosophy. It's my word processor, but it's also a box of potential. With some AppleScripts, it turns a block of text into a new entry on my Web site. It's occasionally my e-mail app: I can search a 40MB file of archived mail far faster with BBEdit than I can with my mail client.
It's How You Use It
A new tradition has been added to the Ancient Geek Meeting Ritual: after the by-rote donnybrooks over computer operating systems, newcomers to the tribe must reveal and then defend their choice of pocket multitool (me: Leatherman Wave when I need pliers; Victorinox SwissChamp when I need torque). Occasionally you'll see someone show off a battered old Craftsman screwdriver and praise the fact that it can be used as a pry bar, a chisel, a handle, a wedge, a hammer, or a digging tool, and serve hundreds of other impulsive uses--and that it's nearly indestructible, to boot.
It's not what an app does . It's what you can do with it. And that, dear readers, is the most hallowed rule of all.
ANDY IHNATKO ( www.andyi.com ) has been writing about the Mac for more than a decade. He wrote this column in BBEdit, of course.