From a long tradition of unfortunate code names comes “Paparazzi,” the family name announced last week for a line of wireless data devices from the dynamic duo of Microsoft and Swatch. Whether you like the name or hate it—my stand, Im sure, is apparent—these devices represent more than their obvious challenges to developers.
I have to take a moment to observe that this is one really awful trademark. But look at the history: Microsoft has already had to abandon the code name of “Hailstorm,” a word without a single positive association, for its personal Web services offering. Swatch, for its part, deserves some kind of medal for its mega-weird notion of “Beats,” a proposed unit of universal no-zones Internet Time at 1000 Beats per day. What was wrong with Zulu?
Put these two marketing teams in the same room, and youd almost expect them to come up with a trademark like “Paparazzi”—a word derived from the name of an annoying character in a Fellini film, newly celebrated (if thats the word) in a movie produced by Mel Gibson, and internationally recognized as a nickname for someone who shoves his annoying hardware in your face.
If we put the unfortunate MicroSwatch trademark aside, we can see that Paparazzi is actually … um, well, an unfortunate idea. Its the latest incarnation of Microsofts Smart Personal Object Technology or SPOT. (The latter, it seems to me, is another ill-chosen name: When I hear “spot,” I think of Lady Macbeth trying to wash her hands of something that didnt work out as planned. I suppose, though, that SPOT was better than the original proposal: I put Dan Rathers fact-checking team on the job, and they confirmed that whats now called SPOT was originally dubbed Microsoft Accessories for Compressing Bit-based Entertainment into Tiny Hardware. But I digress.)
The crucial question is, whats the import for application developers? It would be easy to get sidetracked by the interesting problem of writing applications that tailor themselves to the available client resources—to adapt without user intervention to the full-screen displays of PCs, the small-screen displays of PDAs and cell phones, and the tiny-screen displays of smart wristwatches. We can have a lot of fun with the XML tricks, for example, that make this possible with minimal redundant code.
Its clear, though, that in the not-too-distant future, the Internet needs to become a backplane inhabited more by devices communicating with each other than by devices (or people) consuming the increasingly scarce time and attention of (other) people. The best user interface is no user interface: Consuming the users attention is a defect, not a feature.
Nicholas Negroponte may have been among the first to talk about smart personal objects, with his scenarios of cufflinks and earrings communicating with each other: note well, with each other, not with the person wearing them. The crucial point is that Negroponte envisioned connecting devices, not to feed us more information—sports scores? seriously? —but rather, to reduce the glut of mostly irrelevant and largely undesired demands on our attention.
For example, we might someday have telephones that act in concert with other devices to decide when to ring for any incoming call, when to filter out all but immediate family calls (the TV is showing a live event) and when to filter out all but emergency communications (theres weight on your side of the bed).
I want to emphasize, though, that this is immensely difficult to do in a way that doesnt add more annoyance and distraction to our lives than it subtracts. Ive recently had a chance to think about this challenge in concrete terms: Three weeks ago, I took delivery of a car that has a keyless entry system, using a transponder that can stay in my pocket but still let me unlock doors or start the engine just by pushing a button on a door or the dashboard. Its a reasonably smart sort of object, thanks to well-placed sensors and well-considered software: The feature is implemented well enough that my normally gadget-shunning wife actually likes it. Even so, its the subject of several paragraphs of warnings in the owners manual for the car.
The instructions cover special cases, such as trying to lock the doors by one method while accidentally holding the handle that unlocks them; they warn against potential mistakes like storing your transponder too close to the car, running down the batteries in the device. There are warning signals that the car will give you when you screw up: long beeps, double beeps, continuous beeps. And all of this is just for two variables: lock and unlock the doors, and start or dont start the engine. Imagine the combinatorial explosion of states and interactions that wed have in Nick Negropontes dream house.
If we want to have larger constellations of objects doing much more interesting things, were going to have some studying to do. It takes a great deal of work to model the paths that users take through different states of intention and behavior, and to make sure that the right information is available to the system—but not too readily available to anyone else.
After all, we wouldnt want to have a situation in which someone can go war driving through a neighborhood, interrogating the cyber-butlers and finding out which homes are unoccupied. If you think people are unhappy about the security leaks between their PCs and the Net, wait until they discover that their appliances are telling anyone whos interested about their owners personal habits.
Developers can anticipate continued improvement in the hardware that makes these things possible. There are already plenty of ways for developers to get an early idea of new hardware capabilities, and to give each other reality checks on which things are ready to go to market, and which are still just Stupid Digital Tricks.
For now, though, Im more interested in what it takes to put more intelligence in a development team—not a wristwatch.
Tell me what kind of smarts youd like to see in the objects around you at email@example.com.
Check out eWEEK.coms Application Development Center for the latest news, reviews and analysis in programming environments and developer tools.