jueves, 8 de diciembre de 2011

Antiguo ingeniero de Google explica porqué la interfaz de usuario de Android nunca será tan suave como la del iPhone o Windows Phone 7.




Este es el tipo de noticias que hace que los fanáticos de Android se arranquen los pelos, sobre todo porque no vienen de un fanático del iPhone, ni de un fanático de Windows Phone, sino de un ingeniero de software que hasta hace poco trabajaba para Google directamente con Android.

Sin embargo, mi objetivo no es hacer que nadie termine desquiciado, ni decepcionado, y por eso recomiendo que los fanáticos extremistas y todos aquellos que no sean capaces de asimilar una información de forma objetiva obvien esta nota y pasen a leer cualquier otra.


Una de las cosas que realmente se destaca en un iPhone es la suavidad con que se siente en comparación con el uso de Android. Android como sistema operativo es perezoso, lento, con un intervalo medible entre el momento en que se toca la pantalla y el momento en que el sistema operativo responde, iOS responde instantáneamente. Tan rápido que casi parece anticipar lo que quieres hacer antes de que tu dedo toque la pantalla.

¿Cómo logra Apple hacer eso? Aunque una mejor pregunta podría ser: ¿Cómo lo hace Google en Android? De acuerdo con Andrew Munn, un estudiante de ingeniería de software y ex pasante en Google, “Android es tan mal programado que Google nunca será capaz de igualar el rendimiento de un iPhone o iPad.”

Antes de que empieces a negar, negar y negar, mejor echémosle un vistazo a algunos antecedentes interesantes. Anteriormente se decía que la interfaz de usuario de Android era perezosa en comparación con iOS, porque los elementos de la interfaz de usuario no utilizaban aceleración de hardware hasta Android 3.0 Honeycomb. En otras palabras, cada vez que pasas la pantalla de un teléfono Android, el CPU necesita dibujar cada píxel de nuevo, y eso no es algo en lo que los CPUs sean muy buenos.

Ese argumento tiene mucho sentido, excepto por un detalle: no es cierto. Si así hubiese sido, el retardo medible en la respuesta al tacto de la interfaz de usuario de Android habría desaparecido con el lanzamiento de Android 3.0. Y la realidad demuestra que los dispositivos Android siguen teniendo retardo incluso después de instalar Android Honeycomb.

Google como mago de la publicidad y el mercadeo y los fabricantes de móviles Android han ocultado, disfrazado el problema de una forma bastante creativa. ¿Cómo? Aumentando el poder de sus teléfonos, tanto como se pueda y tanto como ese poder permita ocultar su debilidad.
Por tal razón es normal que los teléfonos Android más modernos tengan especificaciones que en muchos casos son mejores que la del iPhone. Por ejemplo, la mayoría de teléfonos Android cuentan con 1GB de RAM y procesadores de doble núcleo a 1.5GHz y hasta de cuatro núcleos, en comparación con el iPhone 4S que cuenta con 512MB y un procesador de doble núcleo a 1GHz, sin embargo, la interfaz del iPhone y del iPad es muchísimo más suave, lo que demuestra que el problema no es de hardware.
¿Entonces cuál es el problema?
 
La razón por la que Android no puede hacer que su interfaz de usuario táctil, funcione sin retardos, de acuerdo con Andrew Munn es que en iOS, los procesos de representación de la IU se producen con hilos dedicados con prioridad de tiempo real, deteniendo los demás procesos y centrando toda la atención en la representación de la interfaz de usuario. En otras palabras, cada vez que tu dedo toca la pantalla de tu iPhone, el sistema operativo, literalmente, se vuelve loco: “Alguien nos está tocando! Alguien nos toca! Y detiene todo lo demás que está haciendo y se concentra en que alguien está tocando la pantalla”.

En Android, sin embargo, los procesos de representación de la interfaz de usuario ocurre junto con el hilo principal y con prioridad normal. En otras palabras, la representación de la interfaz de usuario se hace de la misma manera que lo haría, por ejemplo, si estuvieras descargando de un podcast en el background, leyendo tus mensajes SMS o cualquier otra cosa. Por lo tanto, la interfaz de usuario se ve entrecortada.

Munn explica esto de una forma bastante explícita y a la vez aclara porqué Google fue lo suficientemente estúpido como para diseñar Android de esa manera.
La interfaz de usuario de Android nunca será totalmente suave debido a las limitaciones de diseño que he discutido al principio:
- La representación de la IU se produce en el hilo principal de una aplicación

- La representación de interfaz de usuario tiene prioridad normal
Incluso con un Galaxy Nexus, o en el procesador de cuatro núcleos del Asus Eee Pad Transformer, no hay forma de garantizar una velocidad de fotogramas suave si estas dos restricciones de diseño siguen siendo válidas. Es decir, se necesita el poder de un Galaxy Nexus para acercarse a la suavidad de un iPhone 3G con más de tres años. Así que ¿por qué el equipo de diseño de Android diseñó el framework de representación de esa manera?
Los trabajos en Android comenzaron antes del lanzamiento del iPhone, y por aquel entonces Android estaba siendo diseñado para ser un competidor para el Blackberry. El prototipo original de Android no fue un dispositivo con pantalla táctil. La representación de Android con compensaciones tenía sentido para un dispositivo con un teclado y una rueda de desplazamiento. Cuando el iPhone salió, el equipo de Android se apresuró a lanzar un producto que compitiera con el, pero por desgracia ya era demasiado tarde para reescribir el framework de la interfaz de usuario.

Pero surge otra pregunta: ¿Por qué Google no ha cambiado el framework de la interfaz de usuario de Android? Bueno, la respuesta es simple. Se trata de una tarea de enormes proporciones que requiere que cada aplicación en el Android Market sea re-escrita para soportar el nuevo marco. Eso se tomaría como mínimo un año, y la lógica dice que probablemente eso nunca sucederá.
En otras palabras, para que Google elimine el problema de retardo en Android, básicamente tendrían que destruir todo su ecosistema de aplicaciones. iOS, por otro lado, se construyó desde cero para soportar dispositivos multitouch, lo que demuestra que tan visionario fue Apple y que importante es hacer las cosas bien.

Me encanta cuando alguien que sabe explica las cosas, si hay algún ingeniero de software de Android que esté dispuesto a demostrar que Munn está equivocado, su explicación será bienvenida a través de los comentarios.

Los que quieran más detalle sobre todo este asunto, pueden ver la explicación de Andrew Munn en Google+ haciendo clic aquí. Seguro que habrán algunos fanáticos que querrán explicarle porqué está equivocado…

Fuente: Applediario

1 comentario:

  1. un ex pasante de google que va a saber!
    ademas es lo de menos, apple es satanas ahh
    hace unos dias llega un amigo y dice me compre
    un iphone 3g, oye ayudame a ponerle el sonido de la champions de ringtone.
    picandole y picandole, amm no se puede -_-
    mil mañas y asistencia de la pc para poder hacerlo
    -_- por eso y muchas otras cosas mas me caga apple
    quitan funcionalidad basica por sus puros HUEVOS, y yo no apoyo eso, asi sean mejores.

    ResponderEliminar