The Web App Revolution

By 19th October 2020November 19th, 2020No Comments
Ben Sewell
Ben Sewell

by Ben Sewell, Launchpad Head of Technology Strategy 

There’s a new revolution coming to web apps. It’s called WebAssembly, and it could spawn a whole new generation of web applications.

In the first days of the world wide web, we could only have static pages; everything that you could find was a bit like Wikipedia, only you couldn’t edit it. If you wanted to interact with a web page, you couldn’t – you could send a form to the site owner, but you couldn’t have any kind of live interaction. Then, JavaScript came along.

In it’s early days, JavaScript was just a basic scripting language, letting web developers build simple interactions, things like rollovers; like when your mouse hovers over an image, it changes, giving you some feedback. It worked just fine, but it was slow and unwieldy for anything too complex. Over time, the sophistication built, and in 2008, a real breakthrough came along; Google launched their V8 Just-In-Time (JIT) compiler for JavaScript. Other browser developers soon followed suit. 

Due to the speed of execution, what we now regard as normal on web apps has become possible; a cut-down version of Word in Office 365, complex javascript-based animations and games, and the like. However, it’s still not like having the full power of your computer available to you in a browser. 

So, in 2017, the developers of Chrome, Edge, Firefox and WebKit (which powers Safari among others) reached consensus of the first WebAssembly API. This allows truly fast, fully compiled code to run in browser. You can code in languages like C, C#, and Go, as well as AssemblyScript (which is like TypeScript, a derivative of JavaScript).   

To make this all work, of course, we need some nice front-end frameworks too, right? Microsoft announced the WebAssembly port of Blazor, their C# front-end framework last year, and Qt, the massively important cross-platform framework (think Autodesk’s 3DS Max and Maya, for example) has also been ported to WebAssembly+WebGL. Not just that, but as of 2018.2, the Unity game engine exports into WebAssembly + WebGL, allowing games tech developers to get their hands on this high-performance tech too. 

What possibilities lie ahead? Well, for a start, this means that we can now start to build whole stacks from back-end to front-end in highly efficient fully-compiled languages. JavaScript is no longer our only mainstream option for full-stack web development.  

So, the world is our oyster; let’s go and build stuff that’s very beautiful, very cool and very fast! 

Want to get started? Here’s some pointers: