هل يمكن مقارنة لغة Assembly مع Web Assembly؟

علي الشيخ • منذ 5 سنوات

السلام عليكم ورحمة الله وبركاته

هل يمكن مقارنة لغة Assembly مع Web Assembly؟

مثلاً.. هل استطيع بناء نظام تشغيلي كامل من الصفر باستخدام Web Assembly بدون الحاجة إلى لغة Assembly؟

كلمات دليلية: assembly web wasm

الإجابة الصحيحة

محمد ماهر • منذ 5 سنوات

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

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

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

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

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

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

 

الإجابات (1)

محمد ماهر • منذ 5 سنوات
الإجابة الصحيحة
مميز

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

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

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

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

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

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

 

علي الشيخ: شكرًا على الإجابة.. يعني لو بغيت ابني نظام متصفح ونواته من الصفر فيه إمكانية

محمد ماهر: @علي الشيخ ماذا تقصد بنظام متصفح؟ تقصد برنامج مثل كروم؟

علي الشيخ: لو بنيت نظام عبارة عن متصفح لا اكثر ولا اقل، مثل نظام كروم

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

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !