TGViewer
Software Philosophy Software Philosophy @softwarephilosophy · 3.48K subscribers
Post #2240 3.37K
وضعیت WebAssembly در سال 2023 و 2024

ابزار WebAssembly (Wasm) یک فرمت اجرایی مستقل از پلتفرم است که می‌تواند در مرورگرها و سایر محیط‌های ادغام شده اجرا شود. Wasm با هدف ایجاد یک استاندارد برای اجرای کد بومی در مرورگرها ایجاد شد و در سال 2017 به‌عنوان یک استاندارد W3C پذیرفته شد.

در سال 2023، Wasm شاهد پیشرفت‌های قابل‌توجهی بود. چندین پیشنهاد استاندارد، مانند Tail Calls، Garbage Collection، Multiple Memories، و Relaxed SIMD، تصویب شد. چندین مورد از این ویژگی‌ها در برخی از مرورگرها و runtime‌ها پیاده‌سازی شده‌اند و کار در سایر مرورگرها نیز در حال انجام است.

همچنین شاهد افزایش پشتیبانی از زبان‌های برنامه‌نویسی برای Wasm بودیم. زبان‌هایی مانند Kotlin، Dart، Flutter، و OCaml به دلیل پشتیبانی از Garbage Collection، به Wasm اضافه شدند.

پشتیبانی از ابزارها نیز همچنان بهبود می‌یابد. به عنوان مثال، .NET Jinterpereter، به‌طور پویا ماژول‌های Wasm را در حین اجرا ایجاد می‌کند که باعث می‌شود دانلودها با استفاده از رویکرد تفسیری سریع‌تر و اجرای با سرعت بالا با استفاده از رویکرد AOT انجام شود. به لطف WASI، تیم .NET همچنین در حال آزمایش اجرای Wasm در سرور است.

سال 2024 نیز سال هیجان‌انگیز دیگری برای Wasm در حال شکل‌گیری است. احساس می‌شود که استفاده از Wasm در حال افزایش است، هم به عنوان ماژول‌های Wasm معمولی و هم به عنوان اجزای WASI، به ویژه با توجه به اینکه WASI Preview 2 به زودی منتشر خواهد شد.

در ادامه، برخی از پیشرفت‌های کلیدی Wasm در سال 2023 را بررسی می‌کنیم:

ویژگی Tail Calls: Tail Calls یک ویژگی مهم برای بهبود کارایی برنامه‌های Wasm است. Tail Calls به برنامه‌ها اجازه می‌دهد تا فراخوانی‌های بازگشتی را بدون ایجاد پشته جدید انجام دهند. این می‌تواند به کاهش مصرف حافظه و افزایش عملکرد منجر شود.
ویژگی Garbage Collection: Garbage Collection یک ویژگی مهم برای بهبود توسعه‌پذیری برنامه‌های Wasm است. Garbage Collection به توسعه‌دهندگان اجازه می‌دهد تا بدون نیاز به مدیریت دستی حافظه، برنامه‌های خود را بنویسند. این می‌تواند به کاهش پیچیدگی کد و افزایش سرعت توسعه منجر شود.

ویژگی Multiple Memories: Multiple Memories یک ویژگی مهم برای بهبود انعطاف‌پذیری برنامه‌های Wasm است. Multiple Memories به برنامه‌ها اجازه می‌دهد تا چندین فضای حافظه را با ویژگی‌های مختلف مدیریت کنند. این می‌تواند به برنامه‌ها اجازه دهد تا از منابع به‌طور کارآمدتری استفاده کنند.

ویژگی Relaxed SIMD: Relaxed SIMD یک ویژگی مهم برای بهبود عملکرد برنامه‌های Wasm است. Relaxed SIMD به برنامه‌ها اجازه می‌دهد تا از دستورالعمل‌های SIMD با کارایی بیشتری استفاده کنند. این می‌تواند به افزایش عملکرد برنامه‌های محاسباتی منجر شود.

این پیشرفت‌ها نشان می‌دهند که Wasm یک فناوری در حال رشد است که پتانسیل تغییر نحوه توسعه و اجرای برنامه‌های وب را دارد.

🔗 نسخه کامل مقاله را می‌توانید در اینجا مطالعه نمایید.

_______

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنت‌ها به اشتراک بگذارید.

#هوتن_همتی (لینکدین)

کانال تلگرام:
@SoftwarePhilosophy

_______
Uno Platform The State of WebAssembly – 2023 and 2024 Explore the 2023 Milestones and 2024 Predictions for WebAssembly in Our annual wasm Article - Get insights into the latest developments and future trends in WebAssembly, including browser support updates, new features like Tail Calls, Garbage Collection,…
  • 👍 16
  • ❤ 6
  • 🔥 2
More from @softwarephilosophy
  1. Sep 27, 2026نگو JEV بگو System One! دنیل کانمن (Daniel Kahneman) توی کتاب معروفش «تفکر، سریع و کند» (T…
  2. Sep 23, 2026بازنویسی کل GitHub Copilot Runtime با Rust 🔶 حدود ۱۲۰،۰۰۰ دلار هزینه توکن و سه هفته وقت ی…
  3. Sep 15, 2026ورک‌شاپ «AI Agents in C# (MAF)» در این ورک‌شاپ به بررسی امکانات جدید برنامه‌نویسی با کتابخ…
  4. Sep 12, 2026کد مدریت شده (Managed Code) در دات‌نت یعنی چی؟ ▫️به زبان ساده: کد مدریت شده (Managed Code)…
  5. Sep 5, 2026آشنایی با Attributeها در سی‌شارپ در سی شارپ، Attributeها برای اضافه کردن metadata یا اطلاع…
  6. Aug 25, 2026اگر در دات نت Agent، MCP Server یا ابزارهای مبتنی بر هوش مصنوعی توسعه میدهی، این پروژه میت…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →