An Overview of WebAssembly
- Why is WebAssembly important?
- What is WebAssembly?
- Adoption and development in the industry
- The future of WebAssembly
Why is WebAssembly important?
What is WebAssembly?
Adoption and Development of WebAssembly
WebAssembly is an ambitious goal; creating a unified compilation target for the web is no easy task. The web is fragmented into many popular browsers, which makes this a challenge from both a technical perspective and from an adoption perspective. But fortunately, there is a collective wealth of knowledge and experience among the individuals working on wasm. After asm.js was rendered obsolete by webasm, Mozzila placed some of the original engineers on the asm.js project such as Alon Zakai and Lin Clark behind webassembly to support its development. Google was working on Native Client (NaCl), its own binary format for the web based on LLVM, those same engineers such as Ben Smith, and Derek Schuff are also now closely involved in the development of WebAssembly. The list goes on: the project is contributed to by Microsoft’s Limin Zhu and Michael Holman, Apple’s Raphael Isemann, Nvidia devsnek and countless other notable WebAssembly Contributors from the most prominent technology companies.
Back in the startup atmosphere there has also been support to build the tools and frameworks that are going to be needed to make webassembly seamless to use. Two of the biggest players are Wasmer and Fastly which are creating open source tools to execute WebAssembly files universally. Wasmer’s CEO Syrus Akbary believes that webAssembly and the browser will eventually become the universal computing platform. Another player in the startup market is Second State, which is building WebAssembly execution engines, frameworks, and developer toolchains for the cloud. Their CEO Michael Yuan is an expert and recognized author on enterprise mobile computing. 
The future of WebAssembly
WebAssembly has clearly come very far since its inception five years ago, but it’s not close to maturity. WebAssembly’s development is divided into five chronological phases, it recently completed its phase 0 or (Minimum Viable Product) MVP, and phase 1 and 2 are currently in development.  These will bring many features that will put wasm up to par with its alternatives.
One of the key proposals in development is garbage collection. Most modern languages use garbage collection (GC) to optimize memory management by clearing variables when they are no longer used. WebAssembly does not have a native garbage collector, or any memory management tools, and simply provides you with a ‘chunk’ of memory. Thus languages that need garbage collection need to compile a GC to wasm and ship it as part of the code transfer, which is computationally expensive. A native garbage collector has already been proposed and will be released sometime during the current phase of development–phase 1.
Webassembly is only in its infancy, but it’s already changing the industry. It’s important to stop and ponder on how it will affect web browsers, operating systems, and technology as a whole. As a starter, once there are better frameworks that compile seamlessly into webAssembly it will allow most compiled languages to compile to webAssembly, bringing back the possibility of code that you “write once, run anywhere”. This means that many apps, such as AutoCad, Adobes suite, and countless others which currently run on the desktop, will start migrating to the browser. We predict that farther into the future, native apps on android and other devices will die out in favor of progresssive web apps, especially with the rise of downloadable web pages. This will mean a rise in popularity of operating systems that, like chromeOS, use the web browser as its principal user interface. A couple more years from that and we will see the main OS providers like MacOS and Microsoft drop support for non-web applications, resulting in the browser acting as a unified application host across all mainstream consumer desktops. Finally, in our wildest predictions, we see WebAssembly completely pushing out native apps from operating systems and crowning the web browser as the operating system of the 21st century.
Thanks to Aidan Abdulali, Kyle Giffin, and Rahul Desai for their feedback and edits.
 Announcing Lucet