ماهو ال Web Assembly ؟ هل نقول وداعاً Javascript

أولًا، دعنا نوضح ماهي تقنية الويب أسمبلي (WebAssembly) (اختصار WASM):

سابقًا، كانت متصفحات الانترنت لا تدعم إلا لغة الجافاسكربت، هذا يعني أنك إن أردت تطوير واجهة ويب (Fron-End) فكان سيتحتّم عليك استخدام الجافاسكربت ولا يوجد خيار آخر.
تقنية الويب اسمبلي (WASM) جاءت لتغير هذا الوضع، حيث سيصبح بإمكانك تطوير واجهات الويب باستخدام لغات أخرى مثل Kotlin, TypeScript, java, C#, Go, Rust و ++C/C و غيرها.


ما الفائدة أو الهدف المرجوّ من تقنية الويب اسمبلي؟


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


كيف تعمل تقنية الويب اسمبلي WASM؟


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


و الآن لنعد لسؤالك الأساسي:
“هل أستطيع بناء نظام تشغيلي كامل من الصفر باستخدام الويب اسمبلي بدون الحاجلة إلى لغة أسمبلي؟”


سيكون نظام تشغيل داخل المتصفح فقط كما وضحتُ سابقًا، و يمكنك بناء أي شيء باستخدام ويب اسمبلي خاصةً أنها تدعم لغات إدارة الذاكرة.
“هل يمكن مقارنة الويب اسمبلي بلغة أسمبلي؟”
أفضل مقارنة أو تشبيه للويب اسمبلي هي آلة جافا الافتراضية JVM.


ملاحظة: الويب اسمبلي لم تأتِ لتزيح الجافا سكربت تمامًا، بل يمكن اعتبار الويب اسمبلي مكمل للجافاسكربت، حيث أن الكثير من صفحات الويب الحالية مازالت مكتوبة بالجافاسكربت، و أيضًا جدير بالذِّكْر أن المتصفحات القديمة لا تدعم تقنية جديدة جدًا كالويب اسمبلي، المتصفحات التي تدعمها حاليًا هي كروم، ايدج، سفاري، و فايرفوكس.