You point is noted and valid. How then do we balance it with the principle of re-usability? http://en.wikipedia.org/wiki/Reusability

The Oracle Technology Network => http://www.oracle.com/technology/pub/articles/andrei_reuse.html

Some of us look at these things from the business (productivity) point of view. We do not want developers going dark (quiet) on us because they cannot deliver on time.

Google Android developers are getting into the same problems that Windows Mobile developers have experienced - apps need to be customized for too many platforms - harming developer productivity. Code needs to be easily re-used (with less debugging) on different phones. http://www.wired.com/gadgetlab/2009/11/android-fragmentation/

Apple controls the OS and hardware (iPhone) so it is easier for developers to re-use the same code = less debugging = higher quality apps => pity the iPhone 3G is not in my budget yet... and while Microsoft Distinguished Engineers work to resuscitate Windows Mobile it looks like good old Symbian for most of us still ...