News: 1645259650

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Experimental WebAssembly port of LibreOffice released

(2022/02/19)


Almost exactly a year after [1]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 [2]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 [3]here , from a presentation by Thorsten Behrens at FOSDEM 2022, which took place this month.

[4]

The Register has covered [5]WASM since it was new , including examining [6]how it works . Although [7]it's not without some criticism, it [8]has ambitious goals and an increasing number of supporters. The LOWA developers use Emscripten to compile LibreOffice's predominantly C++ code into WASM. Emscripten [9]originally targeted Asm.js , which was one of WASM's ancestors, alongside [10]Google Native Client or NaCl.

[11]

[12]

Today, WASM [13]has replaced both. Alongside the [14]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 [15]widespread support for WASM , there's a distinct possibility that it may yet supplant the JVM as the standard runtime for cross-platform apps.

[16]Breath of fresh air: v7.3 of LibreOffice boasts improved file importing and rendering

[17]'IwlIj jachjaj! Incoming LibreOffice 7.3 to support Klingon and Interslavic

[18]Munich mk2? Germany's Schleswig-Holstein plans to switch 25,000 PCs to LibreOffice

[19]You loved running JavaScript in your web browser. Now, get ready for Python scripting

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 [20]Taos from the Tao Group. Version 2 was called Elate and later Intent, and did win some [21]backing . It very [22]nearly became the next-gen [23]AmigaOS . The Register even [24]mentioned it [25]once or [26]twice before noting that [27]the business went under .

[28]

The final descendant of Bell Labs' Research Unix and [29]Plan 9 is [30]Inferno . Here's how your humble vulture [31]described it back in 2013.

