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

Polymer e Web Components são temas de destaque ultimamente e, como esse ecossistema está evoluindo rapidamente, pode ser difícil para os desenvolvedores acompanharem as mudanças mais recentes.

Em sua palestra na Chrome Dev Summit, Matt McNulty, gerente de engenharia da equipe do Polymer, explicou o que é o Polymer e também definiu os planos para o Polymer 1.0.

O que é o Polymer?

Primeiro, o que é o Polymer?

A Polymer é uma biblioteca que ajuda a criar elementos e apps a partir de componentes da Web. Web Components é um conjunto de vanguarda de novos padrões que permitem aos desenvolvedores ampliar o vocabulário HTML com seus próprios elementos personalizados.

A Polymer ajuda desenvolvedores a criar aplicativos com mais rapidez

Como os Web Components foram projetados para ser um novo primitivo para o navegador, isso significa que eles são muito poderosos, mas também de nível muito baixo, e trabalhar com eles exige uma boa quantidade de código.

O Polymer torna os componentes da Web mais doces

O Polymer facilita o trabalho com componentes da Web porque "aprimora" a sintaxe. Ele reduz a quantidade de código boilerplate que você precisa escrever, e acrescenta um estilo declarativo, para que a criação de Web Components é tão fácil quanto escrever HTML.

Experimento do Polymer

A Polymer começou como um experimento para ver se poderíamos colocar polyfill nos padrões dos componentes da Web e receber feedback dos desenvolvedores antes que essas tecnologias fossem disponibilizadas em todos os navegadores. Conforme mais desenvolvedores começaram a usar o Polymer, ele deixou de ser apenas polyfills para uma biblioteca real cheia de recursos de produtividade (vinculação de dados, observadores de alteração de atributo, descoberta automática de nós etc). Mas todos os experimentos têm resultados. Como nos saímos?

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

Muitos desenvolvedores disseram gostar da expressividade e dos ganhos de produtividade de trabalhar com o Web Components no Polymer, mas também demonstraram preocupações com o desempenho e a complexidade geral.

Ele destaca uma tensão natural que a Polymer sempre teve: ser um experimento para levar a plataforma da Web adiante, mas também criar algo com qualidade de produção e que os desenvolvedores possam confiar.

Próximas mudanças

A equipe do Polymer analisou com cuidado todos os recursos da biblioteca com o objetivo de criar uma versão mais enxuta e pronta para produção na qual os desenvolvedores possam se sentir seguros.

Camadas

O polymer foi refatorado em uma série de camadas. Os recursos principais são rápidos e enxutos, enquanto os recursos mais avançados precisam ser ativados. Na maioria dos casos de uso, os recursos principais precisam atender às necessidades dos desenvolvedores.

O polímero foi refatorado em camadas

Vinculação de dados simplificada

O sistema de vinculação de dados da Polymer também foi significativamente otimizado para desempenho. Seguindo a abordagem em camadas, a vinculação bidirecional agora é opcional, sendo o padrão as vinculações unidirecionais. Além disso, os tipos de propriedade publicados foram explícitos, e uma alteração de propriedade agora dispara um evento para ajudar elementos de diferentes bibliotecas a se comunicarem com mais facilidade.

A vinculação de dados foi simplificada

DOM de sombra mais inclinado

O polyfill do Shadow DOM é um feito incrível da engenharia. Ele foi projetado para ser abrangente e compatível com as especificações, o que é importante para testar completamente o primitivo da plataforma, mas, infelizmente, introduz vários gargalos de desempenho para recursos que o Polymer não usa.

A próxima versão do Polymer terá uma abordagem diferente, empregando uma camada no estilo paliativo que preenche apenas o que é necessário.

O shim shadowdom é muito mais rápido.

O polyfill atual será usado para componentes da Web genéricos e que não são da plataforma.

Movendo para webcomponents.org

Por falar em polyfills, eles também estão ganhando um novo lar. No momento, muitos desenvolvedores estão confusos sobre a relação entre o Polymer e o Web Components. Alguns pensam que é preciso usar todo o Polymer para usar Web Components quando, na verdade, você só precisa dos polyfills.

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

Migração dos polyfills para webcomponents.org

O objetivo dessa mudança é ajudar outros autores de bibliotecas a aproveitar os polyfills sem causar confusão. A equipe da plataforma vai continuar contribuindo com os polyfills, mas esperamos que essa mudança os transforme em um recurso mais compartilhado para a comunidade.

Resultados

Então, quais são os resultados de todas essas mudanças?

Velocidade

No Chrome, o Polymer agora está 5x mais rápido e no Safari houve uma velocidade de 8x.

A Polymer agora está 8x mais rápida 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 alterações interruptivas da API na próxima versão, indicadas pelo novo número de versão (0.8), mas a equipe quer deixar claro que isso não é uma reescrita. Mover seu projeto atual do Polymer 0.5 para 0.8 deve ser bastante simples.

A equipe da Polymer também definiu um roteiro para dar aos desenvolvedores mais clareza sobre os próximos lançamentos.

Roteiro da plataforma Polymer, versão Beta no 1o trimestre, 1.0 no T2

A versão de pré-lançamento 0.8 já está disponível como uma ramificação no GitHub, mas ainda está em desenvolvimento e não tem documentação. A versão Beta oficial 0.9 está prevista para o primeiro trimestre de 2015. A versão 1.0 será lançada no segundo trimestre.

O experimento acabou

Com todas as mudanças recentes no Polymer, a equipe responsável está abrindo as bases para que o Web Components se torne parte integrante da pilha de todos os desenvolvedores. Se você ainda não conhece o Web Components, este é um ótimo momento para conhecer e se familiarizar com essas tecnologias transformadoras. Se você já trabalha com componentes (e com o Polymer), o futuro parece brilhante. Fique de olho no blog da plataforma para ficar por dentro das atualizações mais recentes. Se tiver dúvidas ou comentários, inscreva-se na lista de e-mails da plataforma. Divirta-se!