Polymer 2 e o futuro onde os Web Components dominam a terra.

Web Components and Polymer logos

Primeiramente, o que é Polymer mesmo?

Vamos começar falando sobre o que ele não é. Definitivamente não é mais framework de javascript, muito menos um Polyfill para Web Components.

O super maravilhoso Polymer é uma biblioteca que tem o objetivo de tornar a experiência de trabalhar com Web Components mais amigável e produtiva através de abstrações simples.

Se você vive em um universo paralelo ou está a pouco tempo na área e não conhece o termo Web components, da uma olhada no webcomponents.org para entender melhor.

Polymer e suas abstrações, ou não.

Até a versão 1.5.x, nosso amigo Polymer oferecia uma abstração mais pesada para implementar as especificações de Shadow DOM v0 (oferecendo sua própria opção com o shady dom) e custom properties v0.

Porém, ele não abstrai nada em relação a template e imports, isso porque elas já tem uma API muito simples e basicamente não precisam de nada além delas mesmas para brilhar.

Se você acha imports uma ideia ruim por fazer muitos requests, dá uma olhada em HTTP/2 e sinta o fenômeno conhecido na medicina moderna como Mind Blow.
Polymer não tem o objetivo de interferir no suporte das especificações que compõem os Web Components, para isso temos o webcomponents.js.

Por que o segundo e definitivo hype de Web Components está se aproximando?

As APIs complicadas de Shadow DOM v0 e Custom Elements v0 nunca fizeram muito sucesso entre os browsers (além do chrome), daí a sensação de “Web Components não tem um bom suporte” afastou os desenvolvedores da tecnologia nos últimos anos. BUT, esse cenário mudou com a chegada das especificações novas de Shadow DOM V1 e Custom Elements V1.

Sim meus amigos, finalmente temos as partes que não deram certo dos Web Components reescritas e atualizadas (com es6 por exemplo) prontas para serem implementadas em todos os browsers (inclusive Safari / IOS Safari).

Como diria Bam Bam:

O monstro tá saindo da jaula!

E o Polymer com isso?

Voltando a falar de Polymer, adivinha? Na versão 2.0, seguindo seus princípios de usar a plataforma nativa acima de tudo, ele diminui de tamanho (de 53kb para 10kb) e delegou mais poderes para as APIs nativas.

Além de adotar as novas specs V1 ele veio com a proposta de acelerar sua produtividade abstraindo as partes mais trabalhosas das APIs (Sempre rodando tudo nativo por trás claro), porém deixando as partes boas como class e extends intactas.

Angular Flashback

Se você acha que migrar da versão 1.x para 2.0 vai ser trabalhoso se ferrou. Além de ser muito simples fazer a migração, o Polymer 2 possui um modo híbrido que permite utilizar componentes das duas versões juntos e ir migrando aos poucos sem quebrar nada.

Resumo da ópera

Você aceitando ou não, acreditando ou não, o futuro onde a plataforma é uma opção poderosa para a criação de componentes vai chegar. Não estou dizendo que bibliotecas de componentes como React vão morrer, longe disso, apenas fique atento e não deixe que Buzz Words e modinhas te ceguem e façam você passar batido pela revolução da plataforma.

Quer saber mais sobre o universo Polymer e Web Components?

Para ficar por dentro do que está rolando e ter acesso a várias dicas descoladas, basta conferir os links:

Até a próxima ❤