В последнее время Polymer и веб-компоненты стали очень популярными темами, и поскольку эта экосистема быстро развивается, разработчикам зачастую бывает сложно быть в курсе всех последних изменений.
В своем выступлении на Chrome Dev Summit Мэтт МакНалти, технический руководитель команды Polymer, объяснил, что такое Polymer, а также обрисовал дорожную карту Polymer 1.0.
Что такое полимер?
Во-первых, что такое полимер?
Polymer — это библиотека, которая помогает вам создавать элементы и приложения из веб-компонентов. Веб-компоненты — это передовой набор новых стандартов, которые позволяют разработчикам расширять словарь HTML с помощью собственных пользовательских элементов.

Поскольку веб-компоненты разработаны как новый примитив для браузера, это означает, что они очень мощные, но в то же время очень низкоуровневые, и работа с ними требует значительного объема кода.

Polymer упрощает работу с веб-компонентами, «подслащивая» синтаксис. Он уменьшает объем шаблонного кода, который вам нужно написать, и добавляет декларативный стиль, так что создание веб-компонентов становится таким же простым, как написание HTML.
Полимерный эксперимент
Polymer начинался как эксперимент, чтобы посмотреть, сможем ли мы полизаполнить стандарты веб-компонентов и получить отзывы от разработчиков до того, как эти технологии будут внедрены во все браузеры. По мере того, как все больше разработчиков стали использовать Polymer, он превратился из простого полизаполнения в настоящую библиотеку, полную функций производительности (привязка данных, наблюдатели за изменением атрибутов, автоматический поиск узлов и т. д.). Но все эксперименты имеют результаты, так как же мы это сделали?

Хотя многие разработчики отметили, что им понравилась выразительность и рост производительности при работе с веб-компонентами в Polymer, они также выразили обеспокоенность по поводу производительности и общей сложности.
Это подчеркивает естественное напряжение, которое всегда присутствовало в Polymer: быть экспериментом, продвигающим веб-платформу вперед, но также создавать что-то пригодное для производства, на что разработчики могут положиться.
Предстоящие изменения
Команда Polymer тщательно изучила каждую функцию библиотеки с целью создания более компактной и готовой к использованию версии, в использовании которой разработчики могут быть уверены.
Слои
Polymer был рефакторингован в ряд слоев. Основные функции быстрые и простые, в то время как более продвинутые функции будут опциональными. Для большинства вариантов использования основные функции должны покрывать потребности разработчиков.

Упрощенная привязка данных
Система привязки данных Polymer также была значительно оптимизирована для производительности. Следуя многоуровневому подходу, двусторонняя привязка теперь является опциональной, а по умолчанию используются односторонние привязки. Кроме того, опубликованные типы свойств стали явными, а изменение свойства теперь запускает событие, чтобы помочь элементам из разных библиотек легче взаимодействовать.

Более компактный Shadow DOM
Полифилл Shadow DOM — это удивительный подвиг инженерной мысли. Он был разработан как всеобъемлющий и соответствующий спецификации, что важно для тщательного тестирования примитива платформы, но, к сожалению, вносит ряд узких мест в производительность для функций, которые Polymer не использует.
В следующем выпуске Polymer будет использован другой подход, использующий слой-прокладку, который заполняет только то, что нужно Polymer.

Существующий полифилл будет использоваться для общих веб-компонентов, не основанных на полимерах.
Переезд на webcomponents.org
Говоря о полифиллах, они также обретают новый дом. В настоящее время многие разработчики запутались в отношениях между Polymer и веб-компонентами. Некоторые думают, что для использования веб-компонентов нужно использовать весь Polymer, хотя на самом деле нужны только полифиллы.
Чтобы сделать это различие более четким, полифиллы перемещаются на webcomponents.org и теперь переименованы в webcomponents.js
.

Этот шаг призван помочь другим авторам библиотек использовать преимущества полизаполнений без какой-либо путаницы. Команда Polymer продолжит вносить свой вклад в полизаполнения, но есть надежда, что это изменение сделает их более общим ресурсом для сообщества.
Результаты
Каковы же результаты всех этих изменений?
Скорость
В Chrome Polymer теперь работает в 5 раз быстрее , а в Safari — в 8 раз быстрее .

Размер файла
Размер файла также был уменьшен на 87% — со 123 КБ до 15 КБ (6 КБ в сжатом виде).

Дорожная карта
В следующем выпуске будут некоторые критические изменения API, обозначенные новым номером версии (0.8), но команда хочет прояснить, что это не переписывание. Перенос вашего текущего проекта с Polymer 0.5 на 0.8 должен быть довольно тривиальным.
Команда Polymer также наметила дорожную карту, которая предоставит разработчикам больше ясности относительно предстоящих релизов.

Предварительный просмотр 0.8 уже доступен в виде ветки на GitHub (хотя он все еще очень активно разрабатывается и не имеет документации). Официальная бета-версия 0.9 запланирована на первый квартал 2015 года, а 1.0 выйдет где-то во втором квартале.
Эксперимент окончен
Со всеми недавними изменениями в Polymer, команда, стоящая за ним, закладывает основу для того, чтобы веб-компоненты стали неотъемлемой частью стека каждого разработчика. Если вы новичок в веб-компонентах, сейчас самое время взглянуть и познакомиться с этими преобразующими технологиями. Если вы уже работаете с компонентами (и Polymer), будущее действительно выглядит светлым. Следите за блогом Polymer, чтобы быть в курсе всех последних обновлений, и подпишитесь на рассылку Polymer для вопросов или комментариев. Удачного взлома!