BBEdit has long enjoyed a well-deserved reputation as a powerful text editor for programmers and HTML coders, so when Rich Siegel, CEO of Bare Bones Software, wanted to show me the latest features in BBEdit 8.0, available today, I was curious about where they could have taken the program. Was it going to be one of those upgrades that offers only a few minor improvements and which many people can't justify? As it turned out, nothing could be farther from the truth: BBEdit 8.0 is one heck of an upgrade, and I think anyone who's serious about editing text in BBEdit will find a number of significant improvements that make the upgrade price worthwhile. Let's look at some of the most interesting among the more than 100 improvements.
Document Drawer -- Tabbed browsing has taken the Web browser world by storm, so it's not too surprising that Bare Bones started to get customer requests for tabbed editing: a single-window interface where tabs provide quick access to multiple open documents. What that really translates to is that people don't so much want the Web browser tabbed interface, which breaks down after just a few tabs for lack of horizontal space, but a quick way to switch among documents. Enter the Document Drawer, which is a standard Mac OS X drawer listing the names of documents open in the current window. It's a bit like OmniWeb's tabs showing in text form, and it's a brilliant way to keep a lot of documents (such as all the pages in flux in a Web site or development project) open at once.
Don't want to use the horizontal space on the Document Drawer? BBEdit 8.0 also features an optional Navigation Bar at the top of the window that provides forward and back buttons, and a pop-up menu listing the open documents in that window. I know I seldom find myself working on only a single HTML file at a time, but I don't usually need to see my multiple documents simultaneously in separate windows (though that's of course still possible).
Multi-File Search -- The Document Drawer's emphasis on keeping multiple files open helped encourage the next major new feature, which is improved multi-file search. BBEdit has long been able to search through multiple files and display the results in a single browser window, but you could select only a single folder at a time; now a drawer in the Find & Replace window lets you select any arbitrary set of files and folders for the search, or collections such as all of a window's open documents or all open documents. Even better, those searches are now preemptively multithreaded, which means that you can not only keep working in BBEdit while a search is running, you can keep working in BBEdit while multiple searches are running. And, since each search is a separate thread, they take full advantage of multiple processors.
Text Factory -- Ironically, despite BBEdit's power, I still find myself going back to the Classic version of Nisus Writer for certain text processing tasks - not because it's more capable than BBEdit, but because its macro capabilities make it easy to string together multiple Find & Replace actions. BBEdit drives another nail into Nisus Writer's Classic coffin with its new Text Factory feature, which provides an interface for stringing together multiple instances of BBEdit's text manipulation tools. You can save a set of Text Factory settings as a separate document, and you can either run it across multiple documents in a batch, or against a single arbitrary document any time you like.
In essence then, Text Factory brings batch text processing to BBEdit. For instance, for the last nine months I've been merging lists of email addresses for the Take Control Announcements list every time we release a new ebook. It's a tiresome, particular process that involves about six steps in BBEdit to format each of two files appropriately, merge them, and run several iterations of the Process Duplicate Lines command to eliminate duplicates. In fact, it was so time-consuming that I re-engineered our ordering process to eliminate it, but if I'd had Text Factory automating the process, I might never have bothered.
Along with BBEdit's internal commands, you can add AppleScript or Unix filters to Text Factory commands, which enables even more sophisticated processing of files.
Preview via Local Server -- One of the most useful features added during the BBEdit 7.x days was Preview in BBEdit, which used Apple's WebKit to provide a nicely rendered live preview of an HTML document. The only problem with Preview in BBEdit, which I like and use regularly, is that HTML files on sites that rely on dynamic processing (such as my Web Crossing server) often don't render particularly well, since there's no server to generate the dynamic bits of the page.
Well, now there can be. A new option in BBEdit 8.0 lets you specify a local Web server (such as the copy of Apache launched by turning on Personal Web Sharing) as a preview server, and instead of just rendering the page directly, BBEdit sends the code through the server and renders what comes back.
There is a slight catch, of course, which is that the local server must be capable of everything your primary server is, and it must have access to all the images and other assets that your pages use. But it's not a bad idea to have a testbed server anyway, so I imagine people who use BBEdit for a lot of HTML will start thinking about the best way to integrate this into their workflows.
Better Mac OS X Application -- A number of the improvements in BBEdit are under the hood, and are aimed at making it a better Mac OS X application. Most notably, Bare Bones claims that it's a full-fledged Unicode program now, so you can work with multiple script systems in the same document (in the previous version, you could use only a single script system at a time). BBEdit 8.0 now uses the Mac OS X system-wide spelling checker, but it unfortunately doesn't yet support Check Spelling As You Type. Rich said that feature is at the top of the list to add; I hope we'll see it in an 8.1 release relatively soon, since the lack of inline spell checking actually drives me to write certain things in other programs.
Also, although fonts still aren't a big deal in BBEdit (where you can display only one per script system), the program now uses the Mac OS X Font palette. It's worth noting that although the Unicode underpinnings would conceivably enable BBEdit to become a styled text editor, Bare Bones stated no interest in adding such a feature. I can see why Bare Bones might want to avoid styles, since BBEdit simply isn't about making text look good. However, one aspect of that decision that I find disappointing is that being able to style text is a way of adding metadata to runs of text within a document, which in turn enables all sorts of additional things you can do in terms of text processing. That's one area where Nisus Writer still beats out BBEdit, since Nisus Writer macros can search for and work with text based on its font, color, style, and more. Perhaps a future version of BBEdit could add user-defined styles as a way of applying metadata to text.
Other Features -- Additional features abound. BBEdit 8.0 now includes an open source tool called HTML Tidy that cleans up HTML code to make it easier to read; it includes additional CSS markup commands. People working in Web scripting environments and other currently unrecognized languages can now create their own syntax coloring to make reading code easier. The new syntax coloring capabilities are aimed primarily at scripting and programming languages, and Rich said they'll be concentrating more on SGML and XML coloring in the future.
Whereas BBEdit 7.x added support for the CVS version control system, BBEdit 8.0 brings support for most of the things programmers want to do in the Perforce version control system as well. BBEdit 8.0 also adds support for Exuberant Ctags, which creates an index of functions in source files that enables these items to be found quickly. You can now optionally have a yellow highlight on the line containing the cursor, which may make working in complex documents easier. The Philip Bar has been replaced by the Page Guide, which puts a light grey background on the right side of the page where you could soft-wrap text. Tab stops can now be displayed as light gray lines running the full length of the window, a boon to anyone who regularly works with columnar textual data. For a full list of new and modified features, see the Bare Bones Web site.
Details -- BBEdit 8.0 requires Mac OS X 10.3.5 or later; Mac OS 9 users will have to stick with BBEdit 7.1. New copies cost $180 through 31-Oct-04 and $200 after that. Cross-upgrades from BBEdit Lite, Adobe GoLive, or Macromedia Dreamweaver cost $130. Upgrades from BBEdit 7.x cost $50 (unless you purchased since 01-Jun-04, at which point they're free), and upgrades from 6.5 cost $60. Bare Bones also offers user group, educational, and quantity discounts, and if you want to check it out first, there's a 30-day demo available as an 11.3 MB download.