JavaScript war über zwei Jahrzehnte lang die einzige Programmiersprache, die in Browsern ausgeführt werden konnte. Andere Sprachen wie Python, C++ und Go dienten hauptsächlich zum Erstellen der Serverseite von Webanwendungen und -diensten.
JavaScript war ziemlich gut, aber viele andere Programmiersprachen sind schneller. Es gibt viele Vorteile, die Web-Apps nutzen können, wenn andere, leistungsfähigere Programmiersprachen direkt im Browser ausgeführt werden.
WebAssembly bietet eine effiziente, offene und sichere Option, die Teil der offenen Webplattform ist. Sie können damit Anwendungen erstellen, die auf Browsern, Servern und in anderen Umgebungen ausgeführt werden.
Einführung in WebAssembly
WebAssembly (WASM) ist eine effiziente, tragbare, W3C-standardisierte Low-Level-Sprache. Es definiert ein Codeformat und Schnittstellen für Programme zur Interaktion mit Plattformen im Web.
Sie können die meisten Programmiersprachen in das Binärcodeformat von WebAssembly kompilieren. Browser können den resultierenden WASM-Code genauso interpretieren und ausführen wie normales JavaScript. Sie können WebAssembly auch zusammen mit JavaScript-Code ausführen, um die App-Leistung und Interoperabilität zwischen den beiden zu verbessern.
WebAssembly wurde 2019 zu einem W3C-Standard mit Unterstützung in vielen Programmiersprachen. Entsprechend Hergestellt mit WebAssembly, gibt es bereits viele beliebte Projekte, die WebAssembly verwenden, um schnelle und sichere Software an ihre Benutzer zu liefern.
Viele Programmiersprachen, einschließlich solcher, die serverseitig spezifisch sind, unterstützen WebAssembly. Dazu gehören Rust, Go, Python, C++, TypeScript, Java, PHP und Ruby. Besuche die awesome-wasm-langs-Ressource um mehr über die von WebAssembly unterstützten Sprachen und die Pakete zu erfahren, die Sie damit verwenden können.
Hier ist ein Beispiel WebAssembly-Programm von Tutorials Point die maximal zwei ganze Zahlen zurückgibt:
Die WebAssembly-Syntax ist im Vergleich zu JavaScript relativ ausführlich, aber das sollte kein Problem darstellen. Sie müssen die Syntax nicht lernen, da WebAssembly das Kompilierungsziel für die Programme ist, die Sie in Ihrer bevorzugten Sprache schreiben.
So funktioniert WebAssembly
WASM existiert als Kompilierungsziel für andere Programmiersprachen zum Transpilieren. Du kannst reinschreiben Ihre bevorzugte Programmiersprache und den Quellcode in WASM-Bytecode kompilieren, der auf dem Client ausgeführt wird. Die Übersetzung in nativen Maschinencode bedeutet, dass es mit hoher Geschwindigkeit ausgeführt werden kann, normalerweise schneller als JavaScript.
Eine der kritischen Funktionen von WASM ist die JavaScript-Interoperabilität. Sie können WASM-Module in eine Webanwendung importieren und die WASM-Funktionen zur Verwendung in JavaScript-Code verfügbar machen. JavaScript-Frameworks können WASM für eine höhere Leistung nutzen.
WASM verwendet ein Sandbox-Ausführungsmodell ähnlich wie JavaScript. WASM interagiert mit dem Host-Rechner über ABIs (Application Binary Interface) wie die WebAssembly-Systemschnittstelle die Zugriff auf Ressourcen und andere Systemdienste basierend auf den Anforderungen des Programms bietet.
Viele moderne Browser unterstützen WASM, einschließlich Chrome, Microsoft Edge, Mozilla Firefox, Opera und Safari. Sprachen wie Go und Rostunterstützung WASM aus der Kiste.
Warum das Web WebAssembly braucht
JavaScript hat konstruktionsbedingt eine eingeschränkte Funktionalität. Es ist nicht einer der schnellste oder leistungsstärkste Sprachen seit es als Skriptsprache für das Web begann. Obwohl es viele Laufzeiten gibt, in denen JavaScript mit unterschiedlichen Geschwindigkeiten ausgeführt wird, gibt es schnellere und mehr leistungsstarke Sprachen, die WebAssembly für Anwendungsfälle wie Spiele, Videos usw. ins Web bringen kann Musik.
WebAssembly bietet auch mehr Portabilität und Flexibilität für Sprachen, die nicht im Web ausgeführt werden. Die Einführung weiterer Sprachen im Web (der beliebtesten Open-Source-Plattform) sollte insgesamt zu einer verbesserten Erfahrung führen.
Die Einführung von WebAssembly schreitet schnell voran
Viele Unternehmen und Entwickler erstellen Anwendungen mit WebAssembly. Google, Dropbox und Cloudflare verwenden WebAssembly aktiv in einigen ihrer Anwendungen.
WebAssembly ist bei Python-, C++- und Rust-Entwicklern beliebt. Python-Entwickler verwenden üblicherweise Pyoidide und PyScript, C++-Entwickler und Emscripten und Rust-Entwickler mit Percy, Yew, Sycamore, MoonZoon und dem Seed-Framework.