USB-IF Slaps Palm In iTunes Spat
An anonymous reader writes "The USB Implementers Forum has finally responded to Palm's complaints that Apple is violating its USB-IF Membership Agreement by preventing the Pre from syncing with iTunes. It's found in favor of Apple. Worse, it's accused Palm itself of violating the Membership Agreement by using Apple's Vendor ID number to disguise the Pre as an Apple device."
WebKit, Grand Central, Darwin Streaming Server, LaunchD (some Linux please pick this up...), Bonjour (Yes ZeroConf, but I think they're the first to make it popular), Even XQuartz so that OSS stuff that uses X11 can run under OS X looking like OS X. They even have a cute little website with the word 'forge' in it: http://macosforge.org/
Hell they even have Darwin, the base of OS X. Lets see Microsoft release an OSS version of XP minus some GUI bits.
Yes, Apple is protective of quite a bit of stuff. But they're released a ton more OSS that I've found than MS.
I don't think either party was the hero in this battle, but Palm deserved what it got.
Apple provides legitimate methods to connect a device to iTunes via a public API and/or Toolkit. This lets them support things easier by making sure the public API works after changes.
I see it as less "anti-competitive business practice" and "we want to stop the ball rolling on companies tricking iTunes so support doesn't become a problem."
Look at it this hypothetical scenario which is NOT the case here but goes to the overall problem.
- Lets say ALL of the device companies out there decided to skip the API and do what Palm did: trick it.
- Apple legitimately wants to change something on their end with the way iTunes interfaces with iPod/iPhone.
Do something neat / tricky to add a feature or improve performance that they KNOW works on the iPod/iPhone.
- But now they have to worry about breaking every other device out there because the hardware and capabilities are different.
- So now you have to wonder "is this REALLY an iPhone?"
* If only there was some way to know for sure which device this was?
* Oh wait! THAT's what Vendor ID is for.
------------------
This is the sole point of the public API and/or Toolkit. You state funcX() returns Y. Maybe one day you want to add funcZ() or replace funcX() with funcX21() . Maybe you eventually upgrade the API / Toolkit so the client code needs to be changed but it's on the other companies to stay current, not you supporting other companies' devices.