Y, finalmente, salió Angular 9

¿Qué tal funciona Angular con Ivy?

Ignacio Buioli
- 02/10/2020 - 2 min. de lectura

Seré sincero, Angular últimamente parece estar programado sin brújula (ya ampliaré sobre esto). Pero no lo digo como algo malo del todo, porque al final del día el framework está cada vez mejor. Imagino que estarán al tanto del atraso en la salida de Angular 9, producto del incontrolable motor Ivy. El mismo ya se había pospuesto a salir en Angular 7 y 8 por una razón, pero Angular 9 debía ser la versión de salida oficial del mencionado motor de render. Aunque claro, los planes no siempre resultan y menos con algo tan indomable como Ivy. Angular 9 se atrasó, iba a salir en Octubre/Noviembre y acabó de salir en Febrero. Pero es preferible eso a un motor incompleto, así es el desarrollo, no siempre está sujeto a organigramas ni macanudos.

Rendimiento con Ivy

Lo diré sin vueltas: Ivy es una especie de "revolución coopernicana" a la escala de Angular. Ya saben que cuando se merece una crítica, de mi parte Angular la tiene, pero en esta oportunidad el motor se comporta como la seda. Funciona realmente bien, y el peso de los bundles es el prometido.

Actualizar a Angular 9

Esto que siempre es un problema en esta versión me resultó demasiado fácil, considerando que dedicaron tiempo principalmente en el motor Ivy. Con el comando ng update que tenemos a disposición desde Angular 6 la actualización es 100% automática desde Angular 8 a Angular 9. Así como lo leen, no hace falta estabilizar la versión de TypeScript ni la de RxJS, no hay falta revisar las librerías de Angular ni ninguna cosa rara en el código. Por ejemplo, en esta versión volvieron a cambiar los ViewChild, ¿qué le pasa a Angular con los ViewChild? En Angular 2 funcionaban perfecto, pero en Angular 8 pasaron a agregar un parámetro para determinar si el Child era estático o no. Ahora, en Angular 9, volvimos al sistema de ViewChild original. En fin, por eso hablo de la ausencia de una "brújula", porque de una versión a otra retrotraen cambios que en un principio tampoco se entendían. Como lo del ViewChild debe haber más cambios, pero en Angular 9 se han pasado: Al hacer ng update el propio sistema de Angular corrije todos los problemas de compatibilidad. Doy fe de que, al menos con los ViewChild, esto funciona de mil maravillas. En mi caso, actualicé nuestra app Codize de Angular 8 a Angular 9, y pese a los warnings (que eran de otras librerías, como Capacitor) cuando hice un ng serve se ejecutó sin ningún problema. Lo único, que no les extrañe que en el primer serve migre de es2015 a esm2015 todos los paquetes de Angular, algo asi se verá en la terminal:

Compiling @angular/core : es2015 as esm2015

Si tienen instalados paquetes de Material, dependiendo la cantidad, demorará un poco.

¿Actualizar ahora o esperar?

Por lo que veo la actualización no trae grandes problemas, pese a que hay dependencias que necesitan algunas versiones anteriores del devkit o de typescript, en definitiva los proyectos en angular siguen compilando. En mi opinión lo mejor es emprender la tarea de actualizar todos los proyectos activos que se tengan, empezando por los que funcionan en la web que en este caso tendrían prioridad.

Acerca de:

Ignacio Buioli

Degree on Multimedia Arts. He has developed numerous Multimedia projects as well as written articles and translated texts of the mentioned subject. In Moldeo Interactive, He is a Partner and Programmer; also taking care of a large part of the online networks and courses.