SBook is an advanced personal-information management program that runs on the Macintosh. The program lets you enter information in a free-form way: no bothering to put phone numbers into phone fields, e-mail addresses into e-mail fields, and so on. But unlike other free-format systems, SBook then applies advanced artificial-intelligence technology to recognize what you’ve typed. SBook can distinguish between the names of people and the names of companies, between cell-phone and fax-machine phone numbers, and so on. It even has an expert system for dialing the phone, so that you can use the same address book in different cities that might have different dialing rules.
I invented SBook’s basic algorithms back when I was a graduate student at the MIT Media Lab. The algorithms were pretty simple, but they were also really fast–even on a computer with a 25-megahertz processor and 16 megabytes of RAM. The following year I dropped out of the Media Lab program and took a job at NeXTWORLD magazine. A few months later I took the ideas and bundled them into the first version of SBook. I even set up a company to sell the program, but I didn’t get rich because the NeXT market never really got large enough.
I ported SBook to Mac OS X after Apple Computer purchased NeXT in 1996 and made NeXTSTEP the basis of the company’s Mac OS X operating system. Rather than try to sell SBook, this time I just made the program available for free at the website www.sbook5.com. The time had long since passed when you could sell an address-book program for $150. But since SBook still offered a lot of features that even Apple’s built-in AddressBook didn’t, I maintained the program and slowly added features–like the ability to export addresses to the iPod’s address book, the ability to sync with Apple’s AddressBook, better support for envelope printing, and so on.
Recently, though, I decided to give up on SBook. I still find the program easier to use than other contact managers–it’s really nice to be able to just copy from an e-mail message, paste the text into a new “page,” and be done. But over the years lots of people have been working to improve Apple’s AddressBook, so it’s steadily gotten better and better. AddressBook syncs with my Treo, it interoperates with Apple’s dot-Mac online service, and there are now plug-ins for Google Maps, Google Earth, and so on. Despite the fact that I made a plug-in architecture for SBook and published code samples, nobody ever wrote a plug-in for my program.
Unfortunately, this is more than just a demonstration of the power of network effects and bundled software. SBook put forth a different paradigm about how data could be stored: instead of forcing people to put their information into neat little labeled piles, the SBook philosophy was that the computer should be smart so that the human user can be somewhat sloppy. But all too often, software developers take a different approach: they require perfection (or at least order) from users, the same way that the computer requires perfection from the developers.
One of my favorite examples here is the unwillingness of most websites to accept credit-card numbers as anything but a sequence of 15 or 16 digits–no spaces or dashes allowed. It turns out that those spaces between the numbers on your credit card serve an important purpose: they make it easier for people to read, transcribe, and verify credit-card numbers. But the vast majority of websites I’ve used that require a credit-card number will generate an error if you try to type the spaces or dashes. With a single line of code, the programmers of those websites could silently remove the extraneous characters. Many websites will instead say something like, “Please reenter your credit-card number without spaces or dashes.”
Another disappointing example is what happened on Martha’s Vineyard in the 1990s when Town of Vineyard Haven bought a software package for compliance with the FCC’s E911 regulations. The town needed to build a geographic database with the location of every house on the map. But Vineyard Haven is a hard place to map: on some streets the house numbers were out of order. In other cases streets changed names, or two parts of the same street weren’t connected together. A more expensive software package could have handled these peculiarities. But the software package that the town purchased couldn’t. Instead, the town simply changed street names and renumbered houses so that the new name-and-number plan could be nicely represented in the database. My house’s number was changed from 10 Spring Street to 18 Spring Street.
Ultimately, names, street addresses, and telephone numbers are nothing more than a compromise among human nature, law, and technology: it’s certainly easier for programmers to force people to do a better job structuring their information than it is to write software that can handle a potentially limitless set of special cases. And in the end, it might even be cheaper for society to force people to eliminate their representational differences and adopt clear and well-defined standards. But we do lose character and novelty as part of this great regularization process.
In any event, I’ve given up on SBook, have published the whole source code at www.sbook5.com, and am now exclusively using Apple’s AddressBook as my desktop contact-management software. At least I’m not stuck using Microsoft Outlook.