¡Llegó Polymer V3!

Israel Blancas Aug 28, 2017

La semana pasada se celebró el Polymer Summit 2017 en Copenhague. Entre otras cosas, se ha presentado la versión preview de Polymer 3 (que está disponible en su repositorio de GitHub, en la rama 3.0-preview). Se han presentado muchas novedades y voy a intentar resumir aquí las que, al menos para mí, son más importantes.

Para los que no conozcáis Polymer (mal hecho), os comento que es una biblioteca para crear tus propias etiquetas HTML, las cuales pueden tener una vista y/o un comportamiento. Esto se encuentra dentro de la “programación modular” (que ha tomado mucha fuerza en los últimos años en el front-end) y nos permite desarrollar aplicaciones mantenibles, con una mayor facilidad de testeo y de una forma más rápida. A esto se suma la posibilidad de aprovechar mejor las capacidades del navegador (pudiendo acceder de forma más sencilla a las APIs nativas, por ejemplo). ¿Cual es la gracia frente a frameworks como Angular? Con Polymer buscamos crear WebComponents, que puedan ser reutilizados después desde esos frameworks.

WebComponents es un estándar (aunque aún se está trabajando en ello). Se basa en las siguientes tecnologías:

  • Templates: la vista del elemento (otros componentes y etiquetas HTML).
  • Shadow DOM: el DOM del componente es local al objeto, de forma que hay encapsulación.
  • Custom Elements: elementos HTML personalizados, es decir, la posibilidad de crear tus propias etiquetas.
  • HTML Imports: posibilidad de importar otros componentes.

Mientras la mayor parte de estas funcionalidades ya se encuentran incorporadas en los principales navegadores web, otras tantas no (aunque poco a poco, los desarrolladores de los frameworks de front-end y navegadores se están poniendo de acuerdo).

De este Polymer Summit ha destacado la eliminación de los HTMLImports en Polymer. Hace tiempo que se sabía que iban a ser descartados y ya ha llegado el momento. En Polymer 3, pasamos de los HTMLImports a los ES Modules, como ya venían haciendo otros frameworks. Y Chrome implementará, de forma nativa, la posibilidad de utilizar ES Modules a partir de su versión de septiembre (mientras los demás navegadores trabajan en ello).

Otra noticia, también esperada, era la utilización de NPM o yarn en lugar de bower. La utilización de cualquiera de estas herramientas es otro paso más hacia la utilización de una misma herramienta para la gestión de las distintas bibliotecas Javascript.

Y, aunque todo esto rompa con las versiones anteriores, es otro esfuerzo para conseguir un estándar y acabar con la problemática del front-end: aparece un nuevo framework (serio) cada 3 meses y la interoperabilidad no es posible.

Israel Blancas

Google Developer Group Granada Lead Organizer