I really like the concept of USB where devices from different manufacturers plug into hardware made by lots of different vendors without having to worry about getting the right plug. From a user’s point of view, it is great as long as their are drivers for a particular OS. Some types of devices such as hard drives have drivers built into just about every OS, so you just plug it in and you’re golden. Other devices such as PDAs, you have a big problem. I’ve been writing USB drivers and applications that talk to USB for over 3 years now and must say that as a developer, I hate USB. It seems that no one knows enough about USB to implement it correctly on the devices plugging into the computer, so as a developer, I have to code around their issues. Furthermore, each USB device should have a unique vendor and product ID. Vendor IDs seem to always be fine, but the device manufacturers, for some reason or another, give multiple devices the same product ID. This would be fine if the devices had identical USB implementations, but they don’t. Two companies in particular that seem to play games are Palm and Sony with their PDAs. They’re probably either trying to conserve product IDs or someone didn’t have a clue that it should be changed as they expect that they’d be the only ones talking to the devices. It is such a nightmare to deal with these devices. Right now my desk has 8 PDAs so that I can test my code. Things were humming along fine until an issue was reported and the log indicated a problem with some code I changed. Now, I have to find every Sony CLIE that has the same product ID and test my fix against them. Right now, there are at least 7 devices with the same product ID.