As a general rule, I could agree on the principle that complicated things should be masked away from the user behind a simple and intuitive interface. Well maybe more than just agree. Even if the user could manage to get that complication working, she could easily to make an error, or be endangered. A clean and crisp interface is advisable.What is just irritating is when something with a clear and simple model is hidden behind a smoky interface with a different model.
I am talking about Palm synchronization. I think that the idea of synchronizing is for people who don’t want to know what a ‘file’ is. And, yes, what the heck, if you have two databases (such as the contact list) you actually want to ‘synchronize’ them, copying records back and forth until everything looks the same (and hopefully nothing gets lost in the process).
But if you have a word processor document you just want to copy it from the PDA to the PC or vice-versa. It *IS* a file. So the abstraction is that of two file containers (directories? drives?) that you want to operate on. The USB mass storage dongle abstraction – hook it up to the PC and you get a drive, drag and drop files to this drive, unplug and be happy.
Moreover the synchronization of the whole system has some dark points – what is supposed to the synchronization mechanism if you remove a file from one of the two synchronizing devices? Propagate the deletion to the other system? Ask for user intervention? Undo the deletion with the other copy?
What if the same document is available in the two system but it is modified in both systems?
Not to talk about Linux that does the synchronization its way – the SD card is not synchronize neither the sub-directories are.
So I really don’t understand why Palm is so stuck to the synchronization abstraction. It’s handy in the real simple scenario, but it sucks elsewhere.