Що стосується інших місць, головне питання полягає в тому, що Android розроблений як портативна ОС, яка працює на широкому спектрі обладнання. Він також спирається на рамки та мову, знайомі багатьом існуючим розробникам мобільних пристроїв.
Нарешті, я б сказав, що це ставка проти майбутнього - незалежно від того, які проблеми з продуктивністю будуть нерелевантними, оскільки обладнання покращується - однаково, отримуючи розробників для кодування проти абстракції, Google може вивернути та змінити базову ОС набагато простіше, ніж якщо розробники кодували API POSIX / Unix.
Для більшості застосунків витрати на користування мовою на основі VM над рідною не мають значного значення (вузьке місце для додатків, що споживають веб-сервіси, як, наприклад, Twitter, переважно мережеві). Це також демонструє Palm WebOS - і в якості основної мови використовується JavaScript, а не Java.
Зважаючи на те, що майже всі JM JIT компілюються до нативного коду, швидкість неочищеного коду часто порівнянна з нативною швидкістю. Багато затримок, пов’язаних з мовами вищого рівня, менше пов'язані з накладними витратами на VM, ніж з іншими факторами (складний час виконання об'єкта, "безпека", перевірка доступу до пам'яті шляхом перевірки меж тощо).
Також пам’ятайте, що незалежно від мови, що використовується для написання програми, багато фактичної роботи виконується в API нижчого рівня. Мова верхнього рівня часто просто поєднує дзвінки API разом.
Звичайно, існує багато винятків із цього правила - ігри, аудіо та графічні програми, що розсувають межі апаратного забезпечення телефону. Навіть на iOS розробники часто опускаються до C / C ++, щоб отримати швидкість у цих областях.