¿Qué es Polymer?

Primero que nada, es importante dejar en claro que Polymer no es un Framework como muchos creen. Polymer es una librería de Web Components que está diseñada para hacer más fácil y más rápido a los desarrolladores el crear grandes componentes reutilizables para la web moderna.

Si no has usado Polymer anteriormente, puedes verlo de la siguiente manera:

"Polymer es la nueva revolución de HTML como lo conocemos hasta ahora, mejor conocida como Web Components que marcarán el comienzo de una nueva era en el desarrollo web basado en elementos personalizados, encapsulados e interoperables que extienden HTML en sí mismo. Así que, basándonos en estas nuevas normas, Polymer hace que sea más fácil y más rápido crear cualquier cosa, desde un botón, hasta una aplicación completa a través de desktop y mobile."

Custom elements extienden la web

HTML proporciona un conjunto de elementos integrados como <button> , <form> y <table> . Cada elemento tiene su propia API de atributos, propiedades, métodos y eventos. Cada elemento se ha incorporado en el estilo, así como tú puedes reescribir las propiedades de estilo usando CSS, cualquier persona puede utilizar estos elementos para crear una página web sencilla. Pero estos elementos están limitados. Para construir algo tan simple como un conjunto de fichas, necesita más HTML, CSS y por lo general javascript también.

Con elementos personalizados, se puede ampliar el vocabulario de HTML con sus propios elementos. Elementos que proporcionan la interfaz de usuario sofisticada. Elementos que son tan fáciles de usar como <select> :

Un ejemplo fácil de usar, es al momento de crear un mapa con Google Maps, generalmente tendríamos que hacer algo similar a esto:

Pero con un Custom Element (Elemento Personalizado) sería tan simple como utilizar esta etiqueta:

Polymer no es un Web Component ni tampoco es un Element. Polymer es una librería y está construida por encima de las normas de los Web Components, y ayuda a que tú puedas construir tus propios Custom Elements.

Estas normas proporcionan las primitivas (puedes entender esto como reglas) que necesitas para construir nuevos componentes. Tú puedes crear tus propios elementos personalizados utilizando estas primitivas, pero eso puede ser muy tedioso.

Además, no todos los navegadores soportan estas normas, así que la librería de polyfill de los Web Components cubre esos vacíos, implementando las APIs de Javascript.

Conclusión:

La librería de Polymer, proporciona una sintaxis declarativa que hace que sea más sencillo definir Custom Element, y además añade características como templating (plantillas), two-way data binding (enlace de datos de dos vías) y las observaciones apropiadas para ayudarte a construir poderosos elementos reutilizables con menos código.