Polymer dan Komponen Web adalah topik yang sangat populer akhir-akhir ini, dan karena ekosistem ini berkembang dengan cepat, developer sering kali kesulitan untuk terus mengikuti semua perubahan terbaru.
Dalam presentasinya di Chrome Dev Summit, Matt McNulty, engineering manager untuk tim Polymer, menjelaskan apa itu Polymer, dan juga menguraikan roadmap untuk Polymer 1.0.
Apa itu Polymer?
Pertama, apa sebenarnya Polymer?
Polymer adalah library yang membantu Anda mem-build elemen dan aplikasi dari komponen web. Komponen Web adalah serangkaian standar baru yang canggih yang memungkinkan developer memperluas kosakata HTML dengan elemen kustom mereka sendiri.

Karena Komponen Web dirancang untuk menjadi primitif baru bagi browser, artinya komponen ini sangat canggih, tetapi juga sangat rendah level dan memerlukan cukup banyak kode untuk menggunakannya.

Polymer mempermudah penggunaan Web Components dengan "mempermudah" sintaksis. Hal ini mengurangi jumlah kode boilerplate yang perlu Anda tulis, dan menambahkan gaya deklaratif sehingga membuat Komponen Web semudah menulis HTML.
Eksperimen Polimer
Polymer dimulai sebagai eksperimen untuk melihat apakah kita dapat melakukan polyfill pada standar Komponen Web dan mendapatkan masukan dari developer sebelum teknologi ini dikirimkan di semua browser. Seiring semakin banyak developer yang mulai menggunakan Polymer, Polymer berubah dari sekadar polyfill menjadi library sebenarnya yang penuh dengan fitur produktivitas (data binding, watcher perubahan atribut, penemuan node otomatis, dll.). Namun, semua eksperimen memiliki hasil, jadi bagaimana hasilnya?

Meskipun banyak developer mengatakan bahwa mereka menyukai ekspresi dan peningkatan produktivitas saat menggunakan Komponen Web di Polymer, mereka juga menyatakan kekhawatiran terkait performa dan kompleksitas secara keseluruhan.
Hal ini menyoroti ketegangan alami yang selalu dimiliki Polymer: menjadi eksperimen untuk mendorong platform web, tetapi juga membuat sesuatu yang layak produksi yang dapat diandalkan developer.
Perubahan Mendatang
Tim Polymer telah mempertimbangkan setiap fitur library dengan tujuan untuk membuat versi yang lebih ramping dan siap produksi yang dapat digunakan developer dengan percaya diri.
Lapisan
Polymer telah difaktorkan ulang menjadi serangkaian lapisan. Fitur intinya cepat dan ringkas, sedangkan fitur yang lebih canggih akan diaktifkan secara opsional. Untuk sebagian besar kasus penggunaan, fitur inti harus mencakup kebutuhan developer.

Data Binding yang Disederhanakan
Sistem binding data Polymer juga telah dioptimalkan secara signifikan untuk performa. Dengan mengikuti pendekatan berlapis, binding dua arah kini menjadi opsi yang dapat diaktifkan, dengan defaultnya adalah binding satu arah. Selain itu, jenis properti yang dipublikasikan telah dibuat eksplisit dan perubahan properti kini memicu peristiwa untuk membantu elemen dari berbagai library berkomunikasi dengan lebih mudah.

Shadow DOM yang Lebih Ringan
Polyfill Shadow DOM adalah pencapaian teknik yang luar biasa. Library ini dirancang agar komprehensif dan sesuai spesifikasi, yang penting untuk menguji primitif platform secara menyeluruh, tetapi sayangnya menyebabkan sejumlah bottleneck performa untuk fitur yang tidak digunakan Polymer.
Rilis Polymer berikutnya akan menggunakan pendekatan yang berbeda, menggunakan lapisan bergaya shim yang hanya melakukan polyfill terhadap hal yang diperlukan Polymer.

Polyfill yang ada akan tetap ada untuk komponen web generik non-Polymer.
Berpindah ke webcomponents.org
Berbicara tentang polyfill, polyfill juga mendapatkan rumah baru. Saat ini, banyak developer yang bingung dengan hubungan antara Polymer dan Web Components. Beberapa orang berpikir bahwa Anda harus menggunakan semua Polymer untuk menggunakan Web Components, padahal sebenarnya Anda hanya memerlukan polyfill.
Untuk memperjelas perbedaan ini, polyfill dipindahkan ke webcomponents.org dan sekarang telah diganti namanya menjadi webcomponents.js
.

Langkah ini dirancang untuk membantu penulis library lain memanfaatkan polyfill tanpa kebingungan. Tim Polymer akan terus berkontribusi pada polyfill, tetapi harapannya adalah perubahan ini menjadikannya lebih sebagai resource bersama untuk komunitas.
Hasil
Jadi, apa hasil dari semua perubahan ini?
Kecepatan
Di Chrome, Polymer kini 5x lebih cepat, dan di Safari, kecepatannya meningkat 8x lipat.

Ukuran File
Ukuran file juga telah dikurangi sebesar 87%, dari 123 KB menjadi 15 KB (6 KB dikompresi gzip).

Roadmap
Akan ada beberapa perubahan API yang dapat menyebabkan gangguan pada rilis berikutnya, yang ditandai dengan nomor versi baru (0.8), tetapi tim ingin menjelaskan bahwa ini bukan penulisan ulang. Memindahkan project Anda saat ini dari Polymer 0.5 ke 0.8 seharusnya cukup mudah.
Tim Polymer juga telah menguraikan roadmap untuk memberikan kejelasan lebih lanjut kepada developer terkait rilis mendatang.

Pratinjau 0.8 kini tersedia sebagai cabang di GitHub (meskipun masih dikembangkan secara aktif dan tidak memiliki dokumentasi). Beta resmi 0.9 direncanakan untuk Kuartal 1 2015, dengan 1.0 akan dirilis pada Kuartal 2.
Eksperimen Berakhir
Dengan semua perubahan terbaru di Polymer, tim di baliknya sedang meletakkan dasar-dasar agar Komponen Web menjadi bagian integral dari stack setiap developer. Jika Anda baru menggunakan Komponen Web, sekarang adalah waktu yang tepat untuk melihat dan memahami teknologi transformatif ini. Jika Anda sudah menggunakan komponen (dan Polymer), masa depan Anda akan cerah. Pantau Blog Polymer untuk mendapatkan semua info terbaru, dan daftar ke milis Polymer untuk mengajukan pertanyaan atau komentar. Selamat mencoba!