أصبحت Polymer وWeb Components من المواضيع الرائجة في الآونة الأخيرة، وبما أنّ هذا النظام المتكاملة يتطوّر بسرعة، قد يكون من الصعب أحيانًا على المطوّرين مواكبة جميع التغييرات الأخيرة.
في محاضرته التي ألقاها في Chrome Dev Summit، شرح "مات ماكنولتي"، مدير الهندسة في فريق Polymer، ماهية Polymer، كما وضّح خارطة الطريق التي تؤدي إلى Polymer 1.0.
ما هو Polymer؟
أولاً، ما هو Polymer بالضبط؟
Polymer هي مكتبة تساعدك في إنشاء عناصر وتطبيقات من مكوّنات الويب. مكونات الويب هي مجموعة حديثة من المعايير الجديدة التي تسمح للمطوّرين بتوسيع مفردات HTML باستخدام عناصرهم المخصّصة.

بما أنّ مكونات الويب مصمّمة لتكون عناصر أساسية جديدة للمتصفّح، يعني ذلك أنّها فعّالة جدًا ولكنّها أيضًا منخفضة المستوى جدًا، ويتطلّب العمل بها قدرًا لا بأس به من الرموز البرمجية.

يسهّل Polymer استخدام مكونات الويب من خلال "تحلية" البنية. ويقلّل هذا الأسلوب من كمية الرموز البرمجية المتكرّرة التي تحتاج إلى كتابتها، ويضيف أسلوبًا توضيحيًا لكي يصبح إنشاء مكوّنات الويب سهلًا مثل كتابة HTML.
The Polymer Experiment
بدأ Polymer كتجربة لمعرفة ما إذا كان بإمكاننا استخدام تقنية الملء اللاحق لمعايير Web Component والحصول على ملاحظات من المطوّرين قبل طرح هذه التقنيات في جميع المتصفّحات. مع بدء المزيد من المطوّرين في استخدام Polymer، تطوّر من مجرد مكتبة polyfills إلى مكتبة فعلية مليئة بميزات الإنتاجية (ربط البيانات، ومراقبو تغيير السمات، والعثور التلقائي على العقد، وما إلى ذلك). ولكن لكلّ تجربة نتائج، فكيف كانت نتائجنا؟

على الرغم من أنّ العديد من المطوّرين قالوا إنّهم أعجبوا بالتعبيرية والإنتاجية التي يحقّقونها من خلال العمل مع Web Components في Polymer، إلا أنّهم أعربوا أيضًا عن مخاوفهم بشأن الأداء والتعقيد العام.
ويسلّط الضوء على تناقض طبيعي كان قائمًا في Polymer منذ البداية: أن تكون تجربة لدفع منصة الويب إلى الأمام، ولكن أيضًا أن تُنشئ شيئًا يستحق الإنتاج ويمكن للمطوّرين الاعتماد عليه.
التغييرات القادمة
لقد راجع فريق Polymer كل ميزة من ميزات المكتبة بهدف إنشاء إصدار أكثر بساطة وجاهز للاستخدام يمكن للمطوّرين الوثوق به.
الطبقات
تمّت إعادة تنظيم Polymer إلى سلسلة من الطبقات. إنّ الميزات الأساسية سريعة وخفيفة، في حين أنّ الميزات الأكثر تقدمًا ستكون اختيارية. في معظم حالات الاستخدام، يجب أن تلبّي الميزات الأساسية احتياجات المطوّرين.

ربط البيانات المبسّط
تم أيضًا تحسين نظام ربط البيانات في Polymer بشكل كبير لتحسين الأداء. وفقًا للنهج المتعدّد الطبقات، أصبح الربط باتجاهَين الآن اختياريًا، مع أنّ الإعداد التلقائي هو عمليات الربط باتجاه واحد. بالإضافة إلى ذلك، تمّ توضيح أنواع المواقع المنشورة، وأصبح تغيير الموقع الآن يُطلق حدثًا لمساعدة العناصر من المكتبات المختلفة على التواصل بسهولة أكبر.

