Laden...

WebAssembly Desktop Standardisierung

Erstellt von Abt vor 5 Jahren Letzter Beitrag vor 5 Jahren 2.032 Views
Abt Themenstarter:in
16.806 Beiträge seit 2008
vor 5 Jahren
WebAssembly Desktop Standardisierung

Mozilla Hacks hat gestern eine sehr interessante Standardisierung platziert: WebAssembly ausserhalb vom Web

Standardizing WASI: A system interface to run WebAssembly outside the web

Worum geht es?

Das Web bisher war fokussiert auf JavaScript - jeder Browser hat JavaScript verstanden.
Das Problem von JavaScript ist aber, dass es teilweise einfach eine Hassliebe ist; und, dass JavaScript eben im Plaintext auf dem Client verarbeitet wird.

Seit geraumer Zeit gibt es nun aber die WebAssembly.
Bei einer WebAssembly wird der Quellcode nicht im Klartext ausgeführt, sondern - wie zB. bei Java oder .NET - über Bytecode (also quasi eine Zwischensprache via Virtual Machine).
Das hat das Resultat, dass man eine Client-App im Browser eben nicht mehr nur durch JavaScript abbilden kann, sondern auch durch .NET (zB. via Blazor), in Java, Rust, Go oder in C/C++.

Funktionieren tut das Ganze auch bereits in Chrome, Firefox, Edge und WebKit-basierten Browsern: https://caniuse.com/#search=wasm

WASI
Durch die enorme Entwicklungsgeschwindigkeiten von Webtechnologien sind diese auch schon längst auf dem Desktop angekommen.
Schon heute ist es möglich einfach Single Page Application-Technologien wie Angular mit HTML und Co auf dem Desktop auszuführen; zB. via Electron.
Auch Apps sind kein Problem mehr (zB. via React Native oder NativeScript).

WASI - WebAssembly system interface - ist nun der zwangsläufige Ansatz, wie Desktop-Schnittstellen für WebAssembly Applikationen über einen gemeinsamen Standard und Technologieneutral zur Verfügung gestellt werden, sodass auf System APIs zugegriffen werden kann - natürlich unter dem Aspekt der Sicherheit.

Damit wäre ein weiterer Schritt gegeben, dass heutige Web-Technologien mehr und mehr auf dem Desktop ankommen.

T
156 Beiträge seit 2010
vor 5 Jahren

Hi Abt,

vielen Dank erstmal für Deinen Beitrag 👍

Das Problem von JavaScript ist aber, dass es teilweise einfach eine Hassliebe ist; und, dass JavaScript eben im Plaintext auf dem Client verarbeitet wird.

Genau so ist es... die Liebe dazu und der Hass dagegen, das sind wirklich Welten...

Damit wäre ein weiterer Schritt gegeben, dass heutige Web-Technologien mehr und mehr auf dem Desktop ankommen.

Ein sehr guter Weg in die richtige Richtung.
Aber ich sehe es nicht kommen, das man mit einer SPA alles machen kann, was man halt mit einer Desktop-App machen kann.

Denn irgendwie bist Du ja immer im Browser gefangen... das hoffe ich doch zumindest !!

Marko

Abt Themenstarter:in
16.806 Beiträge seit 2008
vor 5 Jahren

Aber ich sehe es nicht kommen, das man mit einer SPA alles machen kann, was man halt mit einer Desktop-App machen kann.

Eine "SPA" bezogen auf Web ist nichts anderes als eine korrekt umgesetzte WPF Anwendung mit MVVM Pattern.
SPA heisst hier ja nur, dass die Applikation an für sich komplett auf dem Client läuft ohne vollständigen Neuaufbau des Contents bei jeder Aktion.

Technologien wie C++, .NET (WinForms/WPF) oder Java haben aber zumindest aktuell noch einen Performance Vorteil, was die UI betrifft.
Für 99,9+% der Anwendungen ist das aber irrelevant, weil nicht notwendig.

Die wirkliche UI Performance brauchen nachher Games, CAD/CAM-Anwendungen, etc...

Denn irgendwie bist Du ja immer im Browser gefangen... das hoffe ich doch zumindest !!

Darum gehts: Anwendungen mit WASI brauchen keinen Browser mehr.
WASI ist eine VM wie eben die Runtime von .NET Framework/.NET Core oder Java auch.
Und auch im Prinzip braucht Electron heute schon keinen (installierten) Browser, denn jede Electron App bringt ihre V8 Engine von Haus aus mit.

888 Beiträge seit 2007
vor 5 Jahren

Hier noch ein deutscher Artikel auf Heise-Developer:

Mozilla startet Standardisierungsprozess für WebAssembly außerhalb des Webs