Although there are many platforms that provide you the facility to write once and run on multiple platform but from my point of view its not a great idea for simple reason of performance just think of below example
A C
code is far faster than a java
code because java provides you the virtual machine to run that code and java is far more easier to write than that of C. The idea is the more you stick close to native API the more you will get performance.
So considering the above example just think what will be the performance of such application that is supported on so many platforms
Note: I have not worked on any of such platforms so I might be wrong but this just a simple conception that fits to all