واجهة Shadow DOM أكثر بساطة
إنّ تقنية Shadow DOM polyfill هي إنجاز هندسي رائع. تم تصميمه ليكون شاملاً ومتوافقًا مع المواصفات، وهو أمر مهم لاختبار العناصر الأساسية للنظام الأساسي بدقة، ولكنّه يتسبب في حدوث عدد من نقاط الاختناق في الأداء للميزات التي لا يستخدمها Polymer.
سيعتمد الإصدار التالي من Polymer منهجًا مختلفًا، باستخدام طبقة على غرار العنصر البديل الذي يضيف polyfills فقط لما يحتاجه Polymer.

وسيظلّ الpolyfill الحالي متاحًا لمكوّنات الويب العامة غير المستندة إلى Polymer.
الانتقال إلى webcomponents.org
بالحديث عن polyfills، سيتم نقلها أيضًا إلى مكان جديد. في الوقت الحالي، لا يفهم العديد من المطوّرين العلاقة بين Polymer وWeb Components. يعتقد البعض أنّه يجب استخدام كلّ أدوات Polymer لاستخدام Web Components، ولكن في الواقع، ما عليك سوى استخدام أدوات الملء.
لتوضيح هذا الاختلاف بشكل أكبر، يتم نقل مكونات الpolyfill إلى webcomponents.org، وتم الآن إعادة تسميتها إلى webcomponents.js
.

تم اتخاذ هذا الإجراء لمساعدة مؤلفي المكتبات الآخرين في الاستفادة من وحدات الملء بدون أي التباس. سيواصل فريق Polymer المساهمة في polyfills، ولكن نأمل أن يؤدي هذا التغيير إلى جعله موردًا مشترَكًا للمنتدى.
النتائج
ما هي نتائج كل هذه التغييرات؟
السرعة
أصبح إطار عمل Polymer أسرع 5 مرات في Chrome، وأسرع 8 مرات في Safari.

حجم الملف
تم أيضًا تصغير حجم الملف بنسبة %87، من 123 كيلوبايت إلى 15 كيلوبايت (6 كيلوبايت مضغوط بتنسيق gzip).

خارطة الطريق
ستتمّ إجراء بعض التغييرات الأساسية في واجهة برمجة التطبيقات في الإصدار التالي، ما يُشير إليه رقم الإصدار الجديد (0.8)، ولكن يريد الفريق توضيح أنّ هذه التغييرات ليست إعادة كتابة. من المفترض أن يكون نقل مشروعك الحالي من الإصدار 0.5 من Polymer إلى الإصدار 0.8 أمرًا بسيطًا إلى حدٍ ما.
وقد وضع فريق Polymer أيضًا خارطة طريق لمنح المطوّرين المزيد من الوضوح حول الإصدارات القادمة.

تتوفّر الآن معاينة الإصدار 0.8 كفرع على GitHub (على الرغم من أنّه لا يزال يتم تطويره بشكل نشط جدًا ولا تتوفّر له مستندات). من المخطّط طرح الإصدار التجريبي الرسمي 0.9 في الربع الأول من العام 2015، وطرح الإصدار 1.0 في وقت ما من الربع الثاني.
انتهاء التجربة
مع كل التغييرات الأخيرة في Polymer، يضع الفريق الذي يقف وراءه الأساس ليصبح Web Components جزءًا لا يتجزأ من حِزمة كل مطوّر. إذا كنت حديث العهد باستخدام Web Components، هذا هو الوقت المناسب للاطّلاع على هذه التقنيات التحويلية والتعرّف عليها. إذا كنت تعمل حاليًا مع المكوّنات (وPolymer)، يبدو المستقبل مشرقًا حقًا. يمكنك متابعة مدوّنة Polymer للاطّلاع على آخر الأخبار، والاشتراك في القائمة البريدية الخاصة بها لطرح الأسئلة أو الملاحظات. مع أطيب التحيّات،