Polimer ve Web Bileşenleri son zamanlarda çok gündemdedir ve bu ekosistem hızlı bir şekilde geliştiği için geliştiricilerin en son değişikliklerden haberdar olması genellikle zor olabilmektedir.
Chrome Dev Summit'te yaptığı konuşmada Polymer ekibinin mühendislik müdürü Matt McNulty, Polymer'in ne olduğunu açıkladı ve Polymer 1.0'a yönelik yol haritasını özetledi.
Polimer nedir?
Öncelikle, Polymer tam olarak nedir?
Polimer, web bileşenlerinden öğe ve uygulama oluşturmanıza yardımcı olan bir kitaplıktır. Web Bileşenleri, geliştiricilerin kendi özel öğeleriyle HTML sözlüğünü genişletmelerine olanak tanıyan son teknoloji ürünü yeni standartlar kümesidir.
Web Bileşenleri, tarayıcı için yeni bir temel öğe olacak şekilde tasarlandığından, çok güçlü ancak aynı zamanda çok düşük düzeydedirler ve bunlarla çalışmak biraz kod gerektirir.
Polimer, söz dizimini "oluşturarak" Web Bileşenlerinin çalışmasını kolaylaştırır. Yazmanız gereken standart kod miktarını azaltır ve bildirim temelli bir stil ekler. Böylece Web Bileşenleri oluşturmak HTML yazmak kadar kolaydır.
Polimer Deneyi
Polymer, Web Bileşeni standartlarını yerine getirip getiremeyeceğimizi ve bu teknolojiler tüm tarayıcılarda kullanıma sunulmadan önce geliştiricilerden geri bildirim alıp alamayacağımızı görmek için bir deney olarak başladı. Daha fazla geliştirici Polymer'i kullanmaya başladıkça yalnızca polyfill'den oluşan bu hizmet, üretkenlik özellikleriyle (veri bağlama, özellik değişikliği izleyicileri, otomatik düğüm bulma vb.) dolu gerçek bir kitaplığa dönüştü. Tüm denemelerin sonuçları var, peki biz nasıl başarılı olduk?
Birçok geliştirici Polymer'de Web Bileşenleri ile çalışmanın ifade gücü ve üretkenlik açısından sağladığı artışı beğendiğini belirtse de, performans ve genel olarak karmaşıklık hakkındaki endişelerini de ifade etti.
Video, Polymer'in en başından beri var olan doğal bir gerilmeyi vurguluyor: Web platformunu ileriye taşımayı amaçlayan bir deneme olmanın yanı sıra geliştiricilerin güvenebileceği, üretime değer bir şey de yaratın.
Yapılacak Değişiklikler
Polymer ekibi, geliştiricilerin güvenle kullanabileceği daha yalın ve üretime hazır bir sürümü ortaya çıkarmak amacıyla kitaplığın her özelliğini dikkatle inceledi.
Katmanlar
Polimer yeniden düzenlenerek bir dizi katman haline getirildi. Temel özellikler hızlı ve yalındır. Öte yandan daha gelişmiş özellikler isteğe bağlı olarak sunulur. Kullanım alanlarının çoğu için temel özellikler geliştiricilerin ihtiyaçlarını kapsamalıdır.
Basitleştirilmiş Veri Bağlama
Polymer'in veri bağlama sistemi de performans için önemli ölçüde optimize edildi. Katmanlı yaklaşımın ardından artık varsayılan tek yönlü bağlamalar olmak üzere iki yönlü bağlama etkinleştirilmiştir. Ayrıca, yayınlanan özellik türleri açık hale getirildi ve özellik değişikliği, farklı kitaplıklardaki öğelerin daha kolay iletişim kurmasına yardımcı olmak için artık bir etkinliği tetikler.
Yalın Gölge DOM
Gölge DOM çoklu dolgusu muhteşem bir mühendislik başarısı. Kapsamlı ve spesifikasyonlara uygun olacak şekilde tasarlanan bu araç, platformun temel öğelerini kapsamlı bir şekilde test etmek açısından önemlidir. Ancak ne yazık ki Polymer'in kullanmadığı özellikler konusunda birtakım performans sorunlarına yol açmaktadır.
Polimer'in bir sonraki sürümü, yalnızca Polimer'in ihtiyacı olan polimerleri dolduran şim tarzı bir katman kullanarak farklı bir yaklaşım kullanacak.
Mevcut polyfill, genel, Polimer olmayan web bileşenleri için kullanılmaya devam edecektir.
webcomponents.org'a taşınıyor
Çoklu dolgulardan bahsetmişken, aynı zamanda bunların da yeni bir yeri var. Şu anda birçok geliştirici, Polimer ve Web Bileşenleri arasındaki ilişki konusunda kafasını karıştırmaktadır. Bazıları Web Bileşenlerini kullanmak için tüm Polimer'i kullanmanız gerektiğini, ancak aslında yalnızca polyfill'lere ihtiyacınız olduğunu düşünüyor.
Bu ayrımı daha net hale getirmek için, çoklu dolgular webcomponents.org adresine taşınmakta ve webcomponents.js
olarak yeniden adlandırılmaktadır.
Bu taşıma işlemi, diğer kütüphane yazarlarının herhangi bir karışıklık olmadan çoklu dolgulardan yararlanmasına yardımcı olmak için tasarlanmıştır. Polymer ekibi polyfill'lere katkıda bulunmaya devam edecek. Ancak bu değişiklik sayesinde daha çok topluluğun ortak bir kaynağı olmayı umuyoruz.
Sonuçlar
Peki tüm bu değişikliklerin sonuçları nedir?
Hız
Chrome'da Polymer 5 kat daha hızlı, Safari'de ise 8 kat daha hızlı.
Dosya Boyutu
Ayrıca, dosya boyutu %87 azaltılarak 123 KB'tan 15 KB'ye (6 KB gzip ile sıkıştırılmış) düşürüldü.
Yol Haritası
Sonraki sürümde, yeni sürüm numarası (0.8) ile belirtilmiş, API'leri bozan bazı değişiklikler olacaktır. Ancak ekip, bunun bir yeniden yazma olmadığını açıkça belirtmek istiyor. Mevcut projenizi Polymer 0.5'ten 0.8'e taşımak oldukça basit olmalı.
Polymer ekibi, geliştiricilere gelecek sürümler hakkında daha fazla netlik sağlamak için bir yol haritası da hazırladı.
0.8 önizlemesi, GitHub'da bir dal olarak kullanıma sunulmuştur (ancak hâlâ aktif bir şekilde geliştirilme aşamasındadır ve dokümantasyon eksiktir). 0.9 resmi beta sürümünün 2015'in 1. çeyreğinde kullanıma sunulması planlanıyor. 1.0 sürümü ise 2. çeyrekte bir tarihte kullanıma sunulacak.
Deneme Bitti
Polymer'de yapılan son değişikliklerle birlikte, arkasındaki ekip, web bileşenlerinin her geliştirici yığınının ayrılmaz bir parçası olmasını sağlayacak temelleri atıyor. Web Bileşenleri konusunda yeniyseniz şimdi bu dönüştürücü teknolojilere göz atıp bilgi edinmenin tam zamanı. Bileşenlerle (ve Polymer) çalışıyorsanız gelecek gerçekten de parlak olacak. En son güncellemeler için Polymer Blog'unu takip edin ve sorularınız ya da yorumlarınız için Polymer posta listesine kaydolun. Başarılı bilgisayar korsanlığı!