لأكثر من عقدين ، كانت JavaScript هي لغة البرمجة الوحيدة التي يمكن تشغيلها في المتصفحات. لغات أخرى مثل Python و C ++ و Go كانت أساسًا لبناء جانب الخادم لتطبيقات وخدمات الويب.
كان أداء JavaScript جيدًا ، لكن العديد من لغات البرمجة الأخرى أسرع. هناك العديد من الفوائد التي يمكن أن تستفيد منها تطبيقات الويب من خلال تشغيل لغات برمجة أخرى أكثر فاعلية مباشرة في المتصفح.
يوفر WebAssembly خيارًا فعالاً ومفتوحًا وآمنًا يمثل جزءًا من النظام الأساسي للويب المفتوح. يمكنك استخدامه لإنشاء تطبيقات تعمل على المتصفحات والخوادم وفي بيئات أخرى.
تقديم WebAssembly
WebAssembly (WASM) هي لغة W3C فعالة ومنخفضة المستوى ومحمولة. يحدد تنسيق رمز وواجهات للبرامج للتفاعل مع الأنظمة الأساسية على الويب.
يمكنك تجميع معظم لغات البرمجة في تنسيق التعليمات البرمجية الثنائية لـ WebAssembly. يمكن للمتصفحات تفسير وتشغيل رمز WASM الناتج تمامًا كما تفعل مع JavaScript العادي. يمكنك أيضًا تشغيل WebAssembly جنبًا إلى جنب مع كود JavaScript للحصول على أداء أعلى للتطبيق وإمكانية التشغيل البيني بين الاثنين.
أصبح WebAssembly معيارًا W3C في عام 2019 ، مع دعم في العديد من لغات البرمجة. وفق مصنوع من WebAssembly، هناك بالفعل العديد من المشاريع الشائعة التي تستخدم WebAssembly لشحن برامج سريعة وآمنة لمستخدميها.
تدعم العديد من لغات البرمجة ، بما في ذلك تلك الخاصة من جانب الخادم ، WebAssembly. وتشمل هذه Rust و Go و Python و C ++ و TypeScript و Java و PHP و Ruby. تفحص ال رائع-wasm-langs الموارد للتعرف على اللغات المدعومة من WebAssembly والحزم التي يمكنك استخدامها معها.
هذا مثال برنامج WebAssembly من Tutorials Point التي تُرجع عددين صحيحين كحد أقصى:
يعتبر بناء جملة WebAssembly مطولًا نسبيًا مقارنةً بجافا سكريبت ، ولكن لا ينبغي أن يمثل ذلك مشكلة. لن تحتاج إلى تعلم بناء الجملة لأن WebAssembly سيكون هدف التجميع للبرامج التي تكتبها بلغتك المفضلة.
كيف يعمل WebAssembly
يوجد WASM كهدف تجميع للغات البرمجة الأخرى للترجمة إليه. يمكنك الكتابة لغة البرمجة المفضلة لديك وتجميع كود المصدر إلى WASM bytecode الذي يعمل على العميل. تعني ترجمته إلى رمز الجهاز الأصلي أنه يمكن تشغيله بسرعة عالية ، وعادةً ما تكون أسرع من JavaScript.
تعد إمكانية التشغيل البيني لـ JavaScript إحدى الميزات الهامة لـ WASM. يمكنك استيراد وحدات WASM النمطية إلى تطبيق ويب وفضح وظائف WASM لاستخدامها في كود JavaScript. يمكن أن تستفيد أطر عمل JavaScript من WASM للحصول على أداء أعلى.
يستخدم WASM نموذج تنفيذ في وضع الحماية مشابه لجافا سكريبت. يتفاعل WASM مع الجهاز المضيف باستخدام ABIs (Application Binary Interface) مثل ملف واجهة نظام WebAssembly التي توفر الوصول إلى الموارد وخدمات النظام الأخرى بناءً على متطلبات البرنامج.
تدعم العديد من المتصفحات الحديثة WASM ، بما في ذلك Chrome و Microsoft Edge و Mozilla Firefox و Opera و Safari. لغات مثل Go و دعم الصدأ WASM خارج الصندوق.
لماذا يحتاج الويب WebAssembly
وظائف JavaScript محدودة حسب التصميم. انها ليست واحدة من اللغات الأسرع أو الأكثر أداءً منذ أن بدأت كلغة برمجة نصية للويب. على الرغم من وجود العديد من أوقات التشغيل حيث يتم تشغيل JavaScript بسرعات متفاوتة ، إلا أن هناك أوقات تشغيل أسرع وأكثر اللغات عالية الأداء التي يمكن أن يوفرها WebAssembly للويب لاستخدامها في حالات مثل الألعاب ومقاطع الفيديو و موسيقى.
يوفر WebAssembly أيضًا مزيدًا من قابلية النقل والمرونة للغات التي لا تعمل على الويب. يجب أن يؤدي تقديم المزيد من اللغات إلى الويب (النظام الأساسي مفتوح المصدر الأكثر شيوعًا) إلى تحسين التجربة بشكل عام.
اعتماد WebAssembly يسير بخطى سريعة
تعمل العديد من الشركات والمطورين على إنشاء تطبيقات باستخدام WebAssembly. تستخدم Google و Dropbox و Cloudflare بنشاط WebAssembly في بعض تطبيقاتها.
يحظى WebAssembly بشعبية كبيرة بين مطوري Python و C ++ و Rust. عادةً ما يستخدم مطورو Python Pyoidide و PyScript ومطوري C ++ ومطوري Emscripten و Rust مع إطار عمل Percy و Yew و Sycamore و MoonZoon و Seed.