Polimer dan Komponen Web adalah topik yang sangat populer akhir-akhir ini, dan karena ekosistem ini berkembang pesat, sering kali sulit bagi developer untuk terus mengikuti semua perubahan terbaru.
Dalam pembicaraannya di Chrome Dev Summit, Matt McNulty, manajer engineering untuk tim Polymer, menjelaskan apa itu Polymer dan juga menguraikan roadmap untuk Polymer 1.0.
Apa itu Polimer?
Pertama, apa sebenarnya Polymer itu?
Polymer adalah library yang membantu Anda membangun elemen dan aplikasi dari komponen web. Komponen Web adalah seperangkat standar baru yang canggih yang memungkinkan pengembang untuk menambah kosakata HTML dengan elemen khusus mereka sendiri.
Karena Komponen Web dirancang untuk menjadi primitif baru bagi browser, artinya komponen tersebut sangat canggih tetapi juga tingkatnya sangat rendah dan diperlukan kode yang cukup untuk bekerja dengannya.
Polymer memudahkan kerja Komponen Web dengan melakukan "sugaring" pada sintaks. 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 mem-polyfill standar Komponen Web dan mendapatkan masukan dari developer sebelum teknologi ini dikirimkan di semua browser. Karena semakin banyak developer yang mulai menggunakan Polymer, Polymer berubah dari sekadar polyfill, menjadi library aktual yang penuh dengan fitur produktivitas (pengikatan data, pengamat perubahan atribut, penemuan node otomatis, dll). Namun, semua eksperimen memiliki hasil, jadi bagaimana kami melakukannya?
Meskipun banyak developer mengatakan mereka menyukai peningkatan ekspresi dan produktivitas dengan menggunakan Komponen Web di Polymer, mereka juga menyatakan kekhawatiran terkait performa dan kompleksitas secara keseluruhan.
Hal ini menyoroti ketegangan alami yang dimiliki Polymer selama ini: menjadi eksperimen untuk memajukan platform web, sekaligus menciptakan sesuatu yang layak produksi dan dapat diandalkan oleh developer.
Perubahan Mendatang
Tim Polymer telah mempelajari setiap fitur library ini dengan tujuan untuk membuat versi yang lebih ramping dan siap produksi yang dapat digunakan oleh developer dengan percaya diri.
Lapisan
Polimer telah difaktorkan ulang menjadi serangkaian lapisan. Fitur intinya cepat dan ramping, sementara fitur yang lebih canggih akan diaktifkan. Untuk sebagian besar kasus penggunaan, fitur inti harus mencakup kebutuhan developer.
Data Binding yang Disederhanakan
Sistem data binding Polymer juga telah dioptimalkan secara signifikan untuk performa. Dengan mengikuti pendekatan berlapis, binding dua arah sekarang diikutsertakan, dengan defaultnya adalah binding satu arah. Selain itu, jenis properti yang dipublikasikan telah dibuat eksplisit dan perubahan properti kini mengaktifkan peristiwa untuk membantu elemen dari library yang berbeda berkomunikasi dengan lebih mudah.
DOM Bayangan Leaner
Shadow DOM polyfill adalah prestasi rekayasa yang luar biasa. Platform ini dirancang agar komprehensif dan sesuai spesifikasi, yang penting untuk menguji primitif platform secara menyeluruh, tetapi sayangnya memperkenalkan sejumlah bottleneck performa untuk fitur yang tidak digunakan Polymer.
Rilis Polymer berikutnya akan menggunakan pendekatan yang berbeda, menggunakan lapisan gaya shim yang hanya mem-polyfill apa yang dibutuhkan Polymer.
Polymer yang ada akan aktif untuk komponen web non-Polymer generik.
Memindahkan ke webcomponents.org
Berbicara tentang polyfill, jumlah tersebut juga akan mendapatkan rumah baru. Saat ini banyak pengembang bingung tentang hubungan antara Polimer dan Komponen Web. Beberapa orang berpikir bahwa Anda harus menggunakan semua Polymer untuk menggunakan Komponen Web, padahal sebenarnya Anda hanya memerlukan polyfill.
Untuk lebih memperjelas perbedaan ini, polyfill akan 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 dapat menjadi sumber daya bersama untuk komunitas.
Hasil
Jadi apa hasil dari semua perubahan ini?
Kecepatan
Di Chrome, Polymer kini 5x lebih cepat, dan di Safari terjadi kecepatan 8x lebih tinggi.
Ukuran File
Ukuran file juga telah dikurangi 87%, dari 123KB menjadi 15KB (6KB gzip).
Roadmap
Akan ada beberapa perubahan API yang dapat menyebabkan gangguan dalam rilis berikutnya, yang ditandai dengan nomor versi baru (0.8) tetapi tim ingin memperjelas bahwa ini bukan penulisan ulang. Memindahkan proyek Anda saat ini dari Polimer 0,5 ke 0,8 seharusnya cukup sepele.
Tim Polymer juga telah menguraikan roadmap untuk memberi developer informasi yang lebih jelas tentang rilis mendatang.
Pratinjau 0.8 kini tersedia sebagai cabang di GitHub (meskipun masih sangat aktif dikembangkan dan kurang dokumentasi). Versi beta resmi 0.9 direncanakan untuk Q1 2015, dengan 1.0 akan diadakan di Q2.
Eksperimen Berakhir
Dengan semua perubahan terbaru di Polymer, tim di baliknya meletakkan dasar agar Komponen Web menjadi bagian integral dari setiap tumpukan developer. Jika Anda baru mengenal Komponen Web, sekarang adalah waktu yang tepat untuk melihat dan membiasakan diri dengan teknologi transformatif ini. Jika Anda sudah bekerja dengan komponen (dan Polymer), masa depan pasti terlihat cerah. Pantau terus Polymer Blog untuk semua pembaruan terkini, dan daftar ke milis Polymer untuk pertanyaan atau komentar. Selamat meretas!