Conferência de Desenvolvedores do Chrome 2014 - Polymer - State of the Union

Ultimamente, os componentes da Web e do Polymer são temas muito populares. Como esse ecossistema está evoluindo rapidamente, pode ser difícil para os desenvolvedores acompanhar todas as mudanças mais recentes.

Em sua palestra no Chrome Dev Summit, Matt McNulty, gerente de engenharia da equipe Polymer, explicou o que é o Polymer e também descreveu o cronograma para o Polymer 1.0.

O que é o Polymer?

Primeiro, o que é o Polymer?

O Polymer é uma biblioteca que ajuda a criar elementos e apps com componentes da Web. Os componentes da Web são um conjunto de novos padrões de ponta que permitem que os desenvolvedores ampliem o vocabulário HTML com elementos personalizados.

O Polymer ajuda os desenvolvedores a criar aplicativos com mais rapidez

Como os componentes da Web foram projetados para serem uma nova primitiva do navegador, eles são muito poderosos, mas também de nível muito baixo, e trabalhar com eles requer um pouco de código.

O Polymer facilita o uso dos Componentes da Web

O Polymer facilita o trabalho com componentes da Web simplificando a sintaxe. Ele reduz a quantidade de código boilerplate que você precisa escrever e adiciona um estilo declarativo para que a criação de componentes da Web seja tão fácil quanto escrever HTML.

O experimento do Polymer

O Polymer começou como um experimento para saber se poderíamos usar polyfill nos padrões de componentes da Web e receber feedback dos desenvolvedores antes que essas tecnologias fossem enviadas para todos os navegadores. À medida que mais desenvolvedores começaram a usar o Polymer, ele deixou de ser apenas polyfills e se tornou uma biblioteca com recursos de produtividade, como vinculação de dados, observadores de mudanças de atributos, localização automática de nós etc. Mas todos os experimentos têm resultados. Então, como foi?

O cartão de relatório do Polymer precisa de melhorias

Embora muitos desenvolvedores tenham dito que gostaram da expressividade e dos ganhos de produtividade ao trabalhar com os Web Components no Polymer, eles também expressaram preocupações com a performance e a complexidade geral.

Isso destaca uma tensão natural que o Polymer sempre teve: ser um experimento para impulsionar a plataforma da Web, mas também criar algo digno de produção em que os desenvolvedores possam confiar.

Próximas mudanças

A equipe do Polymer analisou cada recurso da biblioteca com o objetivo de criar uma versão mais simples e pronta para produção que os desenvolvedores possam usar com confiança.

Camadas

O Polymer foi refatorado em uma série de camadas. Os recursos principais são rápidos e simples, enquanto os mais avançados são opcionais. Para a maioria dos casos de uso, os recursos principais devem atender às necessidades dos desenvolvedores.

O Polymer foi reestruturado em camadas

Vinculação de dados simplificada

O sistema de vinculação de dados do Polymer também foi otimizado significativamente para melhorar o desempenho. Seguindo a abordagem em camadas, a vinculação bidirecional agora é opcional, e a vinculação unidirecional é o padrão. Além disso, os tipos de propriedade publicados foram explicitados, e uma mudança de propriedade agora aciona um evento para ajudar os elementos de diferentes bibliotecas a se comunicar com mais facilidade.

A vinculação de dados foi simplificada

DOM de sombra mais enxuto

O polyfill do shadow DOM é uma façanha incrível de engenharia. Ele foi projetado para ser abrangente e compatível com as especificações, o que é importante para testar completamente a primitiva da plataforma. No entanto, ele introduz vários gargalos de desempenho para recursos que o Polymer não está usando.

A próxima versão do Polymer vai adotar uma abordagem diferente, empregando uma camada do tipo shim que só polipolyfilla o que o Polymer precisa.

O shim shadowdom é muito mais rápido

O polyfill atual vai continuar sendo usado para componentes da Web genéricos que não são do Polymer.

Mudança para webcomponents.org

Falando em polyfills, eles também vão mudar de lugar. Atualmente, muitos desenvolvedores estão confusos sobre a relação entre Polymer e Web Components. Algumas pessoas pensam que é preciso usar todo o Polymer para usar os componentes da Web, mas na verdade você só precisa dos polyfills.

Para deixar essa distinção mais clara, os polyfills estão sendo movidos para o webcomponents.org e foram renomeados para webcomponents.js.

Os polyfills estão sendo movidos para webcomponents.org

Essa mudança foi projetada para ajudar outros autores de bibliotecas a aproveitar os polyfills sem confusão. A equipe do Polymer vai continuar contribuindo com os polyfills, mas a esperança é que essa mudança os torne um recurso compartilhado para a comunidade.

Resultados

Quais são os resultados de todas essas mudanças?

Velocidade

No Chrome, o Polymer agora é cinco vezes mais rápido, e no Safari, oito vezes mais rápido.

O Polymer agora é 8 vezes mais rápido no Safari

Tamanho do arquivo

O tamanho do arquivo também foi reduzido em 87%, de 123 KB para 15 KB (6 KB compactados com Gzip).

O Polymer agora é 87% menor

Roteiro

Haverá algumas mudanças importantes na API na próxima versão, indicadas pelo novo número da versão (0.8), mas a equipe quer deixar claro que isso não é uma reescrita. A migração do seu projeto atual do Polymer 0.5 para o 0.8 é bastante simples.

A equipe do Polymer também descreveu um cronograma para dar mais clareza aos desenvolvedores sobre as próximas versões.

Roteiro do Polymer, Beta no 1º trimestre, 1.0 no 2º trimestre

A prévia 0.8 está disponível agora como uma ramificação no GitHub, mas ainda está em desenvolvimento ativo e não tem documentação. A versão Beta oficial 0.9 está prevista para o primeiro trimestre de 2015, e a 1.0 para o segundo trimestre.

O experimento acabou

Com todas as mudanças recentes no Polymer, a equipe responsável está preparando o terreno para que os Web Components se tornem parte integrante da pilha de todos os desenvolvedores. Se você não conhece os Componentes da Web, agora é uma ótima hora para conhecer e se familiarizar com essas tecnologias transformadoras. Se você já trabalha com componentes (e Polymer), o futuro é promissor. Fique de olho no blog do Polymer para conferir as atualizações mais recentes e inscreva-se na lista de e-mails do Polymer para fazer perguntas ou comentários. Bom trabalho!