WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.
It is a new type of code that can be run in modern web browsers — it is a low-level assembly-like language with a compact binary format that runs with near-native performance and provides languages such as C/C++, C# and Rust with a compilation target so that they can run on the web.
WebAssembly is the third generation of Cloud Computing
Wasm brings the performance of native applications to the web in a way that's completely secure, yet enabling a full functionality expected from games, major applications and the entire spectrum of software you can run on a computer.
A tweet by Solomon Hykes, who is the Founder, Chief Technology Officer and Chief Architect of Docker.
Developers right now be like:
The security model of WebAssembly has two important goals:
a. It protect users from buggy or malicious modules.
b. It provide developers with useful primitives and mitigations for developing safe applications, within the constraints of (a).
Wasm is super Light-weight.
Wasm is Open-Source.
Wasm works with all modern architectures, devices, and embedded systems, and doesn't favor one language, programming model, or object model over another. Additionally, it can be implemented on browsers, stand-alone systems, and in other environments.
Wasm has a co-operative nature.
- Greenfield/multiplatform development.
- Migrating from desktop-only to desktop and browser-based applications.
- Modernizing older apps written in Silverlight.
- Backward compatibility with older platforms.
- Progressive web apps.
- Mobile apps.
- Gaming applications and many more!
There are a number of impressive in-browser Wasm applications available today. But there are also Wasm compilers and runtimes that allow Wasm to run outside of the web browser; closer to the hardware.
It is inevitable that Wasm flavored compilers will become more and more integrated with the hardware. The aim is to develop highly efficient, portable, and reusable discrete units of functionality.
Wasm has all of the features of the next generation's service-oriented architecture (SOA). It can target specific outcomes, be self-contained, provide abstraction and be easily shared and consumed with other underlying units of functionality.
It is an exciting area for collaboration. The projects are under very heavy development, and we are destined to see great results.