Edge Browser Switches WebAssembly to 'On'
EdgeHTML and Chakra previously supported the experimental WebAssembly with an initial effort called WebAssembly Minimum Viable Product (MVP), kind of a proof of concept that lacks various important features.
In the latest iteration of EdgeHTML 16, those features have been fine-tuned, stabilized and enabled by default, buttressed by many tweaks that have improved performance.
Just about 2-1/2 years since it was first announced, WebAssembly might not be familiar to some Web jockeys. Developers don't write code in the WebAssembly binary bytecode format ("wasm" files), but rather they can write in other languages that are compiled into WebAssembly.
As a primary backer of the project -- the Mozilla Developer Network (MDN) around the Firefox Web browser -- puts it:
Mozilla and other browser makers are helping to shepherd the new technology approach as an open standard under a W3C Community Group.
Putting it bluntly, Mozilla developer David Bryant said: "WebAssembly is one of the biggest advances to the Web Platform over the past decade."
And that carries over into the .NET ecosystem too, though it takes a bit more work to leverage WebAssembly in languages such as C#.
Cautioning that "this is just an experiment," Microsoft developer Steven Sanderson this summer posted a YouTube video on WebAssembly and other new technologies titled "Web Apps can't really do *that*, can they?" Commenting on one part of the video that used C code, one developer on Reddit noted: "The big browsers are really working on integration of other languages and debugging of them live in the browser. No mapping for C# code though, since the C# code is not compiled directly to webassembly, but interpreted by the small dotnetanywhere runtime."
There are also other efforts underway to wed .NET and WebAssembly, as Microsoft's Scott Hanselman pointed out in an August post titled ".NET and WebAssembly -- Is this the future of the front-end?" in which he noted: "Today in 2017, WebAssembly is absolutely a thing."
Hanselman reported on Sanderson's presentation and detailed some of these other efforts, including the WebAssembly for .NET project and the mono-wasm project. The former is intended to "to consume WASM binary files and execute them from within .NET assemblies" while the latter is described as "a proof-of-concept aiming at building C# applications into WebAssembly, by using Mono and compiling/linking everything statically into one .wasm file that can be easily delivered to browsers." Mono, of course, is the open source runtime that was turned into Xamarin.
Meanwhile, the EdgeHTML team will continue work to support WebAssembly. Already, the aforementioned tweaks to the initial MVP offering have paid off in better performance. "Several changes also help improve WebAssembly performance in Chakra by 20-25 percent on workloads we have been tracking," said Limin Zhu, a Microsoft program manager, in a blog post last week . "Try it out for yourself! Point Microsoft Edge at a fun WebAssembly game like Funky Karts to see the improvement with no flags required!"
Zhu said Microsoft will continue its close work with Mozilla, Google, Apple and other WebAssembly backers to improve the initiative. "Impactful post-MVP features such as threads and GC [garbage collection] are currently being explored in the WebAssembly Community Group," he said.
David Ramel is the editor of Visual Studio Magazine.