by Manfred Steyer (SOFTWAREarchitekt.at)
by Andrey Goncharov (Hazelcast)
What is WebAssembly?
WebAssembly (often abbreviated as Wasm) is “a binary instruction format for a stack-based virtual machine” and is a portable target for compilation of languages such as C, C++, and Rust. It runs on a large number of platforms and is part of the open web platform with versionless backward-compatibility.
While it has other purposes and a scope beside the Web, running on the web is one of the Wasm platform’s largest purpose. Inside of the browser, its common use cases include image and video editing, execution for languages and toolkits, P2P applications, remote desktops, video augmentation, and more.
Safety is one of its goals when embedded in the Web. Wasm’s security model includes safety goals for both developers and users, ensuring safe applications and protection from malicious code. Its security model mirrors JavaScript’s.
According to W3C:
At its core, WebAssembly is a virtual instruction set architecture that enables high-performance applications on the Web, and can be employed in many other environments. There are multiple implementations of WebAssembly, including browsers and stand-alone systems. WebAssembly can be used for applications like video and audio codecs, graphics and 3D, multi-media and games, cryptographic computations or portable language implementations.
Its high-level goals describe the scope of its vision and is a good place to get started to see what it’s all about.
SEE ALSO: 5 alternatives to JavaScript for front-end development
Improving web performance
W3C recommends WebAssembly for speedier response time, faster loading, and efficient code. According to their press release, Wasm enhances both web performance and power consumption. It allows for code written in multiple languages to run natively at near-native speeds.
The W3C press release states:
WebAssembly improves Web performance and power consumption by being a virtual machine and execution environment enabling loaded pages to run as native compiled code. In other words, WebAssembly enables near-native performance, optimized load time, and perhaps most importantly, a compilation target for existing code bases.
Despite a small number of native types, much of the performance increase relative to JavaScript derives from its use of consistent typing. WebAssembly leverages decades of optimization for compiled languages and its byte code is optimized for compactness and streaming. A web page can start executing while the rest of the code downloads. Network and API access occurs through accompanying JavaScript libraries. The security model is identical to that of JavaScript.
A new web?
Over the past few years, frontend development has gone through a major shift and become more application-focused. The dynamics of the web are changing and will continue to change. Does this news mean that WebAssembly will replace JavaScript, CSS, or HTML?
SEE ALSO: Why JavaScript is so essential to modern development
Future versions of Wasm are already well on their way. The future roadmap including the addition of threading, fixed-width SIMD, reference types, tail calls, and ECMA Script module integration. Additional future releases will improve Wasm’s usability and availability.
Thus, it stands to reason that we will see a lot more of WebAssembly in the future. It may not outright take the place of JavaScript or HTML, but Wasm is likely here to stay.
The post WebAssembly is now the fourth web standard language appeared first on JAXenter.