Chrome Dev Summit 2014 – Полимер – Состояние союза

В последнее время Polymer и веб-компоненты стали очень популярными темами, и поскольку эта экосистема быстро развивается, разработчикам зачастую бывает сложно быть в курсе всех последних изменений.

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

Что такое полимер?

Во-первых, что такое полимер?

Polymer — это библиотека, которая помогает вам создавать элементы и приложения из веб-компонентов. Веб-компоненты — это передовой набор новых стандартов, которые позволяют разработчикам расширять словарь HTML с помощью собственных пользовательских элементов.

Polymer помогает разработчикам быстрее создавать приложения

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

Полимер делает веб-компоненты слаще

Polymer упрощает работу с веб-компонентами, «подслащивая» синтаксис. Он уменьшает объем шаблонного кода, который вам нужно написать, и добавляет декларативный стиль, так что создание веб-компонентов становится таким же простым, как написание HTML.

Полимерный эксперимент

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

Табель успеваемости по полимерам нуждается в улучшении

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

Это подчеркивает естественное напряжение, которое всегда присутствовало в Polymer: быть экспериментом, продвигающим веб-платформу вперед, но также создавать что-то пригодное для производства, на что разработчики могут положиться.

Предстоящие изменения

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

Слои

Polymer был рефакторингован в ряд слоев. Основные функции быстрые и простые, в то время как более продвинутые функции будут опциональными. Для большинства вариантов использования основные функции должны покрывать потребности разработчиков.

Полимер был реорганизован в слои

Упрощенная привязка данных

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

Привязка данных была упрощена

Более компактный Shadow DOM

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

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

Shim shadowdom намного быстрее

Существующий полифилл будет использоваться для общих веб-компонентов, не основанных на полимерах.

Переезд на webcomponents.org

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

Чтобы сделать это различие более четким, полифиллы перемещаются на webcomponents.org и теперь переименованы в webcomponents.js .

Полифиллы перемещаются на webcomponents.org

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

Результаты

Каковы же результаты всех этих изменений?

Скорость

В Chrome Polymer теперь работает в 5 раз быстрее , а в Safari — в 8 раз быстрее .

Polymer теперь в 8 раз быстрее в Safari

Размер файла

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

Полимер теперь на 87% меньше

Дорожная карта

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

Команда Polymer также наметила дорожную карту, которая предоставит разработчикам больше ясности относительно предстоящих релизов.

Полимерная дорожная карта, бета в q1, 1.0 во q2

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

Эксперимент окончен

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