وضعیت WebAssembly در ۲۰۲۱

شکل۱. وضعیتWebAssembly در ۲۰۲۱ منتشر شده در blog.scottlogic به تاریخ ۲۱ ژوون ۲۰۲۱لینک منبع: The State of WebAssembly 2021این پست وبلاگ نتایج اولین تحقیق دولتی انجمن وب را با نتایج ۲۵۰ تا از پاسخ‌دهندگان در ژوئن ۲۰۲۱ به اشتراک می‌گذارد. برای کسانی از شما که فقط یک چکیده سریع می‌خواهید، در اینجا یافته‌های اصلی آورده شده‌است:زبان Rust رایج‌ترین و مطلوب‌ترین زبان انجمن وب است.زبان AssemblyScript دومین زبان مطلوب WebAssembly است.انتظار می‌رود که انجمن وب تاثیر قابل‌توجهی در برنامه‌های کاربردی وب، بدون سرور، بازی و انتقال داشته باشد.پشتیبانی بهتر از اشکال‌زدایی، حوزه‌ای است که مردم احساس می‌کنند باید به آن توجه بیشتری داشته باشند.برای تجزیه و تحلیل دقیق‌تر و بسیاری از نمودارها، بخوانید …مقدمهتکنولوژی WebAssembly یک تکنولوژی نسبتا جدید است، با مشخصات پیش‌نویس نهایی منتشر شده توسط W3C در سال ۲۰۱۸. در ابتدا به عنوان یک زمان اجرای جدید، با پشتیبانی چند زبانی در نظر گرفته شد که سرعت اجرای بومی را در مرورگر تقریبا فراهم می‌کند و قطعا با این وعده تحویل داده می‌شود.من خبرنامه هفتگی انجمن وب را تقریبا چهار سال پیش شروع کردم و از تماشای رشد و تکامل این فن‌آوری لذت بردم. مسائل خبری اولیه بر توسعه ابزارسازی و آزمایش تمرکز دارند، در حالی که مسائل اخیر بر گسترش قابلیت‌های وب سایت و محصولات تجاری که به طور کامل از این فن‌آوری استقبال کرده‌اند، تمرکز کرده‌اند. با این حال، احتمالا مهم‌ترین تغییر در این دوره چهار ساله، موفقیتی بوده‌است که این زمان اجرای ساده، سبک و ایمن در خارج از مرورگر یافته‌است. این روزها من مقالات بیشتری را در مورد برنامه‌های کاربردی بدون سرور، کانتینرسازی یا بلاک چین نسبت به برنامه‌های مرورگر مشاهده می‌کنم.با در نظر گرفتن این موضوع، به نظر می‌رسد که زمان آن رسیده که اولین بررسی وضعیت WebAssembly با یک نوک کلاه به بررسی وضعیت JS که منبع الهام‌بخشی عالی بود) را اجرا کنیم تا برای کسب اطلاعات بیشتر در مورد مکان استفاده افراد از این فن آوری، نحوه استفاده از آن و افکار آنها برای آینده استفاده کنیم.زباناول، ما زبان‌هایی را که مردم در حال حاضر برای WebAssembly استفاده می‌کنند را بررسی خواهیم کرد.شکل۲. زبان Rust در ۲۶٪ موارد، رایج‌ترین زبان مورد استفاده است و پس از آن ++C و سپس خط تولید صدا قرار دارد.دلایل موفقیت Rust چیست؟از نظر من، آنها دو برابر هستند، اولاً، Rust یک زبان بسیار محبوب در بین توسعه‌دهندگان است و به مدت 4 سال در وضعیت نظرات برنامه‌نویسان StackOverflow، به وضعیت "محبوب ترین" زبان رسیده است.دوم، و شاید مهم‌تر از آن در این مثال، Rust در حال حاضر «تناسب» خوبی از دیدگاه فن‌آوری برای WebAssembly است. نیازی به جمع‌آوری زباله ندارد، باینری‌های سبک ایجاد می‌کند، ابزار و حمایت جامعه قوی است.من نوشته مایکل گتوزی را به یاد می‌آورم که در سال ۲۰۱۷ نوشت:ما آماده‌ایم که زبان انتخابی wasm باشیم.اینجا مکان و زمان مناسبی برای Rust بود.جایگاه دوم به C ++ می‌رسد، که از طریق زنجیره ابزار Emscripten ، اولین زبانی بود که برای WebAssembly پشتیبانی را فراهم کرد. همچنین یک انتخاب محبوب برای توسعه بازی است.با نگاه به نتایج در تمام زبان‌ها، ما می‌توانیم ببینیم که پاسخ‌دهندگان چقدر مکررا از WebAssembly استفاده می‌کنند:نزدیک به ۴۷٪ کاربران مکرر هستند.این بررسی همچنین از زبان‌های دیگری که مردم استفاده می‌کردند، با تعداد کمی (در هر مورد ۲٪) درخواست کرد که نشان می‌دهد آن‌ها از کوتلین، الیکسیر یا C از طریق Cheerp استفاده کرده‌اند.سوال بعدی این است که از چه زبان‌هایی بیشتر می‌خواهید در آینده برای توسعه WebAssembly استفاده کنید؟باز هم، هیچ شگفتی بزرگی رخ نمی‌دهد، چرا که زبان (Rust) که همیشه محبوب بوده‌است، در صدر جداول مطلوبیت قرار دارد. در مقایسه با نمودار قبلی در مورد کاربرد زبان، اسکریپت، C ++ را در مکان دوم قرار می‌دهد.برای شما که با AssemblyScript آشنا نیستید، این یک نوع زبان جدید TypeScript-مانند است که به طور خاص برای WebAssembly طراحی شده‌است.بلازور همچنین یک مکان را از دست می‌دهد، که به دقت توسط گو مغلوب شده‌است. طبق تجربه من، هیجان زیادی در اطراف بلازور وجود دارد که سال گذشته به طور رسمی توسط مایکروسافت منتشر شد. اگرچه این احتمالا برای افرادی که برنامه‌های WPF و Windows Forms را به مرورگر انتقال می‌دهند، بسیار جذاب است.کاربردهای WebAssemblyدر ادامه، ما بررسی خواهیم کرد که مردم برای چه چیزی از WebAssembly و آرزوهای آینده‌شان استفاده می‌کنند.در این نظرسنجی پرسیده شد که شما در حال حاضر برای چه کاری ازWebAssembly استفاده می‌کنید؟ به افراد امکان می‌دهد گزینه‌های مختلفی را انتخاب کرده و پیشنهادات خود را اضافه کنند.در اینجا همه پاسخ‌ها، شامل همه موارد "دیگری" که تنها یک پاسخ واحد دارند آورده شده‌است:اکثر مردم برای توسعه برنامه‌های کاربردی وب از WebAssembly استفاده می‌کنند. در یک نظرسنجی آینده ممکن است ایده خوبی باشد که به طور خاص‌تر به بررسی این موضوع بپردازیم که آن‌ها چگونه و در کجا از آن در وب استفاده می‌کنند.تکنولوژی WebAssembly هنوز هم یک تکنولوژی نسبتا جوان است و ما هنوز در حال کشف این هستیم که این فن‌آوری کجا می‌تواند تاثیر داشته‌باشد. سوال بعدی با پرسیدن این سوال که به نظر شما WebAssembly بیش‌ترین تاثیر را در آینده خواهد داشت، به بررسی این موضوع می‌پردازد؟نتایج نشان می‌دهد که ۶۹٪ بر این باورند که WebAssembly تاثیر بسیار زیادی بر توسعه وب در آینده خواهد داشت.با این حال، پاسخ‌دهندگان به نظرسنجی انتظار دارند که انجمن وب تاثیر قابل‌توجهی در سراسر طیف گسترده‌ای از حوزه‌های کاربردی مختلف داشته باشد، و Serverless این راه را با ۵۶٪ مشاهده به عنوان یک برنامه کاربردی با تاثیر بالا پیشگام می‌کند.جالب توجه است که تعداد قابل توجهی از مردم اظهار داشتند که آنها فقط نمی‌دانند تأثیر WebAssembly در آینده در برنامه‌های بلاکچین چه خواهد بود.تکنولوژی WebAssembly در جامعه بلاکچین توجه قابل توجهی پیدا کرده‌است و در نقشه راه Ethereum 2 قرار دارد. من حدس می‌زنم که بسیاری از مردم به سادگی احساس نمی‌کنند که بلاکچین را درک می‌کنند!ویژگی‌ها و نیازهای WebAssemblyتکنولوژی WebAssembly در ابتدا به عنوان یک محصول حداقل زنده (MVP) ، با یک ویژگی اولیه متمرکز بر موارد استفاده C ++ و انتقال C ++ از پیش موجود در پایگاه‌های کد. از آن زمان به بعد، ویژگی‌های زمان اجرای جدید اضافه شده‌اند، از جمله منابع قابل تعویض و بازده‌های چند مقداری. با این حال، ویژگی‌های جدید بسیار بزرگتری در نقشه راه وجود دارد.سوال بعدی این است که شما به کدام یک از ویژگی‌های آینده WebAssembly علاقمند هستید؟این کتاب در بالای صفحه ظاهر می‌شود. این پیشنهاد پشتیبانی از عملیات حافظه اتمی و حافظه خطی مشترک را اضافه می‌کند، که به ماژول های WebAssembly اجازه می‌دهد تا در محیط‌های اجرایی برنامه‌ریزی‌شده عمل کنند. قابل‌ذکر است که این پیشنهاد شامل عملیات‌هایی نمی‌شود که به ماژول‌های WebAssembly اجازه دهند تا به طور مستقیم نخ‌ها را ایجاد کنند. نمی‌دانم آیا مردم از این محدودیت آگاه هستند یا خیر؟مورد بعدی رابط سیستم WebAssemble (WASI) است، مشخصاتی با هدایت پیوستگی Bytecode که به قابلیت‌های مختلف مرورگر اضافه می‌کند.به دنبال انواع رابط، پیشنهادی که ارتباط مستقیم ماژول‌ها با زبان‌های مختلف را بسیار آسان می‌کند.من از دیدن لیست زباله‌روبی که خیلی پایین بود تعجب کردم. زبان‌هایی مانند C # و AssemblyScript باید زباله جمع‌کن خود را به عنوان بخشی از ماژول‌های WebAssembly ارسال کنند. این پیشنهاد درها را برای ادغام با میزبان جمع‌آوری زباله باز می‌کند که منجر به ماژول‌های کوچک‌تر و کارآمدتر می‌شود.سوال بعدی این است که نظر شما درباره اینکه WebAssembly باید در آینده موفق باشد چیست؟در صدر فهرست اولویت‌های مردم، پشتیبانی اشکال‌زدایی بهتر بود. در اینجا عدم سازگاری واقعی در ابزارسازی وجود دارد، برخی از آن‌ها از نقشه‌های منبع، و برخی دیگر از DWARF استفاده می‌کنند. در اغلب موارد اشکال‌زدایی از طریق نقاط شکست، ردیابی پشته‌ها و بازرسی متغیرهای محلی، تنها امکان پذیر نیست.در طرف دیگر، پشتیبانی از زبان یک اولویت نیست، بیشتر زبان‌ها به نوعی به WebAssembly اضافه می‌شوند. ما نیازی به افزودن هیچ مورد جدیدی نداریم، فقط باید تجربه توسعه‌دهندگان از مواردی که قبلا پشتیبانی شده‌اند را بهبود بخشیم… که گفتن آن بسیار ساده‌تر از انجام آن است.ویژگی‌های جمعیت‌شناسیدر نهایت، این بررسی شامل چند سوال است که ویژگی‌های جمعیت‌شناختی را مشخص می‌کند. من به طور خلاصه این نتایج را در اینجا به اشتراک می‌گذارم.از پاسخ‌دهندگان خواسته شد تا سطح مهارت خود را در جاوا اسکریپت، Back-end و توسعهWebAssembly اعلام کنند:همچنین از آن‌ها در مورد مدت زمانی که از آن استفاده می‌کردند یا در مورد آن اطلاع داشتند، سوال شد. بیشتر آن‌ها تازه با این تکنولوژی آشنا شده‌بودند:این نظرسنجی نتایجی را از ۱۹۶ کشور با بیش‌ترین میزان از آمریکا (۸٪.۲۱)، سپس چین (۹٪.۱) و آلمان (۹٪.۱) دریافت کرد.نتیجه‌گیریبه لطف تمام کسانی که در این نظرسنجی شرکت کردند. اگر می‌خواهید تحلیل خود را انجام دهید، نتایج به عنوان یک فایل CSV در دسترس هستند. اگر هر گونه نتیجه جالب را کشف کردید، لطفا آن‌ها را به اشتراک بگذارید.اگر نظر، پیشنهاد یا ایده‌ای برای نظرسنجی‌های آینده دارید، لطفاً از طریق موضوع بحث هکر نیوز به اشتراک بگذارید.من مشتاقانه منتظر این هستم که این یک رویداد سالانه باشد.این متن با استفاده از ربات ترجمه مقالات علوم کامپیوتر ترجمه شده و به صورت محدود مورد بازبینی انسانی قرار گرفته است.در نتیجه می‌تواند دارای برخی اشکالات ترجمه باشد.مقالات لینک‌شده در این متن می‌توانند به صورت رایگان با استفاده از مقاله‌خوان ترجمیار به فارسی مطالعه شوند.