ما هو WASM (تجميع الويب)؟

متقدمDec 25, 2023
WebAssembly هو إطار تطوير ويب مفتوح المصدر. تعرف على المزيد حول ماهيتها وتاريخها وكيفية عملها وفوائدها.
ما هو WASM (تجميع الويب)؟

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

ما هي جمعية الويب (WASM)؟

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

تم تصميم WebAssembly ليكون بمثابة هدف تجميع لأي لغة، بما في ذلك JavaScript. وهذا يعني أنه يمكن للمطورين تجميع العديد من لغات البرمجة مثل C/C ++ و Go و Rust وغيرها الكثير في معيار واحد يمكن تشغيله محليًا تقريبًا في المتصفحات كبديل قريب لجافا سكريبت.

يمكن للمطورين الاستفادة من Web Assembly لحالات الاستخدام عالية الأداء مثل الألعاب وتدفق الموسيقى وتحرير الفيديو وتطبيقات التصميم بمساعدة الكمبيوتر (CAD). اعتمدت العديد من خدمات الويب بالفعل WASM، على سبيل المثال، Google Earth و Figma.

تاريخ تجميع الويب

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

كان الإصدار التالي هو دعم المتصفح، حيث تضمنت المتصفحات الرئيسية مثل Chrome و Firefox و Safari و Edge WebAssembly. اكتشف المطورون فائدة التكنولوجيا خارج متصفحات الويب وبدأوا في استكشاف استخدام WASM في مجال البيئات على جانب الخادم للحوسبة عالية الأداء.

كيف يعمل تجميع الويب؟

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

بمجرد إنشاء AST، يأخذ مترجم المحرك AST ويحوله إلى Bytecode، وهو تمثيل وسيط للكود. ثم يأخذ مترجم المحرك Bytecode ويحوله إلى كود يمكن للآلات تشغيله على معالجها.

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

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

ميزات WebAssembly

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

معيار W3C

بعد ترسيخ الثقة في فعاليتها ومصداقيتها، تمت إضافة WebAssembly إلى اللغات الرسمية للويب. توجد حاليًا أربع لغات، HTML. CSS وجافا سكريبت والآن WebAssembly. لذلك، يعتبر WebAssembly الآن معيار WC3.

السرعة والكفاءة

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

الأمان

يقوم الجهاز الظاهري بمسح كود WebAssembly والتحقق من صحته وتنفيذه داخل صندوق حماية آمن للذاكرة. تقيد البيئة المضمنة الوصول إلى الموارد المحلية، بما في ذلك نظام الملفات أو منافذ الشبكة. هذا يعني أن كود WebAssembly الذي تم الحصول عليه من الويب ويعمل في المتصفح محدود للغاية عند التعامل مع موارد الأجهزة والبرامج.

المصدر المفتوح

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

تجميع الويب والإيثيريوم

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

وقد أبدت إيثريوم اهتمامًا بـ WebAssembly وتقود الجهود المبذولة لتطوير إيثريوم ويب أسيمبلي (EWASM)، وهي إعادة التصميم المقترحة لآلة إيثريوم الافتراضية. بمجرد النجاح، من المتوقع أن تكون EWASM أكثر كفاءة وتسمح للمطورين بكتابة الرموز بعدة لغات بسبب علاقاتها مع WASM. ستعمل EWASM مثل EVM كلغة كود بايت تم تجميعها مسبقًا والتي سيتم تفسيرها في عقد Ethereum.

مع هذا، ستصبح dApps أكثر كفاءة في الإنتاج. سيؤدي دمج WASM إلى جعل تطوير العقود الذكية أكثر سهولة للأشخاص الذين اعتادوا بالفعل على اللغات الشائعة مثل Rust and Go. يؤدي هذا في النهاية إلى القضاء على حاجة المطورين إلى تعلم كيفية الكتابة بصلابة قبل إنشاء تطبيقات مفيدة على Ethereum.

مشاريع بلوكتشين التي تستفيد من WebAssembly

على الرغم من أن WASM لم يتم تطويره بالكامل لأنشطة blockchain، إلا أن بعض المشاريع تستخدمه بالفعل لتحسين وظائف منصاتها. على سبيل المثال:

الكون

Cosmos عبارة عن بلوكشين تم تطويره لتسهيل الاتصال بين دفاتر الأستاذ الموزعة دون الحاجة إلى الانتظار على خادم مركزي. يُطلق عليها شعبياً اسم إنترنت البلوكشين، وكانت واحدة من أوائل سلاسل البلوكشين التي استخدمت WASM كمكدس البناء الرئيسي لها. ويقومون بتنفيذ CosmWASM، وهو إطار لبناء العقود الذكية في WASM لبروتوكول Cosmos SDK وTendermint BFT و IBC لتطوير بلوكتشين الأصلي الخاص بهم.

