Which is why WebAssembly, the new open standard, is such great news.
What Is WebAssembly?
That said, WebAssembly is a not really a new programming language. Instead, it defines a new compiler target for the web, which helps to create modules from diverse programming languages and run them in a web browser. It means that code written in languages such as C/C++ can be run on the web at near-native speed, with client apps running on the web.
WebAssembly: Opening a Door of Opportunities
Reusability and Language Diversity
Security in WebAssembly is a topic that comes up often. WebAssembly’s stated security goals include:
- Protecting users from buggy or malicious modules
- Providing developers with useful mitigations
Also, since WASM modules download and run within the context of the DOM, HTTP properties like Same-Origin Policy (SOP), Content Security Policy (CSP) filtering are also assured.
The rise of WebAssembly is paving the way for new experiments in the industry. Checked out the new AutoCAD web app yet? With no install required, you can start creating drawings within the browser. Same is the case with Adobe Lightroom. By switching to WebAssembly, Figma—a comprehensive online design tool—improved their load time by more than 3x regardless of document size.
The following are some of the interesting experiments with WASM :
- Blazor – Microsoft’s experimental web UI framework using C#/Razor and HTML, running client-side via WebAssembly
- Yew – Rust framework for making client web apps
- Pyodide – The Python scientific stack running in the browser
- ewasm – Ethereum-flavored WebAssembly
- WebSight – facial recognition algorithm running in the browser
The Future Is Awesome with WASM
WebAssembly will not disturb the current web ecosystem but will continue to evolve alongside other web technologies. Future roadmap of WebAssembly defined by WASM community looks promising. Support for Threads, Garbage collection, SIMD, and Bulk memory operations is in progress. Yes, the future is bright!
With every major browser now supporting WebAssembly, it’s time for developers to start thinking about writing WebAssembly-oriented client-side apps for the web.