I am curious to know what made google choose to develop android's framework on java VM.
In the process of writing code for android for nearly 6 months now, I observed that running code on a VM in a resource limited platform is really slow. There is a lot of overhead involved. I know that java is portable etc etc, is it not possible at all to use native languages and get both performance and features offered by a VM ? For performance oriented applications one still ends up writing native code and wrap it with JNI,
So why did google choose this particular stack :
- Arm based core (understandable, ARM is the best for mobile devices)
- Linux (Open source)
- Java VM (My question)
EDIT : I know java - JVM runs on par with C++ applications on my server, but not on android. With respect to android its not the case - As a matter of my experience, a C++ code wrapped with JNI runs far faster than java code (note I have even checked with exact same code from a static block in java) I will agree with your answer on any other platform.