Por qué Bitcode es importante para Apple, para los desarrolladores y para ti

Bitcode es uno de esos engranajes que Apple introduce dentro de su maquinaria para “facilitar las cosas”. En muchas ocasiones estos engranajes que incluye dentro del proceso de creación y comercialización de aplicaciones implican un cambio inmediato y mejoras sustanciales como ocurrió el año pasado con Swift, mientras que otros son mucho más discretos pero no por ello menos importantes.

Bitcode cae en esta segunda categoría y su implementación nos habla del ciclo de vida de las aplicaciones conforme Apple vaya modificando ciertas partes del hardware de sus dispositivos y en concreto, el procesador.

Pero para entender Bitcode es necesario comprender como se compila una aplicación, es decir, como pasa del código que ha escrito un desarrollador a la aplicación que utilizas tu en tu dispositivo, sea el que sea.

Para estas tareas se utiliza un compilador, que convierte el código en un ejecutable. De hecho, un compilador puede ser capaz de entender varios lenguajes de programación para generar, una vez interpretado el código, una aplicación ejecutable. Así, un desarrollador puede programar una app en  diferentes lenguajes para obtener un mismo resultado.

¿Qué entonces Bitcode? Es un engranaje que Apple ha colocado entre el código de la aplicación y la aplicación compilada y ejecutable. Es un paso intermedio dentro de LLVM (que es el compilador que utiliza Apple y otras muchas plataformas) y la aplicación final.

¿Cuál es la razón de introducir un paso intermedio en este proceso? ¿No son más que ganas de complicar las cosas? Realmente no. Aunque el código interpretado por Bitcode no es ejecutable, si es factible modificarlo de forma automatizada. Esto permite, y aquí vamos a empezar a ver el valor de este paso intermedio, añadir nuevos lenguajes de programación al compilador y sobre todo, nuevos procesadores que ejecutarán el código compilado sin la interacción del desarrollador.

Bajo el flujo de trabajo actual, si Apple realiza cambios en su hardware (como por ejemplo, añadir un nuevo procesador a su gama de productos) los desarrolladores deben compilar una aplicación específica para ese dispositivo una vez dispongan de las herramientas de desarrollo actualizadas con soporte para el mismo y además, enviar la aplicación para su aprobación (y esperar que se la aprueben). Si por lo que fuera, la aplicación no funciona con el nuevo procesador, el tiempo que pasa entre la creación de la nueva app, su envío, su aprobación y la distribución de la actualización puede ser crítico para los desarrolladores además de poder dejar a un buen montón de usuarios sin su app favorita en su nuevo dispositivo. Bitcode elimina este problema ya que evita que el desarrollador tenga que reenviar la aplicación ya que permite de forma automatizada la modificación del código para que inmediatamente la aplicación esté disponible para este nuevo hardware, en este caso, un nuevo procesador.

Bitcode de momento está disponible solo para iOS, pero facilita enormemente la tarea de poder acceder a todos los procesadores de Apple, tanto de la serie Ax como de la serie Sx del Apple Watch. Al estirarse la gama de producto de Apple a lo largo del tiempo, con dispositivos que ya tienen unos cuantos años pero que siguen siendo capaces de ejecutar versiones modernas del sistema operativo (y el iPhone 4S es un buen ejemplo de ello) con Bitcode Apple se asegura que:

  • Las aplicaciones funcionarán lo mejor posible independientemente del procesador en el que se ejecuten.
  • Las aplicaciones podrán seguir funcionando en nuevos procesadores, y aquí viene lo importante, incluso en aquellos que estén en la mesa de diseño y todavía no existen.
  • Apple no dependerá de los procesadores ARM, porque Bitcode se adaptará a los cambios que la compañía de Cupertino haga en cualquiera de los extremos de este flujo de trabajo. ¿Que decide no utilizar la arquitectura ARM nunca más? No hay problema, Bitcode se encargará de adaptar el código a la nueva arquitectura del procesador. Y problema solucionado.

No te vayas, que aún hay más

Bitcode de momento solo está disponible para iOS, pero… ¿Que ocurrirá cuando esté disponible para OS X? Evidentemente Apple no ha dicho nada al respecto de esta implementación, pero abre un montón de puertas interesantes, algunas de ellas comentadas con anterioridad pero malinterpretadas, empezando por los procesadores que puedan utilizar los Mac en un futuro. Así:

  • Apple puede crear para los Mac un procesador propio, personalizado, diseñado y producido por la compañía que no tiene por qué tener nada que ver con la arquitectura ARM.
  • Las aplicaciones se convertirían en Universales al ser enviadas, es decir, gracias a Bitcode y sin la interacción del desarrollador, pueden ser utilizadas de forma independiente en un iPhone, en un iPad o en un Mac. Simplemente se compilan desde Bitcode adaptándose al hardware para el que van a ser descargadas.
  • Cualquier cambio en el hardware no implica destruir la base de aplicaciones disponibles sino que simplemente ésta se adapta a estos cambios sin la necesidad de la interacción del desarrollador.

Para estos cambios, Apple necesita introducir Bitcode primero y dejar que se extienda en segundo plano a lo largo del tiempo mientras prepara para el futuro los cambios en el hardware tanto en su plataforma de ordenadores como dispositivos móviles, incluyendo el Apple Watch y el Apple TV de forma que cuando se anuncien esos cambios la transición sea lo más suave posible sin la necesidad de tener que incluir el código para diferentes plataformas, como cuando se dio el salto entre PPC y procesadores Intel o incluir un software de interpretación como fue Rosetta.

Bitcode no ha generado grandes titulares, pero su presentación nos muestra cómo Apple construye los cimientos de futuras arquitecturas diseñando una transición suave entre ambas, y estamos en una posición privilegiada para ir viendo como se van a ir produciendo estos cambios.

Así que saca las palomitas.

0 0 votos
Article Rating
Subscribe
Notify of
1 Comment
Oldest
Newest Most Voted
Opiniones Inline
Ver todos los comentarios
ezmac
ezmac
8 years ago

Si,

todo muy bonito, pero … Con iOS tiene un pase !!
No así con OSX ya que tendremos que pasar si o si por la Mac App Store, con el consiguiente encorsetamiento que ya conocemos en iOS.

Espero que no sea así pero … X my fingers !!

1
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x