Angular 4: ¿una nueva versión de Angular?


Angular 4 no es un nuevo framework sino una evolución de Angular 2, a diferencia del cambio de AngularJS a Angular 2, en el que se pasaba de un framework a otro completamente diferente. Entonces, ¿por qué se ha cambiado el número de 2 a 4? Porque el proyecto de Angular pretende seguir una convención de versionado llamada Semver, de Semantic Version o Versionado Semántico. Semver pretende utilizar el número de versión para transmitir información útil a los desarrolladores y a las herramientas. En Semver, los números de una versión se presentan en la forma x.y.z, siendo el primer número la versión mayor, el segundo la versión menor y el tercero la versión patch y, en particular, una de las reglas de Semver indica que si se introducen cambios en una versión que rompen la compatibilidad hacia atrás se debe incrementar la versión mayor y resetear el resto a cero.

Así que contestando a “Angular 4: ¿una nueva versión de Angular?” la respuesta es “si, es una nueva versión”, que evoluciona Angular en su versión 2 pero que introduce algunos cambios no compatibles que pueden implicar tener que adaptar desarrollos existentes para ser usados con la nueva versión. Esta incompatibilidad queda reflejada con el aumento de la versión mayor.

¿Y era necesario romper la compatibilidad? Si, ha sido necesario para conseguir grandes beneficios como, por ejemplo, que las aplicaciones en Angular sean mucho más rápidas y pequeñas, con ahorros de alrededor del 60% del código generado en la mayoría de los casos (cientos de kilobytes en muchos casos).  También se ha adoptado el proyecto de Angular Universal, que permite renderizar las páginas desde el servidor, y se ha agregado compatibilidad con nuevas versiones de TypeScript. Otra novedad muy significativa es que ya se pueden generar módulos de ES2015, lo cual es especialmente interesante ahora que todos los navegadores están a las puertas de soportarlos de forma nativa (Safari ya lo soporta desde la v10.1, Edge, Firefox y Chrome lo soportan mediante cambios de configuración manual).

¿Y dónde está Angular 3? En ninguna parte, el equipo de Angular decidió saltarse esa versión para poder unificar la versión de Angular con el de uno de los componentes más importantes, el Router, que ya se encontraba en la versión 3. Así que tomando una decisión salomónica, se saltaron la versión 3, promocionando directamente a la versión 4 y poniéndose a la par con la nueva versión del Router de Angular.