Foreword

Why can’t computers in real life work like they do on Star Trek? I mean, it seems obvious that if you’ve got a lot of computing horsepower tied to your building (or your ship, or whatever), and if you’ve got all kinds of wireless connectivity (Wi-Fi, Bluetooth, IRDA, and so on), and if you’ve got a handheld “data pad” (like an Apple Newton or Nokia 770 or Treo 650), you ought to be able to see and use and share all of your digital resources. But you can’t— not without a lot of careful handwork involving cables and IP addresses and logins and passwords. They don’t have to do that stuff on Star Trek—it all just works! Is it just special effects, or are we missing something?

Of course, it’s long been possible to get Hollywood-like seamlessness from your collection of gadgets, as long as all of those gadgets were produced by the same company. Consider Metaphor’s desktop appliance, if you’re old enough. It’s also possible to “hack together” a pretty decent digital environment if you have a lot of technical skill, a lot of time on your hands, and a willingness to get those hands very dirty. Of course, a hand-hewn digital environment won’t be very tolerant of change, nor of guests. Why can’t we just buy new gadgets, take them home, plug them in (or not!) and use them? If electricity worked like communications, your house would be wired for Apple voltage or Microsoft voltage and you’d need a special step-down transformer if somebody gave you a desk lamp for Christmas that needed the kind of voltage your house didn’t have.

Should we be worried by this? Embarrassed? Amused? Since I drink way too much coffee, this kind of thing just makes me angry. I understand why and how deliberate incompatibility can be a powerful tool for competition—look at Microsoft’s “embrace and extend” philosophy or at Apple’s closed-loop control over iTunes/iPod. But that only works for companies with monopoly power or at least market dominance. What we’re getting, though, is a continuous stream of new and incompatible gadgets from companies who have nothing to gain from incompatibility—yet pursue it anyway! Why?

The answer stems from the difficulty inherent in cooperation. When a company ventures alone, variables like “time to market” or “steepness of innovation” are controlled internally—products are successful or not based on the company’s ability to make and follow plans. Efficiency in operation, and a proper balance between compactness and grandness of vision, determines the fate of the venture. However, if a company wants to work cooperatively with other companies to put “interoperability” or “seamless integration” into a product, then other variables enter into the mix, variables that are harder to predict or control—for example, “conflicting visions,” “conflicting interests,” “competitive advantage,” or even “efficiency differences.” Trying to build a product that’s compatible with competitors’ products is much harder than just building a product that works.

Stuart Cheshire discovered this for himself when he began his “zero configuration networking” effort within the Internet Engineering Task Force (IETF). He found conflicts of vision and interest, and he was beset by differences in efficiency; ultimately, he was forced to admit that IETF just wasn’t interested in his work. Luckily for all of us, Stuart’s employer (Apple) was very interested in his work. Just as luckily, Stuart and Apple both saw interoperability and seamless integration as the keystones on which the Zeroconf technology would stand or fall; the technology is (as far as I know) unencumbered, and Apple’s reference implementation is freely available as open source software.

Lo and behold, when I bring up a Linux data pad, laptop, desktop computer, or BSD server, all of my networked printers and file servers can see and reach one another without my having to configure anything. Even my wife’s Apple laptop and my kids’ Windows PC can play along.

None of the manufacturers—not SuSE, Hewlett Packard, Brother, or even Microsoft—had to license anything from Apple, and yet all of my family’s digital gadgets can see one another now, and it’s all because of Zeroconf. I consider it pitiful that IETF did nothing to help this effort, but that’s a longer story best told over beer. We all owe Stuart Cheshire and Apple a debt of gratitude for their tenacious desire to give to all of us the technology now known as Zeroconf or Bonjour.

Let me close with the story of how Stuart and I met. He had heard that I was a DNS guy and that I’d had something to do with writing BIND, and, since he’d decided to base his “zero configuration networking” technology on DNS, he invited me to lunch and told me his plans. Having drank way too much coffee that day, I told Stuart that he was crazy, that his design was ugly, and that DNS was the wrong way to do this. I didn’t say “and the gods shall surely strike you down,” but I was certainly thinking it. Fortunately for all of us, Stuart just ignored my tirade, put his shoulder to the wheel, and got on with his work.

La Honda, California, September 2005

Paul Vixie

Get Zero Configuration Networking: The Definitive Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.