Llevamos varios años oyendo hablar que Apple en algún momento cambiaría sus procesadores para los Mac por los suyos propios con arquitectura ARM. Más concretamente, desde 2011 se empezó a hablar del tema en algunos medios especializados. Pero por fin, ayer, Bloomberg lanzó la bomba (Mark Gurman): Apple presentará su transición a ARM en los Mac en la próxima WWDC.
Lanzada la bomba, llegan las preguntas. Preguntas de toda índole, ¿qué supone? ¿cómo se hará? ¿qué pasará con las apps? En este artículo vamos a intentar contestar el máximo posible en base a vuestras preguntas en redes, directos de YouTube en nuestro canal y demás.
Preguntas y respuestas
¿Cómo hemos llegado aquí?
Todo comenzó en 2008 con la compra por parte de Apple de la empresa de diseño de procesadores PA Semi, que derivó en el lanzamiento de las primeras CPUs diseñadas por Apple en toda su historia: los procesadores A4 que se anunciaron con el primer iPad en 2010. Esa misma CPU acompañó a los iPhone 4 y desde ahí, Apple ha seguido una carrera ascendente de innovación y clara ventaja sobre la competencia, creando los procesadores más rápidos y eficientes del mercado en arquitectura ARM.
Cuando en 2013 Apple lanzó el primer procesador puesto en un dispositivo móvil de 64 bits, el A7, el público en general comenzó a vislumbrar la posibilidad futura que Apple usara sus propias CPUs en vez de las de Intel en los Mac que ya en ese momento empezaban a tener problemas termales, retrasos en entregas y otros dolores de cabeza para Apple.
Según los rumores, Apple lleva probando desde entonces macOS con sus propias CPUs, testando la viabilidad de una nueva transición de procesadores. Los resultados no eran óptimos ni cumplían las expectativas de la compañía, hasta que se probó el A12X que usan los iPad Pro de 2018. En ese momento Apple aprobó la nueva transición y se comenzó a trabajar con todos los recursos en el proyecto que llevará a la transición que se anunciará este año y comenzará en 2021: el proyecto Kalamata.
¿Qué diferencia hay entre una CPU de Intel (x86) y una de Apple (ARM)?
Existen muchas diferencias. La principal y más clara es que tienen conjuntos de instrucciones completamente diferentes (salvo operaciones aritméticas muy básicas y alguna que otra anecdótica excepción). Ambas arquitecturas de 64 bits al tener instrucciones diferentes necesitan que el código que llega a ellas sea también diferente. Por lo que para hacer un mismo proceso en x86 o ARM, el código que llega a sus CPUs (al más bajo nivel) será diferente.
Aparte de esto, ARM es una arquitectura basada en eficiencia energética mientras que x86 intenta ir más hacia la fuerza bruta; potencia. Eso supone que las CPUs de Intel son más eficientes para realizar procesos mientras que las de ARM lo son más para consumir menos energía y calentarse menos haciendo esos mismos procesos. Más eficientes en uso de energía pero menos en potencia.
A grandes rasgos y por no ahondar en profundidad, una CPU ARM tiene instrucciones todas del mismo tamaño en bits, mientras que Intel tiene instrucciones de diferente tamaño. Por lo que en un ciclo de reloj, una CPU Intel es capaz de procesar más instrucciones a la vez. Además, el conjunto de instrucciones de Intel es mayor y más diversificado. Puede hacer cosas con una sola instrucción donde ARM necesitará varias.
Esto hace que comparar una CPU x86 o ARM por fuerza bruta (con herramientas como Geekbench) no signifique nada realmente porque la forma en que funcionan ambas arquitecturas es tan diferente que la fuerza bruta solo da una parte del mensaje.
¿Por qué hace Apple esta transición?
Cualquier usuario que tenga un ordenador portátil de Apple como un MacBook Pro, desde hace casi 10 años, sabe una cosa. Los Mac se calientan mucho. Mi MacBook Pro de 2011 cogía unas temperaturas que terminaron por agrietar las conexiones de la GPU dedicada en la placa (Apple lo cambió sin coste alguno 5 años después). Mi nuevo MacBook Pro se calienta que da gusto cuando le pides procesos de gran peso como renderizar un vídeo con muchos efectos o desarrollo gráfico de alto nivel.
Hoy día, todos los portátiles de Apple sin excepción, alcanzan temperaturas de 90 a 100 grados centígrados cuando se les piden procesos de alta exigencia. ¿Por qué? Porque Apple quiere unos diseños para sus clientes finos, elegantes, ligeros... pero Intel no es capaz de fabricar unas CPUs que puedan ser convenientemente refrigeradas con un diseño termal que "quepa" en esos diseños de portátiles. Esto no es un problema solo de Apple: cualquier ultrabook del mercado de alta potencia adolece del mismo problema. Solo ordenadores gruesos, pesados y con sistemas de refrigeración más ruidosos son capaces de enfriar convenientemente las actuales CPUs.
Sin embargo, Apple es capaz de poner una CPU A12x en un iPad Pro con solo refrigeración pasiva (sin ventiladores, solo un disipador de metal) y conseguir velocidades de renderizado en 4K que rivalizan con los ordenadores más modernos (gracias a su núcleo de codificación de vídeo). Permite trabajar con una línea de tiempo 4K en Luma Fusion en tiempo real sobre el formato comprimido o jugar al Fortnite en 60fps sin problema alguno.
Eso quiere Apple: una CPU competente, cuyo rendimiento sea equiparable (o incluso mejor en ciertas tareas) a otras del mercado y que no necesite ventiladores o diseños termales complejos. Ordenadores cuya CPU sí se refrigere correctamente en sus diseños sin provocar los problemas de calor excesivo que llevan sufriendo los portátiles de Apple en los últimos años. Y que además permitan una duración de batería mucho mayor.
¿Funcionarán las mismas apps?
No hay información oficial al respecto, pero si atendemos a las anteriores transiciones de arquitecturas que Apple ha llevado a cabo, de Motorola a PowerPC y de PowerPC a Intel, nunca ha dejado que sus apps de arquitectura anterior dejaran de funcionar.
Así que es lógico pensar que Apple habrá ideado una forma para que todas las apps que funcionen en la versión que esté vigente en el momento del lanzamiento (macOS 10.16) lo hagan independientemente de la arquitectura donde se ejecuten o si están o no adaptadas.
¿Qué significa que las apps tendrán que ser adaptadas?
Como ya hemos dicho, las apps tendrán que adaptarse porque las instrucciones de un chip ARM son diferentes. Ninguna app ni componente del sistema funciona tal cual y han de ser adaptados para funcionar en otra arquitectura de la forma más transparente para el usuario. Hay que usar compiladores que generen código de bajo nivel para ARM y conseguir que el código que funcionaba en Intel funcione ahora en ARM. O que los intérpretes de código traduzcan a ARM para que todo funcione.
¿Cómo se hará esa adaptación?
No lo sabemos aún. Es lo que Apple anunciará en la próxima WWDC: cómo los desarrolladores tendrán que adaptar sus apps para que funcionen en Mac con procesadores ARM de Apple.
Abstrayendo desde mi conocimiento, todas las dependencias del sistema operativo de Apple estarán adaptadas a la perfección a ARM, lo que significa que una app 100% nativa que no use dependencias de terceros (que no sean de Apple) solo necesitará un pequeño check en el futuro Xcode 12 y volver a ser compiladas. Nada más. Eso les permitirá funcionar independientemente en una u otra arquitectura.
¿Y el resto de apps? Dependerá de las herramientas o librerías que usen para funcionar. Si usan Java, pues macOS deberá tener una máquina virtual Java instalada para ARM (que la hay, obviamente). Si usan C++ como lenguaje, deberán compilar dicho código para que funcione en ARM (que se traduzca correctamente). En el 90% de los casos estaríamos hablando de una simple recompilación de código. Pero las herramientas han de estar adaptadas y las dependencias de cada una de las apps también.
Tampoco sabemos cómo los desarrolladores podrán transicionar las apps y probar estos cambios si hasta 2021 no habrá nuevos equipos, así que se baraja la posibilidad de un kit de desarrollo similar al que Apple ya cedió a desarrolladores en el pasado para la última transición. Tal vez un Mac mini a precio reducido que nos permita probar y validar las apps antes la llegada de los primeros Mac con ARM en 2021.
¿Y las apps que no se adapten a ARM?
De nuevo, otra duda. Si exploramos el actual estado de la tecnología y cómo Apple resolvió este problema en el pasado, mi teoría es: virtualización.
Según se ha podido saber, macOS tiene una capa hypervisora que actualmente se usa para gestionar de forma más eficiente los procesos y tareas del sistema. Esta capa, básicamente, es una capa de virtualización de procesos que permitiría virtualizar una app entera. No solo eso, permitiría virtualizar procesos concretos de una app.
En la anterior transición, Rosetta era un software que traducía dinámicamente los binarios de PowerPC a Intel. Como un emulador. Con que un solo componente o dependencia de una app no estuviera portado a Intel, toda la app funcionaba emulada porque requería estar adaptada al completo.
Pero dada la actual tecnología, podríamos ver una virtualización basada en procesos. De esta forma, si una app tiene 20 piezas pero 3 de ellas "no le han dado al click" y no están adaptadas, las 17 piezas que sí lo están correrían nativamente sobre ARM y las otras 3 "se enlazarían" al hypervisor integrado en el núcleo del sistema operativo, para virtualizarse como procesos y ejecutarse en ARM aunque sean x86, como cuando usamos VirtualBox o VMWare, pero integrado en el sistema.
Esto permitiría un mejor rendimiento de las apps, una mayor escalabilidad en la transición y mejor eficiencia en la ejecución de apps en la etapa en la que aún no estén adaptadas.
¿Qué pasará cuando las apps estén adaptadas?
El Mac App Store es el centro de todo el cambio, pero no el único. Cualquier app subida al Mac App Store solo descargará el binario que le corresponde en función de la arquitectura de la máquina donde lo haga (como sucede ya con iOS).
Si el software se baja desde la página del autor, o bajaremos un binario universal con los ejecutables de ambas plataformas (como antaño con la transición de PowerPC a Intel) o solo la versión que corresponda a nuestra máquina.
Para nada Apple cerrará su sistema al Mac App Store, pero no olvidemos que hoy día ninguna app puede ejecutarse sin el uso de notaría que es una revisión automática de Apple que requiere que los desarrolladores tengamos cuenta de pago en Apple.
¿Y Bootcamp?
Entendemos que Microsoft y Apple trabajarán juntos para esto, pero es obvio que hasta que Windows no tenga una versión estable de su sistema en ARM, BootCamp no será una opción en estos nuevos Mac.
Sin embargo, usar Parallels Desktop u otro sistema de virtualización si sería posible, aunque su rendimiento será inferior al que tiene ahora ya que actualmente Windows se ejecuta en Parallels sobre la misma arquitectura de CPU y aquí tendría que virtualizarla y sería más pesado para el sistema. Pero no imposible. Todo depende que los software de virtualización se adapten. De hecho, VirtualBox o VMWare ya tienen versiones en ARM.
¿Cambiará eso la forma de programar las apps?
Jamás. Una cosa es el código y otra su traducción a cada arquitectura. El objetivo de todo código (y así llevamos muchos años) es que pueda ser traducido a cualquier arquitectura. La misma app que usa Swift u Objective-C, o C++, o .NET, o Java, o Python... o cualquier lenguaje, mientras tenga un compilador/intérprete para ARM, funcionará exactamente igual que ahora mismo.
¿Podrán ejecutarse entonces las apps de iPad Pro en el Mac más fácilmente?
NO. Absolutamente NO. Tener la misma arquitectura no significa tener el mismo sistema operativo. ARM es la arquitectura de Android y iOS, y todos sabemos que no pueden ejecutarse apps de Android en iOS y viceversa. Al igual que Windows y Mac funcionan ahora en x86 y no puedes ejecutar apps de uno en el otro.
Cada sistema operativo tiene sus dependencias, sus instrucciones, sus librerías... y no son compatibles unas con otras aunque hablen el mismo idioma a bajo nivel.
iPadOS, iOS, macOS, tvOS o watchOS no van a estar más cerca por estar ejecutados en la misma arquitectura. Eso depende exclusivamente de sus dependencias y librerías.
¿Qué ordenadores serán los primeros con ARM?
Presumiblemente, los de gama más de consumo. Podríamos ver el resurgir del MacBook de 12" por debajo de $1000 o un nuevo Mac mini de gama consumo a precios muy competitivos (como ya sucedió en el pasado) por apenas $600 o $700. Que Apple fabrique sus propios chips debería repercutir en una bajada de precio de los equipos, que será el principal atractivo para el consumidor general para pasarse a los nuevos equipos.
También podríamos ver un iMac de gama entrada y posteriormente se irían incorporando equipos con mayor necesidad de proceso: más profesionales. Lo que no está claro es que toda la gama Mac pase a ARM ya que existe una alta probabilidad, dadas las diferencias innatas de arquitecturas, que para ordenadores mucho más exigentes ARM no pueda ser una opción y queden en Intel. Incluso está abierto la puerta a que pasen a chips de AMD.
Esta transición no sería, en principio, para los usuarios más profesionales que sí fueron los motivadores de la anterior de PowerPC a Intel. Ahora serían los usuarios de menor perfil los beneficiados.
¿Cuánto durará la transición?
No está claro ni cuánto durará ni si llegará a toda la gama Mac como los MacBook Pro de mayor gama o, sobre todo, los iMac Pro o los Mac Pro. Si hacemos caso a los rumores, hablaríamos de unos 4 años para dar por concluida esta transición en hardware y software.
¿Supone esta transición que habrá una fusión de macOS y iOS en el futuro?
¿Y las GPUs? ¿Cuáles serán?
Desde el año 2018 con los procesadores A12, Apple diseña sus propios chips gráficos. De hecho, la potencia gráfica de un A12X de los iPad Pro de 2018 o del A12Z del iPad Pro (2020), es similar a una Xbox One S o una PS4 (la no Pro). Esta comparación es de la propia Apple.
Si hacemos caso a los test por fuerza bruta contra la GPU, usando la librería Metal de Apple, veríamos que la GPU del A12X estaría situada algo por encima de una NVIDIA GeForce GTX 950 (una GPU con unos 5 años de vida) y algo por encima de las Intel Iris Plus.
Por lo tanto, podríamos suponer que la potencia gráfica de los nuevos Mac con ARM (en su GPU integrada) estaría en unos parámetros similares a las actuales Intel Iris de última generación que ya incorporan equipos como el MacBook Air, Mac mini o el MacBook Pro de 13". Puestos a soñar con mejoras en las GPUs en los últimos dos años, podríamos soñar que esté al nivel de un GTX 1050.
¿Podrá conectarse una eGPU? Sí, siempre que Apple proporcione un driver de arquitectura ARM para la gráfica dedicada que conectemos, obviamente.
Conclusiones finales: transparencia para el usuario
El objetivo final de Apple, y esto es algo que debemos tener sumamente claro, es que no notemos diferencia alguna, si el Mac usa Intel o ARM. El sistema funcionará igual de bien (lleva muchos años adaptado a esta arquitectura), y todas las apps igualmente funcionarán. ¿Mejor o peor? Lo suficientemente bien para no notar diferencia.
¿Cómo medir entonces si van mejor o peor? No se puede. Solo el uso del equipo lo dirá. Es como intentar comparar si un iPad va mejor que un Mac. Depende de para qué y depende de su software. En este caso, un Mac con ARM irá mejor o peor dependiendo si la app está o no completamente adaptada a la nueva arquitectura o de la tarea que queramos hacer entre otros factores.
Pero si Apple ha decidido dar el paso es porque, como mínimo, todo irá igual de bien que ahora. Os iremos informando de todas las novedades ya que la WWDC está a la vuelta de la esquina y en Applesfera estamos preparando una cobertura épica. No podéis perdérosla.
Ver 71 comentarios