Almost exactly a year after we last covered it, an experimental version of LibreOffice compiled to WebAssembly (nicknamed LOWA) has appeared.
Be warned, it’s about 300MB, so it takes a while to load, but you can try it here in your browser.
It’s based on the still-prototype LibreOffice 7.4 codebase and is not yet ready for production use. Given that LibreOffice is a large codebase, parts of which are decades old, this is a significant vindication of WebAssembly. There’s more info on the port here, from a presentation by Thorsten Behrens at FOSDEM 2022, which took place this month.
The Register has covered WASM since it was new, including examining how it works. Although it’s not without some criticism, it has ambitious goals and an increasing number of supporters. The LOWA developers use Emscripten to compile LibreOffice’s predominantly C++ code into WASM. Emscripten originally targeted Asm.js, which was one of WASM’s ancestors, alongside Google Native Client or NaCl.
Today, WASM has replaced both. Alongside the WASI interface to the host browser, there are also efforts to allow it to run directly on an underlying OS – that is, not within a browser – such as Wasmer and Wasmtime.
Given the popularity and widespread support for WASM, there’s a distinct possibility that it may yet supplant the JVM as the standard runtime for cross-platform apps.
As the browser is about the fastest-changing target platform there is, if one were of a skeptical persuasion, you might question the wisdom of basing such a significant piece of infrastructure on it. The logical place would seem to be in the core of the OS itself.
The first OS to try to do that was Taos from the Tao Group. Version 2 was called Elate and later Intent, and did win some backing. It very nearly became the next-gen AmigaOS. The Register even mentioned it once or twice before noting that the business went under.
The final descendant of Bell Labs’ Research Unix and Plan 9 is Inferno. Here’s how your humble vulture described it back in 2013.
Inferno also abstracts away the CPU architecture, using a VM (Dis, comparable to the JVM but reaching right down into the OS’s kernel) and a special type-safe portable programming language: Limbo.
Inferno is still around, and is now free and open source. It runs on native hardware, including smartphones, and can be embedded inside other apps. Its Limbo programming language is one of the ancestors of Go.
We’re definitely not saying that WASM is doomed to failure. It’s already doing great, and will surely thrive. All we’re saying is that there’s still much to be learned, especially from Inferno, notably in terms of compactness, speed, and integration into the OS – just not commercial success. ®
Bootnote
If any reader has a copy of AmigaDE 1.3, which was given away on a cover CD, please get in touch. So far, it’s lost to history.
Source link