Si el código Java puede ejecutarse en cualquier plataforma, ¿por qué los desarrolladores de iOS usan Objective C y no Java para ejecutar en el iPhone?

Porque, por razones muy obvias, Objective C tiene un 100% de soporte de proveedores en iOS. De hecho, ¿por qué usaría Java, cuando Apple está poniendo todo su dinero y esfuerzo para asegurarse de que Objective C y Swift sean las mejores opciones para su propia plataforma?

Eso no quiere decir que no pueda desarrollar aplicaciones iOS en Java, y cualquiera que le diga lo contrario tiene aproximadamente cinco años de retraso: Oracle ADF Mobile. Sin embargo, en su mayor parte, no es el camino más fácil de tomar. Doblemente, si ni siquiera está interesado en que su aplicación funcione más allá de los dispositivos iOS, y mucho, si no la mayoría de los desarrolladores de aplicaciones realmente entran en esta categoría. No pueden molestarse en depurar su aplicación en 50 dispositivos Android diferentes para asegurarse de que todo se procesa correctamente y se adapta a cualquier hardware muy dispares que esos dispositivos tengan para ofrecer. No les importa el soporte multiplataforma en absoluto.

¿Por qué no elegirías la plataforma estándar en ese caso?

Acabas de romper un mito.

La aplicación Java puede ejecutarse en cualquier plataforma que tenga JVM. Una máquina Windows sin JVM no puede ejecutar ningún programa Java. Las aplicaciones Java realmente se ejecutan en JVM. JVM, por otro lado, está escrito en C / C ++ y escrito para un sistema operativo específico. es decir, JVM para Windows de forma diferente a la de Linux o Mac.

No conozco ninguna JVM que se ejecute en iPhone. Si hubiera habido una JVM para iPhone, cualquier código Java se ejecutaría en iPhone.