Apple M1: experiencia de un Frontend Developer
Tags: apple, applem1, review, frontend
Published: 2021-02-24 22:31:26

He visto distintos artículos o vídeos de gente hablando sobre el nuevo chipset de **Apple**, y me gustaría aportar mi granito de arena. Llevo trabajando con un MacBook Pro desde hace 3 años, y he tenido en mis manos distintos portátiles de Apple (todos ellos MacBook Pro). En mi actual empresa mi portátil de trabajo, es un MacBook Pro de 13”, con el nuevo chip **Apple M1**. Así que planteo dos preguntas: ¿realmente se nota tanta la diferencia en mi día a día? y ¿es recomendable comprar o cambiar de equipo con el chip Apple M1?. 

A continuación os explico que cambios han habido en la arquitectura, y os digo mi experiencia después de un mes de uso.

## Cambio de arquitectura de x86 a ARM
Apple llevaba mucho tiempo utilizando la arquitectura x86, y ha dado un **giro bastante grande** hacia una arquitectura ARM. 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/no5nn8xiiav0f4xvsv5t.jpeg)

La arquitectura x86 fue acuñada gracias a la familia de procesadores de Intel, **el Intel 8086**. Utilizaron los dos últimos dígitos para llamar así a dicha arquitectura. Los beneficios de esta arquitectura es una **mayor potencia frente a un mayor coste energético**.

Mientras que la arquitectura ARM, es una tecnología que se ha usado mucho en dispositivos móviles y que siempre ha dado una **mayor eficiencia energética en contra de un menor rendimiento**.

Las diferencias principales es que las instrucciones que utilizan ambas, son **muy distintas**, y por ello un programa hecho para una arquitectura no vale para la otra. Por ejemplo en la arquitectura x86, el tamaño de las instrucciones son distintas, mientras que en ARM siempre son del mismo tamaño. Aquí sale beneficiado la arquitectura x86, ya que puede tener muchas instrucciones con un menor tamaño o hacer más cosas en una sola instrucción.

Uno de los **mayores problemas** de la arquitectura x86, es que tenemos un gran rendimiento pero, los equipos se calientan muchísimo, y Apple ha tenido muchos problemas con esto.

En resumen: la arquitectura x86 tiene mayor potencia perjudicando la eficiencia energética, mientras que ARM tiene más eficiencia energética y menor potencia.

## ¿Qué es Apple M1 y por qué hay tanto hype?
El **Apple M1**, es el primer chip que crean ellos con una arquitectura ARM. Promete ofrecer un rendimiento espectacular, duración de la batería más elevada, y que nuestro equipo se caliente mucho menos.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2idyag2b2tux1xj2cilt.jpeg)

Antiguamente Apple montaba CPUs Intel (x86), donde teníamos distintos chips que hacían distintas cosas (gráfica, RAM...). Ahora con Apple M1, montan **un sólo chip** que incluye el procesador, la memoria, seguridad y funciones de E/S. Han reducido mucho los transistores (ahora tienen 16.000 millones de transistores) y han podido meter todo esto en un sólo chip (SoC) de 5 nanómetros.

Al unificar todo en un mismo chip, incrementan la fluidez a la hora de trabajar con datos, **ganando ancho de banda**, y sin tener que copiar instrucciones o datos en otro sitio.

Tenemos una CPU de 8 núcleos (4 núcleos que hacen tareas de alto rendimiento y 4 núcleos que hacen tareas de alta eficiencia). Nos prometen mucha **más potencia** con un bajo coste de consumo energético. 

La GPU, también la tenemos integrada dentro del Apple M1. Vamos a tener un mayor rendimiento y **mayor eficiencia energética** gracias a ello. Con esto podremos hacer más con menos.

## Gran problema: las aplicaciones en x86
Antes hemos hablado que cada arquitectura ejecuta instrucciones de distinta manera (una es variable y la otra es siempre del mismo tamaño), por ello **vamos a tener problemas** a la hora de ejecutar aplicaciones que no estén preparadas para ello. Cuando pasa esto, tenemos que compilar el código a ARM a un bajo nivel, y así conseguiremos que funcione. O también tendremos que usar intérpretes que traduzcan el código a ARM.

Otra solución a este problema, es que el propio sistema operativo utilice Rosetta. Rosetta es un virtualizador que emula una aplicación desde el principio hasta el final y lo ejecuta el hypervisor del propio sistema operativo. Así podremos utilizar todo lo que esté adaptado a ARM y sólo virtualizar la parte que no esté implementada.

## MacBook Pro Intel(x86) o Apple M1(ARM)
Ya os he contado un poco por encima, los principales cambios que ha realizado Apple, y qué diferencias hay entre las distintas arquitecturas. Ahora vamos con las **diferencias** que he visto entre un MacBook Pro con arquitectura x86 y otro con arquitectura ARM.