بولكادوت

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

بالقرب من البروتوكول

بروتوكول Near هو بلوكشين عام تم إنشاؤه لبناء تطبيقات لامركزية باستخدام WebAssembly. تستخدم Near WebAssembly كطريقة جيدة للاستفادة من تقنية الويب لتحسين الأداء وقابلية النقل. لقد قاموا بتطبيق AssemblyScript بلغتهم حيث وجدوا أنه خيار أكثر قابلية للحمل ويوفر أيضًا وصولاً سهلاً لمطوري الويب.

تجميع الويب مقابل جافا سكريبت

JavaScript هي لغة برمجة عالية المستوى ومترجمة دعمت تطوير الويب لعقود. تم تطويره لإضافة التفاعل إلى صفحات الويب ويتم عرضه على جانب العميل بواسطة متصفحات الويب. على مر السنين، نمت شعبية اللغة بسبب سهولة استخدامها واعتمادها على نطاق واسع.

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

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

تجميع الويب مقابل الصدأ

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

تطوير الويب

يتم استخدام WASM بشكل أساسي في تطوير الويب، مما يتيح تنفيذ التعليمات البرمجية على متصفحات الويب، بما في ذلك JavaScript. في الوقت نفسه، تعد Rust لغة متعددة الأغراض لها العديد من التطبيقات، بما في ذلك برمجة النظام وتطوير الألعاب وغيرها الكثير.

خصائص النحو واللغة

WASM ليست لغة برمجة ولكنها صيغة تعليمات ثنائية ويمكن استهدافها بلغات مثل C و C ++ و Rust. من ناحية أخرى، فإن لغة Rust هي لغة لها تركيبتها وميزاتها مثل الاقتراض والملكية وغيرها الكثير.

إدارة الذاكرة

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

التزامن

تم تجهيز Rust بدعمها الخاص لبرمجة التزامن من خلال نظام الملكية الخاص بها، والذي يسمح للمطورين بكتابة كود آمن ومتزامن دون التعرض لخطر سباقات البيانات. على عكس Rust، لا يحتوي WASM على مثل هذه الميزات؛ ومع ذلك، يمكنه الاستفادة من ميزات التزامن في البيئة المضيفة.

أفضل الموارد للبدء مع WebAssembly

عند تعلم كيفية استخدام WASM، توفر بعض الدورات التدريبية أفضل المعرفة للمبتدئين الذين يتطلعون إلى إنشاء مشاريع WASM بمجموعة متنوعة من اللغات. بعض هذه الدورات تشمل:

أوديمي

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

تمنح الدورة المبتدئين فهمًا لماهية WebAssembly وكيف تؤثر على تطوير الويب. ستتعلم أيضًا كيفية تحميل وحدات WebAssembly وتشغيلها باستخدام واجهات برمجة تطبيقات متصفح Java Script الأصلية.

رؤية متعددة

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

معسكر فريكود

تقدم هذه الدورة التدريبية المجانية على WebAssembly للمبتدئين تفصيلاً لما يدور حوله WASM. يعلمك كيفية كتابة التعليمات البرمجية وتجميعها وتضمينها وإنشاء مثيل لها. يوفر دليلًا خطوة بخطوة حول كيفية تجميع كود C ++ في WASM.

الاستنتاج

تقف WebAssembly حاليًا في طليعة تطوير الويب، كما أن سرعتها وأمانها وقدرتها على التكيف هي ميزات رئيسية يعتقد المطورون أنها ستؤدي إلى عالم جديد للتطبيقات اللامركزية. نظرًا لأن المزيد من المنتجات تتطلع إلى الاستفادة من WASM، فإن أبواب المستقبل حيث يتم تطوير العقود الذكية وتأمينها بسهولة باللغات التي يعرف المطور أنها في متناول اليد.

Autor: Tamilore
Traductor: Cedar
Revisor(es): Matheus、Wayne、Ashley He
* La información no pretende ser ni constituye un consejo financiero ni ninguna otra recomendación de ningún tipo ofrecida o respaldada por Gate.io.
* Este artículo no se puede reproducir, transmitir ni copiar sin hacer referencia a Gate.io. La contravención es una infracción de la Ley de derechos de autor y puede estar sujeta a acciones legales.
Empieza ahora
¡Regístrate y recibe un bono de
$100
!
Crea tu cuenta