Hang on...
Wasn't C supposed to be a "Portable Assembly Language"?
Wasn't Java supposed to be a "write once, run anywhere" platform?
Wasn't modular programming supposed to make re-usable code easier to write?
Wasn't OOP / OOD supposed to make re-usable code easier to write and use?
Wasn't [INSERT TECHNOLOGY HERE] supposed to make it easier to target multiple platforms?
Wasn't the Web supposed to *become* a "universal" platform?
It's been *forty years* since the invention of the first portable programming languages. It's not news. Unavoidable UI design issues are the hard part now. A 3" screen on a device with only a number-pad and other (completely unstandardised) buttons for user input is a far cry from a laptop, or a multi-touch tablet, or an HD TV-connected games console...