With C/C++ you have to recompile, with Java you need to have a JVM compatible with the target host, so no big differences imo... If Dalvik is so portable, why we don't have it on Maemo?