WebAssembly چیست؟ وب اسمبلی در طراحی سایت
WebAssembly (Wasm) d یک فرمت اجرایی باینری است که امکان اجرای برنامههای با کارایی بالا را در مرورگرهای وب با سرعتی نزدیک به سرعت اپلیکیشنهای واقعی را فراهم میکند. این فرمت، امکان کدنویسی با زبانهای C، C++، Rust و ... در محیط مرورگر را امکانپذیر میکند. قبل از WebAssembly، وب تا حد زیادی برای عملکردهای سمت کلاینت به جاوا اسکریپت محدود بود. جاوااسکریپت مخصوص با پیشرفتهای اخیر، برای بسیاری از عملکردها عالی بود اما برای بارهای محاسباتی سنگین مانند ویرایش ویدیو، رندر سه بعدی یا شبیهسازیهای علمی همچنان ناکارآمد است.
Wasm قابلیتهایی را که پیش از این در وب غیرممکن یا غیرعملی بودند، در دسترس قرار میدهد. برای نمونه، Figma، یک ابزار طراحی مشارکتی از WebAssembly برای اجرای موتور رندر برداری استفاده میکند و پاسخگویی شبیه به دسکتاپ را ارائه میدهد. مثال دیگر AutoCAD Web است که با کامپایل هسته C++ خود به Wasm، نرمافزار CAD پیچیده را به مرورگرها میآورد. ابزارهای ویرایش عکس مانند Squoosh.app از Wasm برای اعمال الگوریتمهای پیشرفته فشردهسازی تصویر (مانند WebP، AVIF) استفاده میکنند که در در عمل با جاوااسکریپت یا غیرممکن یا بسیار کند خواهد بود.
در ادامه بیشتر با این فناوری جذاب که قابلیتهای مرورگرها را به سطحی بالاتر میبرد آشنا میشویم.

مزیتهای استفاده از WebAssembly
WebAssembly چند مزیت اصلی دارد:
- سرعت اجرای بسیار بالا در مقایسه با کدهای برنامهنویسی قدیمی مانند جاوااسکریپت
- حجم کم کدهای کامپایل شده نسبت به کدهای جاوااسکریپت
- عدم نیاز به کامپایل مجدد در زمان اجرا
- امکان مخفی کردن کدهای سطح بالا توسط برنامهنویسان
- امکان برنامهنویسی در محیط مرورگر با زبانهای مختلف و مورد علاقه و در نهایت کامپایل آن
محدودیتهای WebAssembly
WebAssembly با هدف ایجاد مزیت سرعت در کنار جاوااسکریپت طراحی شده است و قصد ندارد جایگزین جاوااسکریپت شود. به همین دلیل محدودیتهایی نیز دارد که مهمترین آن، عدم دسترسی به DOM است. به عبارت دیگر، کدهای مدیریت و کنترل صفحات وب میبایست توسط جاوااسکریپت نوشته شوند و از سرعت و تواناییهای wasm جهت انجام محاسبات یا پردازشهای سنگین به ویژه در نرمافزارها یا بازیهای تحت وب کمک گرفته شود.
استفاده از WebAssembly در طراحی سایت
استفاده از عملکردهای وب اسمبلی با تگ اسکریپت به طور مستقیم در مرورگر امکانپذیر نیست و در عوض کدهای جاوااسکریپت در زمانی که به آن نیاز دارند، میبایست کتابخانههای مورد نظر خود را بارگزاری کنند و انجام محاسبات مورد نظرشان را با کمک Wasm انجام دهند. در نهایت هم نتیجهی محاسبات به کاربر نمایش داده میشود.
پشتیبانی از WebAssembly در مرورگرهای وب
در حال حاضر اغلب مرورگرهای مدرن از این ویژگی پشتیبانی میکنند و برای ساخت اپلیکیشنهای حرفهای تحت وب میتوان از Wasm استفاده کرد. همیشه جزئیات کوچکی هستند که ممکن است باعث ناسازگاریهایی شوند ولی به طور کلی وضعیت پایداری این تکنولوژی به سطح خوبی رسیده است و سایتهای بزرگی با کمک وب اسمبلی در حال خدمترسانی به کاربران هستند.
فرمت متنی WebAssembly
مشابه آنچه در زبان اسمبلی وجود دارد، یک زبان سطح پایین با نام WebAssembly Text نیز در حال توسعه است که میتواند به صورت مستقیم به WebAssembly کامپایل شود. تولید WebAssembly Text میتواند به صورت دستی توسط برنامهنویسان یا از تبدیل یک زبان سطح بالا مانند Rust به انجام برسد.
بسیار جالب
عالی، ممنون از مطلب جالبتون
سلام یه سوال داشتم وب اسمبلی در بک اند سایت استفاده میشه یا فرانت اند
با سلام
ویژگی مهم وب اسمبلی امکان استفاده از آن در محیط مرورگر است. در محیط بکاند محدودیتها به این شکل وجود ندارند که نیازی به این فناوری باشد.