Полимеры и веб-компоненты в последнее время являются очень горячими темами, и поскольку эта экосистема быстро развивается, разработчикам часто бывает трудно быть в курсе всех последних изменений.
В своем выступлении на Chrome Dev Summit Мэтт МакНалти, технический менеджер команды Polymer, объяснил, что такое Polymer, а также изложил дорожную карту для Polymer 1.0.
Что такое полимер?
Во-первых, что такое полимер?
Polymer — это библиотека, которая помогает создавать элементы и приложения из веб-компонентов. Веб-компоненты — это передовой набор новых стандартов, которые позволяют разработчикам расширять словарь HTML своими собственными элементами.
Поскольку веб-компоненты задуманы как новый примитив для браузера, это означает, что они очень мощные, но при этом очень низкоуровневые, и для работы с ними требуется немало кода.
Polymer упрощает работу с веб-компонентами, «подслащивая» синтаксис. Это уменьшает количество шаблонного кода, который вам нужно написать, и добавляет декларативный стиль, поэтому создавать веб-компоненты так же просто, как писать HTML.
Полимерный эксперимент
Polymer начинался как эксперимент, чтобы посмотреть, сможем ли мы заполнить стандарты веб-компонентов и получить отзывы от разработчиков до того, как эти технологии будут внедрены во все браузеры. По мере того, как все больше разработчиков начали использовать Polymer, он превратился из просто полифилов в настоящую библиотеку, полную функций повышения производительности (привязка данных, средства наблюдения за изменением атрибутов, автоматический поиск узлов и т. д.). Но у всех экспериментов есть результаты, так как же мы это сделали?
Хотя многие разработчики заявили, что им понравилась выразительность и повышение производительности работы с веб-компонентами в Polymer, они также выразили обеспокоенность по поводу производительности и общей сложности.
Это подчеркивает естественное напряжение, которое существовало в Polymer все время: быть экспериментом, чтобы продвинуть веб-платформу вперед, но также создать что-то достойное производства, на что разработчики могут положиться.
Предстоящие изменения
Команда Polymer тщательно изучила каждую функцию библиотеки с целью создать более компактную, готовую к использованию версию, которую разработчики смогут использовать с уверенностью.
Слои
Полимер был преобразован в ряд слоев. Основные функции быстрые и экономичные, а более продвинутые функции будут доступны по желанию. В большинстве случаев использования основные функции должны удовлетворять потребности разработчиков.
Упрощенная привязка данных
Система привязки данных Polymer также была значительно оптимизирована по производительности. В соответствии с многоуровневым подходом теперь включена двусторонняя привязка, а по умолчанию используются односторонние привязки. Кроме того, опубликованные типы свойств стали явными, а изменение свойства теперь вызывает событие, облегчающее взаимодействие элементов из разных библиотек.
Более компактный теневой DOM
Полифил Shadow DOM — это потрясающий инженерный подвиг. Он был разработан как комплексный и соответствующий спецификациям, что важно для тщательного тестирования примитива платформы, но, к сожалению, создает ряд узких мест в производительности для функций, которые Polymer не использует.
В следующей версии Polymer будет использован другой подход: будет использоваться слой в стиле прокладки, который заполняет только то, что нужно Polymer.
Существующий полифилл будет использоваться для общих, неполимерных веб-компонентов.
Переходим на сайт webcomComponents.org.
Говоря о полифилах, они тоже обретают новый дом. В настоящее время многие разработчики не понимают взаимосвязи между Polymer и веб-компонентами. Некоторые думают, что для использования веб-компонентов необходимо использовать весь Polymer, хотя на самом деле вам нужны только полифилы.
Чтобы сделать это различие более ясным, полифилы были перенесены на сайт webcomComponents.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, чтобы получать вопросы и комментарии. Удачного взлома!