Mar 02, 2020 • ☕️ 2 min read
WebAssembly is a low-level bytecode format that runs in the browser. It is designed to be faster to parse, as well as faster to execute which makes it a suitable compilation target for new and existing languages.
So currently which languages can be compiled to WebAssembly? Language conformance is largely determined by individual compiler support, there have been around 40 programming languages reported to support
Wasm as a compilation target.
You can find all languages and tools that work with WebAssembly here. Notable languages are C/C++, C#/.NET, Rust, Java, Python, Elixir, Go. Take a took at several tools/frameworks related to WebAssembly:
Blazor is a .NET web framework using C#/Razor and HTML that runs in the browser with WebAssembly.
JWebAssembly is a Java bytecode to WebAssembly compiler. It uses Java class files as input. That it can compile any language that compile to Java bytecode like Clojure, Groovy, JRuby, Jython, Kotlin and Scala. As output it generates the binary format (.wasm file) or the text format (.wat file). The target is to run Java natively in the browser with WebAssembly.
Pyodide is a Python scientific stack brings the Python runtime to the browser via WebAssembly, along with the Python scientific stack including NumPy, Pandas, Matplotlib, parts of SciPy, and NetworkX.
WebAssembly support seems pretty early days and often self-labeled as experimental, I am hoping that the community continues to investigate and embrace WebAssembly.
Linters are tools that analyze source code to detect problems based on formatting rules and code quality rules then output as warnings or errors
Some of the most fundamental concepts which control how CSS is applied to HTML and how conflicts are resolved
Package managers are tools that help you manage packages as dependencies and might also provide a global package registry
This complete guide explains everything about Webpack, what it is, how it works, how to setup it for both development and production