Почему в Java используется байт-код для обеспечения кроссплатформенности?
Чем создание JVM под конкретные платформы «лучше», «проще», «продвинутее», «правильнее» написания компиляторов под те же платформы?
но в чем проблема сделать компилятор для новой платформы (для компилируемых языков)вообще никаких проблем, взять и за полчасика свять)
Потом добудем все 100500 миллионов программ и скомпилируем под каждую архитектуру)

Теперь сравним с java-style "бинарником" - он один и тот же будет работать без промежуточных компиляций сразу один на всех платформах. Комфортно? Да.  Почем? Недорого - абстрактно чутка помедленнее чем отписать идеальный код например на компилируемом языке, собрать с идеальной оптимизацией, отпрофилировать и узкие места под каждую платформу переписать в машинных кодах. В итоге получим на пару микросекунд более быстрое формирование выпадающего меню и затюним под психологический комфорт интерфейса задержками его появление до 0.3..0.5сек)))