पॉलीमर और वेब कॉम्पोनेंट आज के दौर में काफ़ी चर्चा में रहे. इस नेटवर्क में तेज़ी से बदलाव हो रहा है. इसलिए, डेवलपर के लिए नए बदलावों के बारे में जानकारी रखना अक्सर मुश्किल हो सकता है.
Chrome Dev समिट में अपनी बातचीत में, Polymer टीम के इंजीनियरिंग मैनेजर, मैट मैकएनॉल्टी ने Polymer के बारे में पूरी जानकारी दी और पॉलीमर 1.0 के लिए रोडमैप की आउटलाइन भी बताई.
पॉलिमर क्या है?
सबसे पहले जानते हैं कि पॉलिमर क्या है?
Polymer एक ऐसी लाइब्रेरी है जो वेब कॉम्पोनेंट से बाहर, एलिमेंट और ऐप्लिकेशन बनाने में आपकी मदद करती है. वेब कॉम्पोनेंट, नए स्टैंडर्ड का एक आधुनिक सेट है. इसकी मदद से, डेवलपर अपने कस्टम एलिमेंट के साथ एचटीएमएल शब्दावली को बढ़ा सकते हैं.
![Polymer ऐप्लिकेशन को ज़्यादा तेज़ी से ऐप्लिकेशन बनाने में मदद करता है](https://developer.chrome.google.cn/static/blog/polymer-state-of-the-union/image/polymer-helps-developers-a805f911c7281.jpg?hl=hi)
चूंकि वेब घटक ब्राउज़र के लिए एक नया प्रारंभिक घटक होने के लिए डिज़ाइन किए गए हैं, इसलिए इसका अर्थ है कि वे बहुत शक्तिशाली हैं लेकिन बहुत निम्न स्तर भी हैं और उनके साथ कार्य करने के लिए ठीक-ठाक कोड की आवश्यकता होती है.
![पॉलिमर वेब कॉम्पोनेंट को ज़्यादा मीठा बनाता है](https://developer.chrome.google.cn/static/blog/polymer-state-of-the-union/image/polymer-makes-web-compone-92d01088f1203.jpg?hl=hi)
पॉलिमर सिंटैक्स "शुगर" करके वेब कॉम्पोनेंट को काम करने में आसान बनाता है. यह बॉयलरप्लेट कोड को कम कर देता है, जिसे आपको लिखना पड़ता है. साथ ही, यह डिक्लेरेटिव स्टाइल जोड़ता है. इसलिए, वेब कॉम्पोनेंट बनाना, एचटीएमएल लिखने जितना ही आसान है.
पॉलीमर एक्सपेरिमेंट
Polymer ने एक प्रयोग के तौर पर शुरुआत की, ताकि यह देखा जा सके कि सभी ब्राउज़र में इन टेक्नोलॉजी के शिप होने से पहले, हम वेब कॉम्पोनेंट के मानकों को पॉलीफ़िल कर सकते हैं या नहीं और डेवलपर से सुझाव ले सकते हैं या नहीं. जैसे-जैसे ज़्यादा डेवलपर ने Polymer इस्तेमाल करना शुरू किया, वैसे-वैसे यह पॉलीफ़िल से शुरू होकर, उत्पादकता से जुड़ी सुविधाओं वाली एक असल लाइब्रेरी में बदल गया, जैसे कि डेटा बाइंडिंग, एट्रिब्यूट बदलने वाले वॉचर, अपने-आप नोड ढूंढने की सुविधा वगैरह. लेकिन सभी एक्सपेरिमेंट के नतीजे मिलते हैं, तो हमें कैसा लगा?
![पॉलिमर रिपोर्ट कार्ड में सुधार की ज़रूरत है](https://developer.chrome.google.cn/static/blog/polymer-state-of-the-union/image/polymer-report-card-needs-b82f24b84598c.jpg?hl=hi)
कई डेवलपर ने कहा कि उन्हें पॉलिमर में वेब कॉम्पोनेंट के साथ काम करने की खासियत और प्रोडक्टिविटी से जुड़े फ़ायदे पसंद आए. साथ ही, उन्होंने परफ़ॉर्मेंस और जटिलताओं पर भी चिंता जताई.
यह पॉलीमर के साथ होने वाले एक स्वाभाविक तनाव को हाइलाइट करता है: वेब प्लैटफ़ॉर्म को आगे बढ़ाने के लिए एक प्रयोग होना चाहिए, लेकिन साथ ही ऐसा कुछ प्रोडक्शन के लायक भी होना चाहिए जिस पर डेवलपर भरोसा कर सकें.
आगे होने वाले बदलाव
Polymer टीम ने लाइब्रेरी की हर सुविधा की बारीकी से जांच की है. इसके लिए, कंपनी को ऐसा बेहतर वर्शन उपलब्ध कराना है जो प्रोडक्शन के लिए तैयार हो और जिसे डेवलपर पूरे भरोसे के साथ इस्तेमाल कर सकें.
लेयर
पॉलीमर को कई लेयर में फिर से प्रोसेस किया गया है. इसकी मुख्य सुविधाएं तेज़ और भरोसेमंद हैं. वहीं, ज़्यादा बेहतर सुविधाओं के लिए ऑप्ट-इन किया जा सकता है. ज़्यादातर मामलों में, मुख्य सुविधाओं में डेवलपर की ज़रूरतें पूरी होनी चाहिए.
![पॉलीमर को लेयर में रिफ़ैक्टर किया गया है](https://developer.chrome.google.cn/static/blog/polymer-state-of-the-union/image/polymer-has-been-refactor-956c5aab599cd.jpg?hl=hi)
आसान डेटा बाइंडिंग
पॉलीमर के डेटा बाइंडिंग सिस्टम को भी परफ़ॉर्मेंस के लिए ऑप्टिमाइज़ किया गया है. लेयर्ड अप्रोच के बाद, टू-वे बाइंडिंग अब ऑप्ट-इन हो गई है, जिसमें डिफ़ॉल्ट रूप से एकतरफ़ा बाइंडिंग है. इसके अलावा, पब्लिश की गई प्रॉपर्टी के टाइप को साफ़ तौर पर बताया गया है और प्रॉपर्टी में किए गए बदलाव अब इवेंट को ट्रिगर करते हैं, ताकि अलग-अलग लाइब्रेरी के एलिमेंट आसानी से कम्यूनिकेट कर सकें.
![डेटा बाइंडिंग को आसान बना दिया गया है](https://developer.chrome.google.cn/static/blog/polymer-state-of-the-union/image/data-binding-has-been-sim-1222611d800a9.jpg?hl=hi)
लीनर शैडो डीओएम
शैडो डीओएम पॉलीफ़िल, इंजीनियरिंग का एक शानदार उदाहरण है. इसे पूरी जानकारी और निर्देशों का पालन करने के लिए डिज़ाइन किया गया था, जो प्लैटफ़ॉर्म प्रिमिटिव की पूरी तरह से टेस्ट करने के लिए ज़रूरी है. हालांकि, हमें अफ़सोस है कि इसकी वजह से ऐसी सुविधाओं के लिए परफ़ॉर्मेंस से जुड़ी कई समस्याएं पैदा हो जाती हैं जिनका इस्तेमाल Polymer नहीं करता है.
Polymer की अगली रिलीज़ में एक अलग तरीका अपनाया जाएगा. इसमें शिम-स्टाइल वाली एक लेयर होगी, जो सिर्फ़ पॉलीमर की ज़रूरत की पॉलीफ़िल करेगी.
![शिम शैडोडॉम ज़्यादा तेज़ है](https://developer.chrome.google.cn/static/blog/polymer-state-of-the-union/image/shim-shadowdom-is-much-fa-68a4b5bcbced.jpg?hl=hi)
मौजूदा पॉलीफ़िल, जेनरिक और नॉन-पॉलिमर वेब कॉम्पोनेंट के लिए चालू रहेगा.
webcomponents.org पर ले जाएं
पॉलीफ़िल की बात करें, तो अब उन्हें नया घर भी मिल रहा है. फ़िलहाल, कई डेवलपर पॉलिमर और वेब कॉम्पोनेंट के बीच के संबंध को लेकर उलझन में हैं. कुछ लोगों को लगता है कि आपको वेब कॉम्पोनेंट इस्तेमाल करने के लिए, पॉलिमर के सभी टूल इस्तेमाल करने ही होंगे. असल में, आपको सिर्फ़ पॉलीफ़िल की ज़रूरत होती है.
इस अंतर को साफ़ तौर पर समझाने के लिए, पॉलीफ़िल को webcomponents.org में ले जाया जा रहा है और अब उनका नाम बदलकर webcomponents.js
कर दिया गया है.
![पॉलीफ़िल को webcomponents.org पर ले जाने की सुविधा](https://developer.chrome.google.cn/static/blog/polymer-state-of-the-union/image/polyfills-moving-webcomp-504704db1d618.jpg?hl=hi)
इस बदलाव का मकसद, लाइब्रेरी के अन्य लेखकों को बिना किसी उलझन के, पॉलीफ़िल का फ़ायदा लेने में मदद करना है. पॉलिमर टीम, पॉलीफ़िल को बेहतर बनाने के लिए आगे भी योगदान देती रहेगी. हालांकि, हमें उम्मीद है कि इस बदलाव की वजह से, कम्यूनिटी के लिए यह नया और भरोसेमंद ज़रिया बन जाएगा.
नतीजे
तो, इन सभी बदलावों के क्या नतीजे मिल रहे हैं?
स्पीड
Chrome पर, Polymer अब 5 गुना तेज़ है और Safari पर 8 गुना ज़्यादा स्पीड है.
![Polymer अब Safari में 8 गुना तेज़ हो गया है](https://developer.chrome.google.cn/static/blog/polymer-state-of-the-union/image/polymer-is-8x-faster-sa-32dc57f4dcf15.jpg?hl=hi)
फ़ाइल का साइज़
फ़ाइल के साइज़ को भी 87% कम कर दिया गया है. इसे 123 केबी से घटाकर 15 केबी (6 केबी gzip) कर दिया गया है.
![पॉलीमर अब 87% छोटा है](https://developer.chrome.google.cn/static/blog/polymer-state-of-the-union/image/polymer-is-87-smaller-0013b2cbc9c2b.jpg?hl=hi)
रोडमैप
अगली रिलीज़ में एपीआई ब्रेकिंग से जुड़े कुछ बदलाव होंगे, जिन्हें नए वर्शन नंबर (0.8) से दिखाया जाएगा. हालांकि, टीम यह साफ़ करना चाहती है कि इसे फिर से लिखा नहीं गया है. अपने मौजूदा प्रोजेक्ट को Polymer 0.5 से 0.8 में बदलना आसान नहीं होना चाहिए.
पॉलीमर टीम ने एक रोडमैप भी तैयार किया है, ताकि डेवलपर को आने वाली रिलीज़ के बारे में ज़्यादा साफ़ तौर पर जानकारी दी जा सके.
![पॉलीमर रोडमैप, पहली तिमाही में बीटा, दूसरी तिमाही में 1.0](https://developer.chrome.google.cn/static/blog/polymer-state-of-the-union/image/polymer-roadmap-beta-q1-ee4a2fd8a7964.jpg?hl=hi)
0.8 झलक, अब GitHub पर ब्रांच के तौर पर उपलब्ध है. हालांकि, इसे अब भी बहुत तेज़ी से डेवलप किया जा रहा है और इसके दस्तावेज़ भी मौजूद नहीं हैं. 0.9 आधिकारिक बीटा वर्शन को साल 2015 की पहली तिमाही में लॉन्च करने की योजना है. दूसरी तिमाही में, इसे 1.0 के तौर पर लॉन्च किया जाएगा.
प्रयोग खत्म हो गया है
पॉलिमर में हाल ही में हुए सभी बदलावों की वजह से, इसके पीछे की टीम वेब कॉम्पोनेंट के लिए बुनियादी काम कर रही है, ताकि हर डेवलपर के स्टैक का अहम हिस्सा बन सके. अगर आपने वेब कॉम्पोनेंट का इस्तेमाल पहले कभी नहीं किया है, तो इन बेहतरीन टेक्नोलॉजी को आज़माने और इनके बारे में जानने का यही सही समय है. अगर कॉम्पोनेंट (और Polymer) का इस्तेमाल पहले से किया जा रहा है, तो आने वाला समय वाकई शानदार है. सभी नए अपडेट के लिए, Polymer ब्लॉग पर नज़र रखें. साथ ही, सवालों या टिप्पणियों के लिए, Polymer को ईमेल पतों की सूची में शामिल होने के लिए साइन अप करें. हैकिंग के लिए शुभकामनाएं!