[32]Inferno also abstracts away the CPU architecture, using a VM ( [33]Dis , comparable to the JVM but reaching right down into the OS's kernel) and a special type-safe portable programming language: [34]Limbo .

Inferno is still around, and is now [35]free and open source . It runs on native hardware, including [36]smartphones , and can be embedded inside other apps. Its Limbo programming language is one of the [37]ancestors of Go.

[38]

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 [39]cover CD , please get in touch. So far, it's [40]lost to history.

Get our [41]Tech Resources



[1] https://www.theregister.com/2021/02/16/libreoffice_team_working_on_port/

[2] https://lab.allotropia.de/wasm/

[3] https://fosdem.org/2022/schedule/event/lotech_lowa/

[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/applications&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2YhDN2gNKXVIpNUOnY8IdFAAAAI8&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[5] https://www.theregister.com/2015/06/18/brendan_eich_announces_webassembly/

[6] https://www.theregister.com/2020/01/27/webassembly_intro/

[7] https://www.theregister.com/2021/11/04/webassembly_stack_canaries/

[8] https://www.theregister.com/2021/04/28/microsoft_bytecode_alliance/

[9] https://www.theregister.com/2013/12/20/native_code_no_its_javascript_only_its_blazing_fast/

[10] https://www.theregister.com/2011/09/16/native_client_debuts_in_chrome/

[11] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/applications&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YhDN2gNKXVIpNUOnY8IdFAAAAI8&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[12] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/applications&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YhDN2gNKXVIpNUOnY8IdFAAAAI8&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[13] https://www.theregister.com/2017/05/31/googles_portable_native_client_to_be_killed/

[14] https://www.theregister.com/2019/03/29/mozilla_wasi_spec/

[15] https://www.theregister.com/2019/11/13/webassembly_buildup_group/

[16] https://www.theregister.com/2022/02/02/libreoffice_7_3/

[17] https://www.theregister.com/2022/01/12/libreoffice_73/

[18] https://www.theregister.com/2021/11/22/open_source_germany/

[19] https://www.theregister.com/2021/11/30/python_web_wasm/

[20] http://www.uruk.org/emu/Taos.html

[21] https://www.eetimes.com/tao-gets-japanese-backers-for-intent-platform/

[22] http://www.apsdev.com/amigade/home.html

[23] https://www.eetimes.com/amiga-reborn-via-tao-alliance/

[24] https://www.theregister.com/2003/06/18/finns_develop_motioncontrolled_cellphone_ui/

[25] https://www.theregister.com/2007/01/17/multi_media/

[26] https://www.theregister.com/2001/08/22/sharp_launches_nextgen_zaurus_promises/

[27] https://www.theregister.com/2007/06/13/tao_group_administration/

[28] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/applications&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YhDN2gNKXVIpNUOnY8IdFAAAAI8&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[29] https://www.theregister.com/2014/02/14/plan_9_moves_to_gnu_space/

[30] https://www.theregister.com/2000/12/07/lucents_inferno_does_a_java/

[31] https://www.theregister.com/2013/11/01/25_alternative_pc_operating_systems/?page=2

[32] https://www.vitanuova.com/inferno/

[33] https://www.vitanuova.com/inferno/papers/dis.html

[34] https://www.vitanuova.com/inferno/limbo.html

[35] https://bitbucket.org/inferno-os/

[36] https://jfloren.net/b/2015/8/18/2

[37] https://www.theregister.com/2011/05/05/google_go/

[38] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/applications&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YhDN2gNKXVIpNUOnY8IdFAAAAI8&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[39] https://forum.amiga.org/index.php?topic=42548.0

[40] https://news.ycombinator.com/item?id=9808481

[41] https://whitepapers.theregister.com/



Ozan

Of course, it will stick around. Companies will compile into webassembly and put it on a webpage. It will be much easier to ask for subscription money when it is only on webpage.

Abominator

Such a sad sad day when people seriously consider this.

It's grossly inefficient. Modern day web browsers are as large as operating systems in complexity, but with vastly more resource requirements.

Libre office was meant to be written in Java making it portable anyway. But this fails to run in Safari, so I assume I have to use Chrome.

It may yet supplant the JVM

Warm Braw

I think it's important to realise that WASM and JVM (or .Net) are rather different things. WASM is a type of virtual machine code: it has a limited set of data types and operations that correspond to commonly-available hardware instructions. The JVM has access to the high-level type information and other metadata associated with the source code: this is how frameworks can wire up code to events and do dependency injection (for example). There's no reason you can't do that on top of WASM, but you can't do it with WASM alone.

That said, the LibreOffice demo is quite impressive - once it loads. A lot of the heavy lifting is done by [1]QT for WebAssembly and the general performance of the UI is considerably better than I was expecting.

That said, it raises some interesting questions about WASM - about multi-threading and its relationship to other browser activity, about rendering and about the communication between WASM "components" and other DOM objects. And of course, about GUIs in general: desktop UIs that assume a high-precision pointer and a display that can represent the width of a standard sheet of paper are not a particularly good fit for today's devices.

[1] https://wiki.qt.io/Qt_for_WebAssembly

Got curious. Clicked the link.

jake

After several minutes of "Downloading/Compiling...", it failed with "TypeError: Body has already been consumed."

This is on bone-stock Slackware 14.2-stable ... might try it on Slack 15.0 tomorrow, if I can be arsed. Probably not.

Yes, I know what the error message means.

Single user vs Multi-user collaboration

b0llchit

It is a very nice demonstration of what is possible. Whether it is necessary, that is a different question. Native versions have definitely advantages in speed and versatility, but will therefore also open up for larger security holes. Still very nice.

That said, what I have been missing is a (simple) multi-user online version of libreoffice. An easy collaboration suite that a) does not require third party logins, b) does not send data to the tech overlords for ads or other nefarious/questionable purpose and c) is independent in choosing where the storage is located. Something I can install on my own server and can create my own circle of access. Paramount is the multi-user part, where documents are accessed simultaneously by the users. No need to do too fancy formatting. Final formatting is a one-man job anyway and can be done in a local LO copy.

I just need enough to tide me over until I need more.
-- Bill Hoest