اینترنت اسمبلی (WebAssembly) چیست؟
تعریف و تمجید کردن اینترنت اسمبلی فعالیت سادگی وجود ندارد. به همین برهان متاسفانه این تصورات خطا رایج گردیده که Wasm به عبارتی جاوا اسکریپت یا این که سی پلاس پلاس میباشد یا این که تنها به یکی آن دو گویش نرم افزارنویسی مربوط میگردد. البته هیچکدام از آن تصورات صحیح وجود ندارد. برای اینکه بشود اینترنت اسمبلی را خیلی بی آلایش و پرنور تمجید کرد، موردنیاز میباشد نخستین در ارتباط یکسری معنی و لهجه نرم افزارنویسی طراحی سایت اخصاصی کلام زد.
JavaScript: شالوده و مبنا اینترنت صفحه آرایی را لهجه نشانگذاری HTML و CSS و لهجه اپلیکیشننویسی JavaScript می سازند. جاوا اسکریپت لهجه نرم افزارنویسی سطح بالا و تفسیری میباشد که در مرورگر اعمال میگردد. کاربرد مهم جاوا اسکریپت تعاملی و داینامیک کردن صفحه های و همینطور پیادهسازی پیاده سازی UI تارنما میباشد. از جمله، در صورتیکه طراح تارنما بخواهد برنامه کودک به برگهی وب سایت بیفزاید از جاوا اسکریپت به کارگیری مینماید.
Compiled languages: گویشهای نرمافزارنویسی به دو گروه تقسیم می شوند: لهجههای تفسیری یا این که کامپایلری. لهجههای نرمافزارنویسی سطح بالا مثل جاوا اسکریپت و پایتون برای کامپیوتر قابلشعور نیستند. زیرا لهجههای سطح بالا به گویش طبیعی (گویش آدم) مشابه میباشد تا فعالیت کدنویسی برای توسعه و گسترشدهنده ریلکس باشد. پس، پیش از اینکه ماشین (کامپیوتر) بتواند کدها را جاری ساختن نماید، نخستین می بایست آنان را به لهجه خودش، گویش صفر و یکها، ترجمه نماید. پروسه ترجمه ممکن میباشد به دو شکل واقعه بیفتد: خط به خط یا این که یکجا. یعنی یا این که تمامیی کدهای درج شده یکجا به لهجه ماشین کامپایل می شوند یا این که خط به خط تعبیر و تفسیر میگردند.
Binary code: لهجه کامپیوتر یا این که ماشین گویش صفر و یک، گویش باینری یا این که دودویی میباشد. هر چیزی را که بخواهیم کامپیوتر بفهمد می بایست در پوسته صفر و یکها به آن بدهیم. به گویشهایی که با صفر و یک نوشته میشوند لهجههای سطح زیر میگویند زیرا درک کردن آن برای بشر و اپنویس بسیار دشوار و فرصتبر میباشد. درنتیجه، نرمافزارنویسی به لهجههای سطح تحت، مانند لهجه اسمبلی، نیز بسیار دشوار و فرصتبر میباشد.
تعریف و تمجید Wasm
خب مفاهیم بالا چه ارتباطی با Wasm داراست؟ برای ساخت وب سایت نمیشود از لهجههای سطح تحت و دیگر لهجههای سطح بالا به راحتی بهره برد. در حالی که در حالتیکه با کامپیوتر به گویش اساسی (Native) خودش کلام زد، همگیچیز (پردازش و اجرای کدها و درنتیجه سعی تارنما) سریعخیس می شود. علاوه بر آن، استعمال از گویشهای نرمافزارنویسی دیگر (در کنار جاوا اسکریپت) تجهیزات بیشتری را در دست گسترشدهنده و نرم افزارنویس قرار می دهد.
ماشین اینترنت اسمبلی ساخته شد تا به طراحان وب سایت قابلیت دهد که در پیاده سازی وب سایت از گویشهای دیگر هم به کار گیری نمایند. اینترنت اسمبلی کدهای نوشته گردیده به هر گویش سطح بالایی را به کدهای باینری (کدهای اجرایی سطح زیر) تبدیل مینماید. مرورگرها میتوانند کدهای باینری Wasm را، مثل کدهای جاوا اسکریپت، بفهمند و جاری ساختن نمایند.
تا پیش از اینترنت اسمبلی، جاوا اسکریپت فقط گویش اپنویسی آشنا و قابلشعور برای مرورگرها بود. البته امروزه ورژنهای تازه مرورگرها با کدهای Wasm سازگارند و آنها را می شناسند و اعمال مینمایند. از بین تعریف و تمجیدهایی که از اینترنت اسمبلی ارائه شدهاست، تعریف و تمجید developer.mozilla.org از سایر بی آلایشخیس و آسودهدرکخیس میباشد.
اینترنت اسمبلی نوع جدیدی کد میباشد که در مرورگرهای امروزی اعمال میگردد. کدهای اینترنت اسمبلی تجهیزات جدیدی را در چنگ طراح وب سایت قرار میدهد و سعی وبسایت را نیز بسیار عالی و سریعخیس مینماید. اینترنت اسمبلی طوری پیاده سازی نشده میباشد که اپنویس آن را بنویسد. بلکه طوری پیاده سازی گردیده تا کامپایلری کارکشته باشد و کدهای درج شده به گویشهای مبدا مثل C, C++, Rust و … را ترجمه نماید.
مداقه اینترنت اسمبلی در پیاده سازی وب سایت
برای اینکه مداقه کدهای اینترنت اسمبلی مشخص گردد، موردنیاز میباشد مزایا و خصوصیتهای آن در طراحی وب شمرده خواهد شد. اینترنت اسمبلی چه تجهیزات و خصوصیتهایی را در چنگ طراح تارنما می گذارد که تا قبل از سال ۲۰۱۷ و ولادت آن، در ساخت وب سایت قابلیت و امکانپذیر نبوده میباشد؟
پس از اینترنت اسمبلی، طراح وبسایت از هر زبانی که بخواهد می تواند برای کدنویسی استعمال نماید. وی کدها را مینویسد و خیالش شل میباشد که هنگامی آنان را به کدهای Wasm تبدیل کرد، در مرورگر جاری ساختن می گردند. همین خصوصیت دست طراحان وبسایت و اینترنت نرم افزارها را برای گسترشی پروژههای بغرنج و هنگفت (مثل Google Earth یا این که بازیهای سه آجل و تارنماها و اینترنت نرمافزارهای حقیقت مجازی و حقیقت افزوده) گشوده می گذارد.
Wasm همت وب سایت را باصرفه مینماید زیرا کدهایش مدلخیس میباشد، پس سریعخیس در مرورگر اعمال میگردند و فرصت لود کمتری را نیاز داراهستند. این یعنی طراح تارنما میتواند صفحه های غامضخیس و پرجزئیاتتری را پیاده سازی نماید البته نگران فرصت لود شیت و درانتظار شدن استفاده کننده نباشد. ولی مگر جاوا اسکرپیت به عبارتی خصوصیتها را ندارد؟ آری، ولی در تمامیی مفاد و همگیی پروژهها جاوا اسکریپت سرعت و کارایی مورد نیاز را، مخصوصا برای تسکهای خیلی هنگفت ، آماده نمینماید.
صحت دارد که پیشرفتدهنده یا این که اپلیکیشننویس کدهای Wasm را نمینویسد، ولی می تواند آن ها را بخواند و در شکل بایستگی بازنویسی یا این که اصلاح نماید (debugging). از دو فولدر اکستنشن برای ذخیرهی کدهای اینترنت اسمبلی به کارگیری می گردد: wat. که برای داشتن text فرمت کدهاست و wasm. برای فرمت binary کدها. بسطدهنده به راحتی میتواند فرمت متنی را بازنویسی نماید.
اینترنت اسمبلی (WebAssembly) چیست؟
تعریف و تمجید کردن اینترنت اسمبلی فعالیت سادگی وجود ندارد. به همین برهان متاسفانه این تصورات خطا رایج گردیده که Wasm به عبارتی جاوا اسکریپت یا این که سی پلاس پلاس میباشد یا این که تنها به یکی آن دو گویش نرم افزارنویسی مربوط میگردد. البته هیچکدام از آن تصورات صحیح وجود ندارد. برای اینکه بشود اینترنت اسمبلی را خیلی بی آلایش و پرنور تمجید کرد، موردنیاز میباشد نخستین در ارتباط یکسری معنی و لهجه نرم افزارنویسی طراحی سایت اخصاصی کلام زد.
JavaScript: شالوده و مبنا اینترنت صفحه آرایی را لهجه نشانگذاری HTML و CSS و لهجه اپلیکیشننویسی JavaScript می سازند. جاوا اسکریپت لهجه نرم افزارنویسی سطح بالا و تفسیری میباشد که در مرورگر اعمال میگردد. کاربرد مهم جاوا اسکریپت تعاملی و داینامیک کردن صفحه های و همینطور پیادهسازی پیاده سازی UI تارنما میباشد. از جمله، در صورتیکه طراح تارنما بخواهد برنامه کودک به برگهی وب سایت بیفزاید از جاوا اسکریپت به کارگیری مینماید.
Compiled languages: گویشهای نرمافزارنویسی به دو گروه تقسیم می شوند: لهجههای تفسیری یا این که کامپایلری. لهجههای نرمافزارنویسی سطح بالا مثل جاوا اسکریپت و پایتون برای کامپیوتر قابلشعور نیستند. زیرا لهجههای سطح بالا به گویش طبیعی (گویش آدم) مشابه میباشد تا فعالیت کدنویسی برای توسعه و گسترشدهنده ریلکس باشد. پس، پیش از اینکه ماشین (کامپیوتر) بتواند کدها را جاری ساختن نماید، نخستین می بایست آنان را به لهجه خودش، گویش صفر و یکها، ترجمه نماید. پروسه ترجمه ممکن میباشد به دو شکل واقعه بیفتد: خط به خط یا این که یکجا. یعنی یا این که تمامیی کدهای درج شده یکجا به لهجه ماشین کامپایل می شوند یا این که خط به خط تعبیر و تفسیر میگردند.
Binary code: لهجه کامپیوتر یا این که ماشین گویش صفر و یک، گویش باینری یا این که دودویی میباشد. هر چیزی را که بخواهیم کامپیوتر بفهمد می بایست در پوسته صفر و یکها به آن بدهیم. به گویشهایی که با صفر و یک نوشته میشوند لهجههای سطح زیر میگویند زیرا درک کردن آن برای بشر و اپنویس بسیار دشوار و فرصتبر میباشد. درنتیجه، نرمافزارنویسی به لهجههای سطح تحت، مانند لهجه اسمبلی، نیز بسیار دشوار و فرصتبر میباشد.
تعریف و تمجید Wasm
خب مفاهیم بالا چه ارتباطی با Wasm داراست؟ برای ساخت وب سایت نمیشود از لهجههای سطح تحت و دیگر لهجههای سطح بالا به راحتی بهره برد. در حالی که در حالتیکه با کامپیوتر به گویش اساسی (Native) خودش کلام زد، همگیچیز (پردازش و اجرای کدها و درنتیجه سعی تارنما) سریعخیس می شود. علاوه بر آن، استعمال از گویشهای نرمافزارنویسی دیگر (در کنار جاوا اسکریپت) تجهیزات بیشتری را در دست گسترشدهنده و نرم افزارنویس قرار می دهد.
ماشین اینترنت اسمبلی ساخته شد تا به طراحان وب سایت قابلیت دهد که در پیاده سازی وب سایت از گویشهای دیگر هم به کار گیری نمایند. اینترنت اسمبلی کدهای نوشته گردیده به هر گویش سطح بالایی را به کدهای باینری (کدهای اجرایی سطح زیر) تبدیل مینماید. مرورگرها میتوانند کدهای باینری Wasm را، مثل کدهای جاوا اسکریپت، بفهمند و جاری ساختن نمایند.
تا پیش از اینترنت اسمبلی، جاوا اسکریپت فقط گویش اپنویسی آشنا و قابلشعور برای مرورگرها بود. البته امروزه ورژنهای تازه مرورگرها با کدهای Wasm سازگارند و آنها را می شناسند و اعمال مینمایند. از بین تعریف و تمجیدهایی که از اینترنت اسمبلی ارائه شدهاست، تعریف و تمجید developer.mozilla.org از سایر بی آلایشخیس و آسودهدرکخیس میباشد.
اینترنت اسمبلی نوع جدیدی کد میباشد که در مرورگرهای امروزی اعمال میگردد. کدهای اینترنت اسمبلی تجهیزات جدیدی را در چنگ طراح وب سایت قرار میدهد و سعی وبسایت را نیز بسیار عالی و سریعخیس مینماید. اینترنت اسمبلی طوری پیاده سازی نشده میباشد که اپنویس آن را بنویسد. بلکه طوری پیاده سازی گردیده تا کامپایلری کارکشته باشد و کدهای درج شده به گویشهای مبدا مثل C, C++, Rust و … را ترجمه نماید.
مداقه اینترنت اسمبلی در پیاده سازی وب سایت
برای اینکه مداقه کدهای اینترنت اسمبلی مشخص گردد، موردنیاز میباشد مزایا و خصوصیتهای آن در طراحی وب شمرده خواهد شد. اینترنت اسمبلی چه تجهیزات و خصوصیتهایی را در چنگ طراح تارنما می گذارد که تا قبل از سال ۲۰۱۷ و ولادت آن، در ساخت وب سایت قابلیت و امکانپذیر نبوده میباشد؟
پس از اینترنت اسمبلی، طراح وبسایت از هر زبانی که بخواهد می تواند برای کدنویسی استعمال نماید. وی کدها را مینویسد و خیالش شل میباشد که هنگامی آنان را به کدهای Wasm تبدیل کرد، در مرورگر جاری ساختن می گردند. همین خصوصیت دست طراحان وبسایت و اینترنت نرم افزارها را برای گسترشی پروژههای بغرنج و هنگفت (مثل Google Earth یا این که بازیهای سه آجل و تارنماها و اینترنت نرمافزارهای حقیقت مجازی و حقیقت افزوده) گشوده می گذارد.
Wasm همت وب سایت را باصرفه مینماید زیرا کدهایش مدلخیس میباشد، پس سریعخیس در مرورگر اعمال میگردند و فرصت لود کمتری را نیاز داراهستند. این یعنی طراح تارنما میتواند صفحه های غامضخیس و پرجزئیاتتری را پیاده سازی نماید البته نگران فرصت لود شیت و درانتظار شدن استفاده کننده نباشد. ولی مگر جاوا اسکرپیت به عبارتی خصوصیتها را ندارد؟ آری، ولی در تمامیی مفاد و همگیی پروژهها جاوا اسکریپت سرعت و کارایی مورد نیاز را، مخصوصا برای تسکهای خیلی هنگفت ، آماده نمینماید.
صحت دارد که پیشرفتدهنده یا این که اپلیکیشننویس کدهای Wasm را نمینویسد، ولی می تواند آن ها را بخواند و در شکل بایستگی بازنویسی یا این که اصلاح نماید (debugging). از دو فولدر اکستنشن برای ذخیرهی کدهای اینترنت اسمبلی به کارگیری می گردد: wat. که برای داشتن text فرمت کدهاست و wasm. برای فرمت binary کدها. بسطدهنده به راحتی میتواند فرمت متنی را بازنویسی نماید.