Development Technology Review: WebAssembly

Recently I attended a webinar for a new web technology from Microsoft called Blazor. In summary, Blazor is a technology that allows developers to create web applications using C#, HTML, and CSS. Furthermore, it allows the C# code to run on any modern browser, including mobile browsers without the need for plugins or any special frameworks or configuration. This technology insight is certainly intriguing, but I will talk more about Blazor in a later post.

For this article, I want to talk about a key piece of technology called WebAssembly, which is at the heart of Blazor. WebAssembly (or Wasm) is an open standard that was finalized in 2017. In the following months all major browsers implemented support for WebAssembly across all supported operating systems and platforms.

WebAssembly allows developers to work in high-level languages then compile that code into a binary file that can run directly within the browser using the same sandbox as regular JavaScript code. The standard also details the virtual machine environment in which the code executes, meaning that the same assembly file will work the same regardless of the host browser. Furthermore, this assembly would be able to run on any computer or phone that can run one of these modern browsers.

The initial release of the WebAssembly standards MVP, or Minimum Viable Product, targeted C, and C++ as the high-level programming language of choice. As such it allows developers to take advantage of existing C\C++ libraries directly from JavaScript. But the usefulness of WebAssembly doesn’t stop at libraries, but developers have even been able to take entire applications that are written in C\C++ and preset them to users within a web page. This use case allows organizations to breath new life into legacy C\C++ applications by being able to quickly present them and all their supporting libraries to users via a web page, possibly without a major overhaul of the legacy apps source code. An example of this is when earlier this year, a group took the 1996 era classic PC game Diablo and made it playable from within any browser, including mobile.

While there are some examples where WebAssembly has been used, the best is yet to come. The WebAssembly Core specification became a “Candidate Recommendation” with the W3C standards body on July 18th, 2019, and less then three months later, on October 1st, 2019, it became a “Proposed Recommendation.” This recommendation is the final maturity level before becoming a “WC3 Recommendation”.  As the standard has become more mature 3rd party technology companies such as Microsoft have been hard at work laying the groundwork to let developers better use WebAssemblies.

It’s important to note that WebAssembly is not a replacement for JavaScript on web pages but is rather a complement to JavaScript. JavaScript and WebAssembly will be used together to offer web developers new options when developing new web applications. And as new languages and compilers begin to support  WebAssembly, the number of options available to web developers will continue to increase which is always a good thing.

About Steve Cutler

Steve has 15 years of experience building, supporting and maintaining critical enterprise systems, including technologies like SAP, Microsoft Active Directory, IBM Bigfix.

Contact Us

Have a Question? Get in touch. Profit Point is here to answer any questions you may have, help you with information, and create an effective solution for all of your supply chain needs.
Contact us here