I wrote this comment in a very interesting Slashdot discussion. Lately Slashdot discussions have been quite boring; but this one has good comments (other than mine of course!). This comment from a Palm developer is particularly interesting.
When I teach about data interfaces in healthcare systems, and the complexity of integration, I compare Palm original representation of a 'contact' (address book entry) with Outlook/Exchange server's contact representation. The complexity (non-computable complexity in some areas) of synchronizing between these two was a huge problem for Palm. I'm not sure when they figured out how much trouble they were in, but once Microsoft took over the enterprise with Exchange server Palm's fate was pretty much sealed.
In later versions of the OS they tried to better match Outlook's data models, but they botched the software layer that provided some backwards compatibility (arguably they should have given up on the backwards compatibility, they ended up with the worst of two options).
Linux on the Palm is not as important, really, as matching the Exchange server data model.
More broadly, synchronization is a problem that's been grossly underestimated in many quarters. It often requires a fuzzy non-deterministic reconciliation of semantic models; the same challenge that Berners-Lee addresses in the context of the semantic web. This issue is a major part (along with some perverse economics) of why healthcare IT projects are so difficult.
I hope Palm now understands these issues, I fear that much of their intellectual capital may have moved on...