Chrome Dev Summit 2014 – Polymer – „State of the Union”

Komponenty Polymer i komponenty internetowe to obecnie bardzo ważny temat, a ponieważ ten ekosystem ewoluuje, deweloperzy często mogą mieć problemy ze śledzeniem na bieżąco wszystkich najnowszych zmian.

Matt McNulty, menedżer inżynierów z zespołu Polymer, opowiedział podczas konferencji Chrome Dev Summit, czym jest Polymer, i przedstawił plan rozwoju Polymer 1.0.

Co to jest Polymer?

Po pierwsze: czym dokładnie jest Polymer?

Polymer to biblioteka, która pomaga tworzyć elementy i aplikacje na podstawie komponentów internetowych. Komponenty internetowe to najnowszy zestaw nowych standardów, które umożliwiają programistom rozszerzenie słownictwa HTML o własne elementy niestandardowe.

Polymer pomaga programistom szybciej tworzyć aplikacje

Ponieważ komponenty internetowe zostały zaprojektowane jako nowy element podstawowy w przeglądarce, oznacza to, że są bardzo wydajne, ale również bardzo niskie, a praca z nimi wymaga sporej ilości kodu.

Polymer sprawia, że komponenty Web są słodsze

Polymer ułatwia obsługę komponentów sieciowych przez „wytworzenie cukru” ze składni. Zmniejsza on ilość kodu stałego do napisania i stosuje styl deklaratywny, dzięki czemu tworzenie komponentów sieciowych jest tak proste, jak pisanie kodu HTML.

Eksperyment z polimerami

Firma Polymer rozpoczęła eksperyment w celu sprawdzenia, czy uda nam się spełnić standardy dotyczące komponentów sieciowych i uzyskać opinie od programistów, zanim te technologie zostaną wprowadzone we wszystkich przeglądarkach. W miarę jak coraz więcej programistów zaczęło korzystać z Polymera, nie był to po prostu kod polyfill, a obecnie jest to biblioteka pełna funkcji zwiększających produktywność (wiążących dane, obserwujących zmiany atrybutów, automatycznego znajdowania węzłów itp.). Ale wszystkie eksperymenty dają wyniki. Jak więc nam poszło?

Karta raportu Polymer wymaga ulepszenia

Wielu deweloperów uważa, że praca z komponentami internetowymi w Polymer podoba im się bardziej ekspresyjnie i większą produktywnością, ale wyrażali też obawy o wydajność i ogólną złożoność.

Widać w nim naturalne napięcie, z jakim Polymer żyje od zawsze: być eksperymentem mającym na celu rozwój platformy internetowej, a jednocześnie stworzyć coś wartościowego dla programistów, na którym będą mogli polegać.

Nadchodzące zmiany

Zespół Polymer przeanalizował wszystkie funkcje biblioteki w celu opracowania udoskonalonej, gotowej do produkcji wersji, z której deweloperzy mogą się bez obaw korzystać.

Warstwy

Polimer został poddany refaktoryzacji w serii warstw. Główne funkcje są szybkie i małe, a bardziej zaawansowane będą dostępne w wersji beta. W większości przypadków główne funkcje powinny spełniać potrzeby deweloperów.

Polimer został poddany refaktoryzacji w warstwy

Uproszczone wiązanie danych

System wiązania danych firmy Polymer został też znacznie zoptymalizowany pod kątem wydajności. Zgodnie z podejściem warstwowym wiązanie dwukierunkowe jest teraz akceptowane, a ustawienie domyślne to wiązania jednokierunkowe. Dodatkowo typy opublikowanych właściwości zostały określone jako jawne, a zmiana właściwości wywołuje teraz zdarzenie, które pomaga w komunikacji elementów z różnych bibliotek.

Uprościliśmy wiązanie danych

Lepszy model cienia

Polyfill Shadow DOM to niezwykłe osiągnięcie techniczne. Został on zaprojektowany tak, aby był kompleksowy i zgodny ze specyfikacjami, co jest ważne przy dokładnym testowaniu podstawowych funkcji platformy, ale wiąże się z kilkoma wąskimi gardłami wydajności w przypadku funkcji, z których Polymer nie korzysta.

Kolejna wersja Polymer będzie wyglądać inaczej i będzie korzystać z warstwy w postaci podkładki, która wystarczy tylko do polimeru, która jest potrzebna.

Stosowanie cieni cieni jest dużo szybsze

Istniejące elementy kodu polyfill będą dostępne w przypadku standardowych komponentów internetowych innych niż Polymer.

Przenoszę na webcomponents.org

A jeśli już mowa o polyfill, to one również zyskują nowe miejsce. Obecnie wielu programistów ma wątpliwości co do relacji między komponentami Polymer i Web Komponenty. Niektórzy uważają, że do używania komponentów sieciowych trzeba użyć całego Polymera, podczas gdy w rzeczywistości do tego wystarczy.

Aby ujednolicić to rozróżnienie, przenosimy elementy polyfill na stronę webcomponents.org – obecnie nazywamy je webcomponents.js.

Przeniesienie Polyfills do webcomponents.org

W ten sposób chcemy ułatwić innym autorom bibliotek wykorzystanie elementów polyfill bez nieporozumień. Zespół Polymer będzie nadal pomagać w tworzeniu kodu polyfill. Mamy jednak nadzieję, że dzięki tej zmianie staną się one bardziej ogólnodostępnym źródłem informacji dla całej społeczności.

Wyniki

Jakie są skutki tych wszystkich zmian?

Szybkość

W Chrome technologia Polymer jest teraz 5 razy szybsza, a w Safari – 8 razy większa.

Polymer jest teraz 8 razy szybszy w przeglądarce Safari

Rozmiar pliku

Rozmiar pliku zmniejszono również o 87%, ze 123 KB do 15 KB (6 KB w formacie gzip).

Polymer jest teraz mniejszy o 87%

Harmonogram

W następnej wersji wprowadzimy pewne zmiany powodujące niezgodność z interfejsem API, co będzie nazywane nowym numerem wersji (0.8). Zespół chce jednak wyraźnie zaznaczyć, że nie jest to modyfikacja. Przeniesienie bieżącego projektu z Polymer 0,5 do 0,8 powinno być całkiem łatwe.

Zespół Polymer przedstawił też plan działania, który ma pomóc deweloperom w zrozumieniu nadchodzących premier.

Plan rozwoju Polymer: wersja beta na I kwartał, 1, 0 w II kwartale

Wersja testowa 0.8 jest obecnie dostępna na GitHubie jako gałąź (choć nadal jest intensywnie rozwijana i brakuje jej dokumentacji). Oficjalna wersja beta 0,9 jest planowana na I kwartał 2015 r., a 1,0 – w II kwartale.

Eksperyment się zakończył

Po ostatnich zmianach w Polymer zespół odpowiedzialny za tę platformę przygotowuje Komponenty internetowe, aby stały się integralną częścią stosu każdego programisty. Jeśli dopiero zaczynasz korzystać z komponentów sieciowych, teraz jest świetny moment, by się z nimi zapoznać i zapoznać się z tymi przełomowymi technologiami. Jeśli masz już do czynienia z komponentami (i technologią Polymer), przyszłość rysuje się naprawdę fajnie. Aby być na bieżąco z najnowszymi informacjami o tej usłudze, zaglądaj na bloga Polymer i zapisuj się na listę adresową Polymer, aby zadawać pytania lub komentować. Udanego hakowania!