This article is the third part of a series of posts about our journey on WebAssembly. If you’re starting out with this article, you might want to start there.
What is WebAssembly?
WebAssembly or WASM is a Compiler Target (code generated by compilers) with a binary format, which allows us to execute C, C++, and Rust on the browsers with a performance close to native code.
.wasmformat is binary, and because of that, more compact than the
- GC: We Assembly does not have a garbage collector yet.
The Common misconceptions regarding WebAssembly
These are the most common misconceptions I’ve seen when people are discussing about this topic:
- WASM is a new programming language: It worths remember WASM is an intermediate format, binary, which works as a compiler target for other languages like C, C++, and Rust. Although a text representation exists for wasm, it’s not expected to see people programming on it as it's not expected people to code in Assembly.
- Only C or Rust programmers can write WASM code: The support to other languages will come as soon as new functionalities were added to WebAssembly, like Garbage Collector. Moreover, there are projects for onboarding new languages and even sub/superset of JavaScriot to compile to WASM.
- What is WebAssembly: https://developer.mozilla.org/en-US/docs/WebAssembly/Concepts
- Binary AST, JS proposal explanation: https://github.com/binast/ecmascript-binary-ast