How WebAssembly is Accelerating the Future of Web Development
The Future Of Web Development
Enabled by WebAssembly, the future of web development is:
- Linguistically Diverse
- Extremely Fast
WebAssembly Enables Linguistic Diversity
WebAssembly will dramatically diversify the languages available for building front-end applications and tools, enabling developers to build applications in any language they might choose.
There is already an impressive list of implementations, with compilation to WASM supported in over 20 different languages including these major ones:
WebAssembly Enables Extremely Fast Web Applications
For large documents, this meant going from over 10 seconds to browser-interactive to less than 5. That is a tremendous improvement.
Run-time performance improvements have been less dramatic, but still in evidence. Benchmarks of intense graphical operations comparing WASM to D3 showed 30% improvements in large projects.
There is already evidence of frameworks investigating this, with Ember.js investigating a WASM implementation for it's Glimmer VM.
WebAssembly Will Enable Parallelism
This one is admittedly a bit more speculative, as it is not fully realized in today's WebAssembly.
Since the shift towards multicore processors began in around 2005, it has become increasingly the case that to achieve greater performance, software needs to become parallel.
Languages like Rust and Go were designed for parallelism from the beginning, making it far easier to write parallel applications. WebAssembly's threads feature is still only a proposal, but once it becomes a reality we will quickly be able to see web applications taking advantage of fine-grained parallelism.
Most of this will once again occur at the level of frameworks and libraries. I don't envision your average application developer using WebAssembly threads in their application, but there is tremendous potential just in the framework side. React's new Fiber Architecture is already looking at slicing and dicing the behind-the-scenes rendering work into chunks that can be passed around and delayed.
The Future Of Web Development Is Bright