Novedades en Angular 2

5min

Angular, el popular framework Javascript, se escribe desde cero, y presenta numerosas mejoras respecto a su versión inicial. Angular 2 es la nueva versión del framework que conocíamos con el nombre de AngularJS, del que ya hablamos en el artículo ¿Por qué AngularJS?. Aunque sea una nueva versión, esto no nos debe llevar a engaño: más bien deberíamos pensar que es un framework distinto. Cuatro años después de su nacimiento,  ha cambiado hasta en el nombre y ahora se  denomina Angular 2, sin  las siglas JS.

En este artículo, analizamos algunas de las novedades que se presentan con la llegada de Angular 2, sobre todo aquellas que han obligado a sus creadores a partir desde cero y han roto la compatibilidad hacia atrás.

Es un framework distinto, dado que se ha reescrito y el modo de desarrollo cambia bastante, aunque también es cierto que reutiliza varias de las mecánicas a las que ya estábamos acostumbrados. Quizás si comienzas ahora el estudio de Angular 2, sin haber pasado por las versiones 1.x, esto te resulte indiferente, pero los que conocían la primera versión de Angular comprobarán que casi es como si empezasen desde cero.

Índice

Desarrollo basado en componentes

Esta tendencia la estamos viendo en cantidad de productos de éxito y ha tenido una positiva acogida por parte de la comunidad, ya que nos permite descomponer los problemas de las aplicaciones de manera más granular y aislar la responsabilidad del código de cada pieza de una aplicación.

Los componentes llegaron a Angular en las versiones 1.5, pero la novedad ahora es que su uso es absolutamente obligatorio.

  • Lazy Load. Una de las demandas más solicitadas por la comunidad con respecto a Angular es la posibilidad de retrasar la carga de ciertas partes de la aplicación, hasta que realmente sea necesario usarlas. Debido a la arquitectura del inyector de dependencias de Angular, una de sus principales piezas ya en versiones 1.x, era muy difícil implementar la carga perezosa. Ahora se ha rediseñado el inyector de dependencias para que Lazy Load sea una posibilidad sencilla de implementar.
  • Sistema de binding. Si Angular 1 fue del agrado de miles de desarrolladores, uno de los motivos principales fue el sistema de doble bindig. Es una utilidad que nos ahorra muchas líneas de código, pero también uno de los factores que provocaba la disminución del rendimiento de aplicaciones complejas con Angular 1.x. La novedad principal en el modelo de binding de Angular 2 es que el desarrollador es capaz de decidir cómo debe implementarse el flujo de los datos bindeados, en un sentido, en dos, etc. Esa mejora pone en manos del desarrollador una gran herramienta para optimización de las aplicaciones, que pueden llegar a ser hasta 5 veces más rápidas.
  • Aplicaciones universales. Angular está pensado ahora para el desarrollo de aplicaciones de todo tipo. Una de sus principales novedades es que el mismo framework nos permitirá el renderizado del HTML del lado del servidor, lo que nos ofrece la posibilidad de creación de aplicaciones isomórficas. Ahora les gusta denominarse con el término de «plataforma» en vez de «framework», ya que podría usarse para desarrollar no solo aplicaciones web, sino también para dispositivos, programas de propósito general, etc.
  • TypeScript. La comentamos por último, pero no por ello tiene menos importancia, y es que Angular 2 hace uso de TypeScript como lenguaje. Para quien no esté al tanto, TypeScript es un superset de Javascript, un lenguaje que agrega nuevas posibilidades a Javascript, pero que una vez compilado, el código que se produce como resultado es Javascript estándar. Angular 2 está escrito en TypeScript y aunque no nos obligan a usar este lenguaje para desarrollar nuestras aplicaciones, sí es una recomendación. Con ello se consiguen grandes beneficios, como la posibilidad de que el compilador de TypeScript nos ayude en tiempo de desarrollo, alertando de problemas en el código cuando estamos escribiéndolo, o que nos sugiera posibilidades de completado mucho más extensas y relevantes. También nos permite trabajar con clases y objetos reales, lo que nos permite aplicar fácilmente patrones de diseño ampliamente usados en el desarrollo con lenguajes más robustos y podemos hacer refactoring ayudados por el propio editor. En la práctica, con TypeScript, la experiencia de desarrollo frontend es mucho más parecida a la que se da en el desarrollo backend. Todo gracias a un fuerte sistema de tipos y diversas herramientas como los generics, interfaces, clases abstractas, etc.

En resumen, Angular 2 es una excelente herramienta que, a pesar de resultar más compleja que su versión predecesora, sí nos transporta a un nuevo nivel en el desarrollo frontend. Nos ofrece un marco de trabajo pensado para dar respuesta a todas las necesidades de los desarrolladores y una arquitectura capaz de afrontar los requisitos del futuro.

Fernán García de Zúñiga

Productos relacionados: