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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Слои

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

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

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

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

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

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

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

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

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

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

Переходим на сайт webcomComponents.org.

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

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

Полифилы переезжают на webcomComponents.org

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

Полученные результаты

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

Скорость

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

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

Размер файла

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

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

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

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

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

Дорожная карта полимеров: бета-версия в первом квартале, 1.0 во втором квартале

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

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

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