¿Cuál es el Hardware mínimo para programar en Angular?
Mucha gente comienza a programar en Angular debido a su gran mercado y potencia, al ser, junto con React, uno de los frameworks de JavaScript con mejor comunidad. Sin embargo, estos frameworks rescatan el antigüo concepto de "compilar", algo que pensábamos no iba a volver nunca y, por suerte, hoy gozamos de sus ventajas y no entendemos porque se mantuvo tanto tiempo la idea de "scripting". Discusiones a parte, compilar requiere potencia de hardware, y muchos nuevos desarrolladores en Angular menosprecian el hecho de que por ser JavaScript el compilado será ligero. Y la verdad es que un motor de render como Ivy, y una plataforma como el hot-reloading de Angular requieren del otro lado un equipo mínimamente descente.
Me puse en la tarea de investigar, a lo mejor recuerdan que hablé sobre programación en Angular con una RasPi, y que pasé cerca de un año durante medio día programando en RasPi 3 y 4. Pero en lo concreto, ¿qué equipo mínimo se necesita para programar sobre Angular cómodamente? Porque lo cierto es que Angular va a funcionar en cualquier equipo, el tema son los tiempos humanos del hot-reloading.
Probé con el equipo más viejo pero funcional que tengo: una Dell Inspiron 1520. Es un equipo que ya sobrepasa, y cómodamente, los diez años (de hecho son bastante más de 10). Este en concreto tiene 2 Gb de Ram, que con un Linux Mint actualizado ya consume la mitad, dejando tan solo 1 Gb de Ram para Angular, un editor y una pestaña de un navegador. Lamentablemente no alcanza. Si se desea aprovechar al máximo las funciones de hot-reloading de Angular, entonces por cada actualización deberemos esperar bastante, con riesgos a tener que reiniciar el navegador por falta de memoria. Una opción, como siempre, es usar un editor como el Vim o el Nano, en lugar del Atom o el VSCode; pero en ese caso perdemos un monton de funciones para aligerar el proceso de desarrollo. En este sentido ocurre algo parecido a cuando hicimos las pruebas con RasPi 3, que tiene tan solo 1 Gb, aunque gana en tener un procesador mucho más nuevo y un OS pensado para ese tipo de procesadores. En cualquier caso, la única opción viable para ambos equipos es utilizando un editor como el Nano o el Vim (nada de editores completos pero pesados), y tener solo la ventana del navegador abierta con el localhost de Angular (en lo posible sobre Firefox). Los tiempos de hot-reloading serán lentos, por lo tanto no es un equipo hecho para el trabajo diario sino más bien para algo excepcional.
Otro equipo con el que me interesó probarlo fue una laptop del año 2010, con 3Gb de Ram y Windows 7 (el cual ya no posee soporte extendido). Me sorprendí gratamente, porque a pesar de no ser lo ideal (manejar Node y NPM en Windows no es tan cómodo como en Linux) se comportó bastante bien. Usando el VSCode, el hot-reloading era lento pero tolerable, y estamos hablando de Windows, seguramente el rendimiento mejora con Linux.
Tomando esto como base, yo concluyo que el hardware mínimo es algo alrededor de una RasPi 3 de 1Gb, pero para estar tranquilos y que el hot-reloading se haga en un tiempo normal, tendería más a algo así como una RasPi 4 de 2Gb (uso RasPi como "metro patrón" ya que es facil transladar las características de una RasPi a una computadora o un server).
Acerca de:
Ignacio Buioli
Licenciado en Artes Multimediales. Ha desarrollado numerosos proyectos de Multimedia así como también escrito artículos y traducido textos del mencionado tema. En Moldeo Interactive es Socio y Programador; encargándose, además, de gran parte de las redes y los cursos online.