Başka bir yerde değinildiği gibi, ana sorun, Android'in çok çeşitli donanımlarda çalışacak şekilde taşınabilir bir işletim sistemi olarak tasarlanmasıdır. Aynı zamanda birçok mevcut mobil geliştiricinin aşina olduğu bir çerçeve ve dil üzerine kuruludur.
Son olarak, geleceğe karşı bir bahis olduğunu söyleyebilirim - mevcut performans sorunları donanım geliştikçe önemsiz hale gelecektir - aynı şekilde geliştiricilerin bir soyutlamaya karşı kod yazmasını sağlayarak, Google temeldeki işletim sistemini söküp değiştirebilir. geliştiriciler POSIX / Unix API'lerini kodluyordu.
Çoğu uygulama için yerel yerine VM tabanlı bir dil kullanmanın ek yükü önemli değildir (Twitter gibi web hizmetlerini tüketen uygulamaların darboğazı çoğunlukla ağdır). Palm WebOS de bunu gösteriyor - ve bu, ana dil olarak Java yerine JavaScript kullanıyor.
Neredeyse tüm VM'lerin JIT'sinin yerel koda derlendiği göz önüne alındığında, ham kod hızı genellikle yerel hız ile karşılaştırılabilir. Daha yüksek seviyeli dillere atfedilen birçok gecikme, diğer faktörlere (karmaşık bir nesne çalışma süresi, sınır kontrolü yaparak 'güvenlik' bellek erişimini denetleme, vb.) Göre VM ek yüküyle daha az ilgilidir.
Ayrıca, bir uygulamayı yazmak için kullanılan dilden bağımsız olarak, fiili işlerin çoğunun daha düşük seviyeli API'lerde yapıldığını unutmayın. En üst düzey dil genellikle API çağrılarını birbirine zincirler.
Elbette bu kuralın pek çok istisnası vardır - telefon donanımının sınırlarını zorlayan oyunlar, ses ve grafik uygulamaları. İOS'ta bile, geliştiriciler bu alanlarda hız kazanmak için genellikle C / C ++ 'ya düşer.