خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

WebAssembly چیست؟

WebAssembly سرعت بومی را به مرورگر می آورد و شما مجبور نیستید زبان مورد علاقه خود را کنار بگذارید!

برای بیش از دو دهه، جاوا اسکریپت تنها زبان برنامه نویسی بود که می توانست در مرورگرها اجرا شود. زبان‌های دیگر مانند Python، C++ و Go عمدتاً برای ساخت سمت سرور برنامه‌ها و سرویس‌های وب بودند.

جاوا اسکریپت خیلی خوب عمل کرد، اما بسیاری از زبان های برنامه نویسی دیگر سریعتر هستند. مزایای بسیاری وجود دارد که برنامه های وب می توانند با اجرای زبان های برنامه نویسی دیگر و کارآمدتر به طور مستقیم در مرورگر از آنها بهره ببرند.

WebAssembly یک گزینه کارآمد، باز و ایمن ارائه می دهد که بخشی از پلت فرم وب باز است. می توانید از آن برای ساخت برنامه هایی که بر روی مرورگرها، سرورها و در محیط های دیگر اجرا می شوند استفاده کنید.

معرفی WebAssembly

معرفی WebAssembly

WebAssembly (WASM) یک زبان کارآمد، سطح پایین و قابل حمل استاندارد W3C است. فرمت کد و رابط‌هایی را برای برنامه‌ها برای تعامل با پلتفرم‌های وب تعریف می‌کند.

شما می توانید اکثر زبان های برنامه نویسی را در قالب کد باینری WebAssembly کامپایل کنید. مرورگرها می توانند کد WASM حاصل را دقیقاً همانطور که با جاوا اسکریپت معمولی انجام می دهند تفسیر و اجرا کنند. همچنین می توانید WebAssembly را در کنار کد جاوا اسکریپت برای عملکرد بالاتر برنامه و قابلیت همکاری بین این دو اجرا کنید.

WebAssembly در سال 2019 با پشتیبانی از بسیاری از زبان های برنامه نویسی به استاندارد W3C تبدیل شد. به گزارش Made with WebAssembly، در حال حاضر پروژه های محبوب بسیاری وجود دارد که از WebAssembly برای ارسال نرم افزار سریع و ایمن به کاربران خود استفاده می کنند.

مطلب مرتبط:   7 جایگزین ChatGPT برای برنامه نویسی خودکار

بسیاری از زبان های برنامه نویسی، از جمله آنهایی که مخصوص سمت سرور هستند، از WebAssembly پشتیبانی می کنند. اینها عبارتند از Rust، Go، Python، C++، TypeScript، Java، PHP و Ruby. برای آشنایی با زبان های پشتیبانی شده توسط WebAssembly و بسته هایی که می توانید با آنها استفاده کنید، منبع عالی-wasm-langs را بررسی کنید.

در اینجا یک نمونه برنامه WebAssembly از Tutorials Point است که حداکثر دو عدد صحیح را برمی گرداند:

نمونه کد WASM

نحو WebAssembly در مقایسه با جاوا اسکریپت نسبتاً پرمخاطب است، اما این نباید مشکلی ایجاد کند. شما نیازی به یادگیری نحو نخواهید داشت زیرا WebAssembly هدف کامپایل برای برنامه هایی است که به زبان دلخواه خود می نویسید.

WebAssembly چگونه کار می کند

WASM به عنوان یک هدف تلفیقی برای سایر زبان‌های برنامه‌نویسی وجود دارد که می‌توانند به آن تبدیل شوند. می توانید به زبان برنامه نویسی مورد علاقه خود بنویسید و کد منبع را در بایت کد WASM که روی کلاینت اجرا می شود، کامپایل کنید. ترجمه آن به کد ماشین بومی به این معنی است که می تواند با سرعت بالا، معمولا سریعتر از جاوا اسکریپت اجرا شود.

یکی از ویژگی های حیاتی WASM قابلیت همکاری جاوا اسکریپت است. می توانید ماژول های WASM را به یک برنامه وب وارد کنید و عملکردهای WASM را برای استفاده در کد جاوا اسکریپت در معرض دید قرار دهید. فریم ورک های جاوا اسکریپت می توانند از WASM برای عملکرد بالاتر استفاده کنند.

WASM از یک مدل اجرای سندباکس مشابه جاوا اسکریپت استفاده می کند. WASM با استفاده از ABI (رابط باینری برنامه) مانند رابط سیستم WebAssembly که دسترسی به منابع و سایر خدمات سیستم را بر اساس نیازهای برنامه فراهم می کند، با ماشین میزبان تعامل می کند.

مطلب مرتبط:   چگونه انیمیشن های بومی با واکنش بهتر بسازیم

بسیاری از مرورگرهای مدرن از WASM پشتیبانی می کنند، از جمله کروم، مایکروسافت اج، موزیلا فایرفاکس، اپرا و سافاری. زبان‌هایی مانند Go و Rust از WASM پشتیبانی می‌کنند.

چرا وب به WebAssembly نیاز دارد؟

ویژگی های WebAssembly

جاوا اسکریپت از نظر طراحی عملکرد محدودی دارد. از زمانی که به عنوان یک زبان برنامه نویسی برای وب شروع به کار کرد، یکی از سریع ترین یا کارآمدترین زبان ها نیست. اگرچه زمان‌های اجرا زیادی وجود دارد که جاوا اسکریپت با سرعت‌های متفاوت اجرا می‌شود، اما زبان‌های سریع‌تر و کارآمدتری وجود دارد که WebAssembly می‌تواند برای موارد استفاده مانند بازی، ویدیو و موسیقی به وب بیاورد.

WebAssembly همچنین قابلیت حمل و انعطاف پذیری بیشتری را برای زبان هایی که در وب اجرا نمی شوند ارائه می دهد. معرفی زبان‌های بیشتر به وب (معروف‌ترین پلتفرم منبع باز) باید به طور کلی منجر به بهبود تجربه شود.

پذیرش WebAssembly سریع است

بسیاری از شرکت ها و توسعه دهندگان در حال ساخت برنامه های کاربردی با WebAssembly هستند. Google، Dropbox و Cloudflare به طور فعال از WebAssembly در برخی از برنامه های خود استفاده می کنند.

WebAssembly در میان توسعه دهندگان Python، C++ و Rust محبوب است. توسعه دهندگان پایتون معمولا از Pyoidide و PyScript، توسعه دهندگان C++ و Emscripten و توسعه دهندگان Rust با Percy، Yew، Sycamore، MoonZoon و چارچوب Seed استفاده می کنند.