### MacBook personal Intel(x86)
Mi portátil personal es un MacBook Pro de 15” del 2019, con un procesador Intel i7-8850H (x86), 16GB de RAM, gráfica integrada Intel UHD Graphics 830 y tiene 4 salidas salidas USB Thunderbolt 3.1.

Es un portátil con el que **estoy contento**, aunque una cosa que no me gusta nada de nada es su teclado. En mi día a día he notado que se calienta mucho si le metes muchos procesos y cuando pasa esto notamos mucho el consumo de la batería. Pero en potencia la verdad que tenemos más que de sobra para desarrollar aplicaciones. No me ha dado **ningún problema** con aplicaciones y he podido trabajar con mis 2 monitores externos 4K.

### MacBook trabajo Apple M1(ARM)
Vamos con el portátil protagonista del artículo: MacBook Pro de 13” con Apple M1 (ARM), 16 GB de RAM y tiene 2 salidas USB Thunderbolt.

La primera diferencia notoria es que se calienta mucho menos, y gracias a ello la batería lo agradece mucho, durando más. Tiene una refrigeración pasiva, con esto no tendremos el problema de tener el ruido de los ventiladores como le pasa a mi otro portátil personal. He notado algo **más de velocidad** a la hora de mover la posición de los monitores (en el personal tarda un poco) y a la hora de abrir la tapa (la imagen se pone enseguida). Sinceramente, no sé si esto es por el hardware o por software, pero no es algo que me haga decantar por un portátil u otro.

Mi primer problema que me decepcionó mucho, es que **SÓLO** puedes conectar un monitor (aunque tengas dos salidas USB Thunderbolt). Es un **problema muy grande** para un portátil que cuesta bastante dinero y que mucha gente como yo, utiliza más de un monitor externo para trabajar. Por suerte, podemos “arreglar” este problema, utilizando una base dock con DisplayLink (yo me compré este https://www.amazon.es/gp/product/B077XZ1P6G). Es una solución no oficial, no es 100% configurable como si tuviéramos otro monitor conectado de forma nativa, pero no me ha dado ningún problema desde que lo uso.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lw4lx5myolwoj2urwyve.png)

El siguiente problema son las incompatibilidades con las aplicaciones. Aún **no están todas** las aplicaciones adaptadas a ARM. He tenido problemas con dependencias como puppeteer y con otras que no recuerdo ahora mismo cuales son exactamente. No vamos a poder estar seguros de poder arrancar todo a la primera sin tener que ajustar ciertas cosas. He tenido suerte de ir saltando estos problemas sin que me bloqueen al 100%, pero te va a tocar invertir tiempo si necesitas algo para usarlo en tú día a día. Hay aplicaciones como Docker (ahora parece que empieza a haber algo) o ciertas aplicaciones que hay que esperar a que saquen versión para ARM (por ejemplo el software de mi webcam Logitech StreamCam).

Por el resto, en mi día a día no he tenido más problemas, tampoco he notado una gran mejoría en rendimiento para que sea clave y plantearme vender mi portátil para cambiar a los futuros MacBooks con mayor pantalla. Tampoco he hecho una gran prueba comparando los dos portátiles, pero yo no lo he notado. Puede que sea más rápido en ciertas tareas como la edición de vídeo, pero yo no trabajo con ello ahora mismo.

## Conclusión final
Puede ser que un MacBook Pro con Apple M1 puede ir más rápido en ciertas cosas, pero yo en mi día a día **no lo he notado mucho**.

He tenido problemas a la hora de utilizar dependencias o aplicaciones que puede ser problemático si tampoco tienes mucha experiencia con la consola o no quieres invertir tiempo en intentar buscar una solución

Creo que el cambio de Apple a una arquitectura ARM, ha sido un buen comienzo, pero yo os recomiendo **desde mi experiencia personal**: debemos de esperar un poco para adquirir un Mac con chip Apple M1 (ARM).

Aún faltan aplicaciones o dependencias y podemos tener problemas en nuestro día a día. Con un portátil con arquitectura x86 vamos a poder utilizar todo sin preocuparnos de que algo pueda fallarnos y con un rendimiento más que bueno. Si queremos tener lo último de lo último, probar sin miedo y quedarnos sin alguna aplicación, esta puede ser una opción para ti. También es verdad que el precio de un MacBook Air (ARM) y un MacBook PRO (x86), también puede ser una ventaja al ser algo más barato.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c620deii57lfkyvmaos6.gif)

Espero que os haya sido útil y que os haya despejado dudas si tenéis en mente adquirir un portátil con esta arquitectura. Cualquier duda que tengáis podéis decirla en los comentarios.