Smartphones y su OS: ¿qué impacto tiene el rendimiento nativo?

Estándar

Por más libreculturista que sea, debo admitir que la gente de la manzana tiene una ventaja importantísima sobre Android: rendimiento nativo. ¿Y eso con qué se come?, preguntará el novato. ¿Eso en qué afecta a mi teléfono? ¿Y se podrá hacer algo al respecto?
Primeramente, mejor explico someramente los detalles técnicos. Hay dos maneras de distribuir programas: una, la compilada, en que la aplicación se convierte directamente a los comandos que usa el equipo de destino, pero se debe repetir el procedimiento para cada arquitectura de computadora que requiera ser compatible; y otra, la interpretada, que se compila una sola vez, pero deja a cada computadora la responsabilidad de instalar un intérprete que convierta al vuelo el programa en códigos compatibles.

Ya con eso dicho, puedo comentar con más soltura el dilema. Los iPhones y parientes son creados solamente por Apple, con arquitecturas similares, y por lo mismo pueden darse el lujo de compilar nativamente las aplicaciones. Android puede instalarse en una amplia variedad de arquitecturas (MIPS, ARM6, ARM7 y X86, entre otras), por lo que era más razonable usar un intérprete, basado en Java. El problema es que, a la larga, los intérpretes tienen un costo computacional notable. Es por eso que dispositivos con más hardware que el iPad (como el Samsung Galaxy S4 o el NVidia Shield) corren igual o más lento: el intérprete es el cuello de botella.

La solución es, claro, compilar el código nativamente para cada una de las arquitecturas (como varios programas que requieren alto rendimiento lo han venido haciendo). Lo malo es que muchas de las funciones de bajo nivel de Android, por la naturaleza del sistema operativo, no están disponibles en forma nativa. ¿Qué queda entonces en el mundo de los sistemas operativos de bolsillo? Recurrir a nuevos sistemas que sí sean nativos, o al menos que tengan esa posibilidad. Firefox OS con su HTML5 va a seguir dando el mismo problema con distinta plataforma, por mucho que duela admitirlo. Ubuntu Touch y Jolla, en cambio, tienen mejores esperanzas de ofrecer un pleno rendimiento, y a decir verdad ya los espero con ansias. El problema, evidentemente, es que aún no han salido al mercado. Cuestión de paciencia…

  • Mauricio Rodriguez

    Andriod desde la version 2.2 usa JIT eso hace que los programas en Java tenga rendimiento similar al nativo. http://m.pocketnow.com/2012/09/11/what-is-jit

  • ¡Muy buena observación! Al principio planeaba incluir a Windows Phone al lado del iOS, pero al final no lo hice por dos razones:

    1. Windows Phone funciona en parte en modo nativo, y en parte como intérprete de la máquina virtual de C#. Por lo mismo no sabría en cuál de los dos grupos meterlo.

    2. El enfoque del artículo era con respecto a las decisiones de diseño que llevaron a los sistemas operativos móviles libres a tener peor rendimiento que las alternativas no libres. Windows Phone va en el segundo grupo.

  • Joan Of Cartago

    Y Windows Phone!? El tercer sistema móvil y qye hoy en día se come con patatas el rendimientos de los vulgares Android. Windows Phone con 512 de ram son más rápidos que muchos quads Android.