تم إصدار Firefox 52 مع دعم WebAssembly


عرض ثلاثي الأبعاد لعرض Zen Garden التجريبي في Firefox 52 مع دعم WebAssembly

قامت Mozilla بإصدار Firefox 52 ، أحدث متصفح يدعم نظام التشغيل Windows XP. تم إجراء عدد من التغييرات المهمة : تم تبسيط الاتصال بنقاط الاتصال ، حيث يجب عليك أولاً تسجيل الدخول إلى المتصفح ، وتظهر تحذيرات الخطر إذا طلبت الصفحة كلمة مرور لاتصال غير آمن (وليس HTTPS) ، واختفى دعم مكونات NPAPI الإضافية (باستثناء Flash ، وسيظل الدعم الكامل في بنية ESR) أغلق 28 نقطة ضعف .

ولكن لا شيء يمكن مقارنته مع الابتكار الأساسي والأساسي - دعم لغة البرمجة ذات المستوى المنخفض WebAssembly (wasm) مثل المجمع ، والذي يُطلق عليه أحد أهم الابتكارات لمنصة الويب في العقد الماضي. هذا ما كانت تفتقده JavaScript.

تجميع ويب



يشرح المطورون سبب الحاجة إلى إنشاء WebAssembly . والحقيقة هي أن جافا سكريبت تم تصورها في الأصل على أنها لغة خفيفة الوزن للنصوص البسيطة. لم يتخيل أحد ما سوف ينمو وكيف سيبدأ تطبيقه. تم اختراعه للمبتدئين في البرمجة - لأشياء بسيطة مثل كتابة نموذج على صفحة ويب.

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

كانت Mozilla أول من ينضج قبل تطوير نوع من الآلة الافتراضية في متصفح حيث يمكنك تشغيل رمز منخفض المستوى - وقبل بضع سنوات تم إصدار asm.js كعرض توضيحي (جربت Google واجهة برمجة تطبيقات Native Client API ). أثبتت لغة asm.js الفرعية أنها جيدة جدًا لدرجة أنه أصبح واضحًا: نحن بحاجة إلى توحيد الجهود مع جميع أكبر شركات التطوير لمشروع مشترك سيحرك الويب إلى الأمام.

يمكن أن تعمل WebAssembly ذات اللغة منخفضة المستوى جنبًا إلى جنب مع JavaScript وتسمح بتشغيل تطبيقات الويب بأداء أكبر بكثير - تقريبًا مثل التطبيقات الأصلية في نظام التشغيل.

الآن في المتصفح ، يمكنك تشغيل ألعاب ثلاثية الأبعاد عالية الأداء ، وأنظمة التصميم بمساعدة الكمبيوتر (CAD) ، ومحرري الفيديو ، ومحرري الرسوم ، والمرئيات العلمية ، والحوسبة كثيفة الموارد ، وترميز الفيديو - أي شيء.

بمرور الوقت ، من المرجح أن يبدأ العديد من تطبيقات الويب الحالية - البريد والشبكات الاجتماعية ومحرري النصوص - وأطر JavaScript في استخدام WebAssembly ، مما سيزيد بشكل كبير من سرعة التنزيل ويزيد من أدائها أثناء العمل.

على عكس الطرق الأخرى مثل Flash ، والتي تتطلب تثبيت مكون إضافي في المتصفح من أجل تشغيل التطبيقات بسرعة مماثلة للتطبيقات الأصلية ، فإن WebAssembly يتناسب تمامًا مع النظام الأساسي القياسي للويب. إنه معيار مفتوح ومتوافق مدمج في المتصفحات. هذا يعني أنه يمكن للمطورين دمج مكتبات WebAssembly للحوسبة كثيفة المعالجة المركزية (الضغط ، كشف الوجه ، الفيزياء) مباشرة في تطبيقات الويب الموجودة التي تستخدم JavaScript.

WebAssembly هو معيار مفتوح تم تطويره بواسطة Mozilla و Google و Microsoft و Apple. كما ترى ، تمثل هذه المجموعة مطوري المتصفحات الأربعة الأكثر شيوعًا ، لذلك يمكنك الاعتماد على أن تصبح wasm كمعيار عالمي. تعد Google بتنفيذ دعم WebAssembly في الإصدار التالي من Chrome (57) ، تعمل Microsoft بالفعل على تنفيذ في Edge.

ستصبح اللغة ذات المستوى المنخفض نوعًا من الإضافة إلى JavaScript ، وفي النهاية يجب أن تعمل في كل مكان تعمل فيه JS: في جميع المتصفحات وفي جميع بيئات التشغيل مثل Node.js.

من سيستفيد من استخدام WebAssembly؟ الأمر لا يتعلق فقط بكتابة تطبيقات جديدة في wasm. من خلال المترجمين مثل Emscripten ، يمكن نقل الألعاب الكاملة والتطبيقات الأصلية الجاهزة إلى الويب. سيتم تنفيذ كود C / C ++ المستخرج باستخدام هذا المترجم في المتصفح بنفس سرعة التطبيق الأصلي تقريبًا. بالإضافة إلى C / C ++ ، يوفر Rust أيضًا دعمًا أوليًا لـ WebAssembly.

على سبيل المثال ، يمكنك تشغيل عرض Zen Garden التجريبي (يتطلب متصفح Firefox 52 ، فقط إصدار سطح المكتب هو المدعوم حاليًا).


سوف تستدعي وظائف JavaScript وظائف WebAssembly والعكس بالعكس. أي أنه يمكنك الكتابة في برنامج واحد بلغة جافا سكريبت عالية المستوى وأحيانًا التبديل إلى C / C ++ / Rust حسب الحاجة.

سيبدأ المطورون في توزيع وإعادة استخدام وحدات WebAssembly منخفضة المستوى دون الحاجة إلى فهم أجهزتهم ، حيث يستخدمون الآن مكتبات JavaScript مصغرة.

تشير Mozilla إلى أنه وفقًا لمستوى إعادة استخدام التعليمات البرمجية وهندسة البرمجيات ، بدأ الجدار بين التطبيقات الأصلية وتطبيقات الويب في الانهيار ، وهذه ليست سوى البداية. ستستمر أدوات المطور ، والمصححات ، والمترجمون في التطور ، وكذلك توافق WebAssembly ، والأداء ، والوظائف. على سبيل المثال ، تتمثل خطة موزيلا الآن في تنفيذ دعم تعدد مؤشرات الترابط والتزامن في SIMD.

يقول David Bryant ، مدير تطوير الأنظمة الأساسية في Mozilla: "بمعنى ما ، تعمل WebAssembly على تغيير ما يعنيه مطور الويب ، حيث إنها تغير الخصائص الأساسية للويب."

في الواقع ، أصبح من الممكن الآن نقل برامج C / C ++ للتنفيذ في مستعرض ، وفي المستقبل القريب يمكن القيام بنفس الشيء للغات التي تتم كتابة تطبيقات الجوال - Java ، Swift ، C #. كلهم سيصبحون متوافقين مع منصة الويب القياسية. اتضح أنه إلى حد ما ، سيصبح جميع المبرمجين مطورين ويب.

Source: https://habr.com/ru/post/ar402173/


All Articles