WebAssembly: Bedeitung, Virdeeler, Benotzungsfäll a méi
Gefaang am WebAssembly Hype, awer net genau sécher wat et ass? Hei ass déi niddereg.

WebAssembly oder Wasm ass e binäre Code-Format fir Programmer ze kreéieren déi op all Computerarchitektur ausféiere kënnen.
De System besteet aus enger virtueller Maschinn an engem Compiler, deen Computercode vu Programméierungssproochen, wéi C oder C++, an déi mënschlech liesbar .wat an déi binär .wasm Formater iwwersetzt.
Dem WebAssembly säin ursprénglechen Zil war et de Programméierer z'erméiglechen, High-Performance-Applikatioune fir Websäiten z'entwéckelen andeems se bal gebierteg Ausféierungsgeschwindegkeet an engem Browser erméiglechen. Awer den Tech schéngt elo iwwer Browser an an d'Wollek ze evoluéieren.
Dëse Guide weist Iech alles wat Dir wësse musst iwwer dës evoluéierend Technologie, seng Stäerkten a Schwächten, souwéi säin zukünfteg Potenzial.
Wat ass WebAssembly?
WebAssemblée ass e Binärcode-Format deen op enger virtueller Maschinn leeft an déi verschidde Sprooche kënne kompiléieren. Et ass entwéckelt fir portabel ze sinn a kann op engem Webbrowser oder als Serverapplikatioun lafen.
Fir d'éischt am Joer 2017 verëffentlecht, WebAssembly ass eng W3C Empfehlung zënter 2019 a gëtt vu ville Bäiträg ënnerhalen, dorënner Mozilla, Google, Microsoft, Red Hat, a vill méi.
Dat ursprénglecht Zil war bal gebierteg Ausféierungsgeschwindegkeet z'entwéckelen wéi Dir mat C/C++ Uwendungen am Browser fannt. Et ass och geduecht fir e sécheren, oppene Standard, debuggbaren a Versiounslosen Webstandard ze sinn, deen zréckkompatibel a JavaScript-kompatibel ass.
Wéi funktionéiert WebAssembly?
WebAssembly ass entworf als Runtime-Moteur, wéi Java oder JavaScript, deen an engem Browser- oder Serverëmfeld agebonne ka ginn fir Computercode auszeféieren, deen an den .wasm binären oder .wat Textformater kompiléiert ass.
Fir Code fir WebAssembly Ausféierung ze schreiwen, schreift den Entwéckler de Programm an enger vun de villen ënnerstëtzte Sproochen. Dann kompiléiere se mat engem WebAssembly Compiler entweder AOT (Ahead of Time) oder JIT (just an Zäit).
Dëse Code kann déi meescht Aarbecht am Ausféierungsëmfeld maachen, awer et kann net op d'DOM-Objete vun engem Browser kommen oder änneren. All esou Interaktioun muss duerch JavaScript passéieren.
Wéi erstellen ech eng Sample WebAssembly Applikatioun
Eng einfach Wasm Applikatioun fir de Webbrowser erstellen ass méiglech mat just e puer Schrëtt wéi Dir hei ënnen gesitt:
- Eroflueden an installéieren der Emscripten SDK.
- Schreift Är Probe helloworld.c Code oder maacht et an C ++/Rust wann Dir léiwer.
- Run emcc helloworld.c -s WASM=1 -s helloworld.html an engem Terminal fir de Code op WebAssembly mat Emscripten ze kompiléieren. Et erstellt d'Wassm Binär, HTML a JavaScript Dateien déi Dir braucht (Klebcode).
- Servéiert d'helloworld.html Säit iwwer Äre Webbrowser.
D'Virdeeler vun WebAssembly
Et gi vill Grënn fir WebAssembly a seng verbonne Technologien unzehuelen, si enthalen:
- Native Leeschtung - WebAssembly huet sou e Low-Level Design datt et Performances bitt ähnlech wéi Low-Level Sproochen wéi C an C ++.
- Sécherheet - De System ass entwéckelt fir sécher ze sinn andeems en an engem virtuellen Ëmfeld mat limitéiertem Systemzougang isoléiert.
- Open Standard - Vill Organisatiounen an Eenzelpersounen droen zur WebAssembly bäi an et ass eng offiziell W3C Empfehlung.
- liicht - WebAssembly kompiléiert a binäre Code fir an enger virtueller Maschinn auszeféieren. Dëse Code ass portabel a brauch oder kënnt net mat Systemdateien.
- Multi-Sprooch Support - Iwwer 50 Sprooche kënnen an WebAssembly kompiléieren.
- Plattform Onofhängeg - D'WebAssembly virtuell Maschinn ass fir all Architektur entwéckelt fir datselwecht Runtime Ëmfeld ze presentéieren. Alles wat en Entwéckler muss maachen ass Code fir WebAssembly ze schreiwen.
D'Limitatiounen vun WebAssembly
- Aarbecht am Viraus - De Standard ass nach ëmmer an der Entwécklung an dofir si vill Features a Verbesserungen nach ze kommen.
- Keng Müllsammlung - WebAssembly feelt nach ëmmer Drecksammlung, obwuel et geschwënn ëmgesat ka ginn.
- Keen DOM Zougang - Dir kënnt net Zougang zu engem Webbrowser d'DOM direkt aus WebAssembly, Dir musst duerch JavaScript goen.
WebAssembly vs Java
Java ass eng Zort vun der éischter Implementatioun vu WebAssembly. Et war entworf als schreiwen eemol, lafen iwwerall Sprooch, awer huet vill Themen laanscht de Wee entwéckelt.
Just wéi mat Java benotzt WebAssembly eng RE (Runtime Environment) fir säi Code auszeféieren, awer am Géigesaz zu Java, kënnt Dir WebAssembly an Ärer Sprooch vun der Wiel schreiwen.
WebAssembly vs JavaScript
WebAssembly leeft am Browser oder an engem anere Hostëmfeld aus, grad wéi Javascript. Wéi och ëmmer, wou JavaScript an d'Ausféierungsëmfeld am Textformat geliwwert gëtt a just an der Zäit kompiléiert ass, huet WebAssembly souwuel Text wéi och binär Formater.
Bannen am Webbrowser huet JavaScript Zougang zu der DOM, während WebAssembly net. Wéi och ëmmer, wann et ëm d'Ausféierungsgeschwindegkeet geet, schléit WebAssembly JavaScript, mat senge bal gebiertege Code Ausféierungsgeschwindegkeeten.
Geschwindegkeet ass wou WebAssembly blénkt an de Grond datt et ideal ass fir sou vill Gebrauch. Dir kënnt WebAssembly an e Browser mat JavaScript lueden an déi zwee Coden kënnen zesumme lafen a Ressourcen deelen.
WebAssembly vs Docker vs Kubernetes
Docker a Kubernetes sinn zwee vun de populäre Technologien déi Cloud Computing poweren. Docker ass eng Containertechnologie déi d'Entwéckler et erméiglecht eng Applikatioun mat all senge Systemabhängegkeeten an engem eenzege Package ze packen. Dëst mécht et einfach d'Applikatioun an all Cloud Ëmfeld an enger Sekonn oder manner z'installéieren.
Kubernetes, op der anerer Säit, ass en Open-Source System fir containeriséiert Uwendungen wéi Docker, CRI-O, containerd, an all Kubernetes CRI (Container Runtime Interface) Implementatioun ze managen an z'installéieren. Kubernetes mécht et och einfach Cloud-Deployementer iwwer verschidde Serveren oder virtuelle Maschinnen ze skaléieren.
Vun dësem Standpunkt ass WebAssembly méi ähnlech wéi Docker a ka gemaach ginn fir als containeriséierter Cloud-Applikatioun mat Kubernetes ze lafen. Et bitt och vill Virdeeler iwwer Docker, awer wäert et wahrscheinlech net ersetzen.
Iwwert de Browser
Am Ufank waren et Webserver. Dir musst eng voll Maschinn als Server widmen. Duerno goufen et virtuell Maschinnen, oder VMs, déi et erlaabt hunn e Server op nëmmen een oder méi CPU-Threads ze lafen. Trotzdem musst Dir en dedizéierten VM hunn.
Cloud Computing huet et méiglech gemaach Serveren ze lancéieren an ze bedreiwen nëmme wann néideg andeems d'Applikatiounen containeriséiert. Dëst huet zu enger Reduktioun vun de Käschten gefouert, well Dir musst just bezuelen fir dat wat Dir benotzt - keng speziell Maschinnen méi. Mä et sinn nach e puer Problemer.
Als éischt kënnen Docker-Dateien e puer Gigabyte grouss sinn, an dëst bedeit e klenge Verspéidung beim Startup an aner Gestiounsprobleemer. Eng ähnlech Wasm Datei kann awer nëmmen e puer MB grouss sinn, well et e pre-kompiléiert Binär ass. Dëst gëtt et vill méi séier Startzäit wéi Docker, perfekt fir gewëssen Zäitkritesch Uwendungen.
Zweetens, den Design vum WebAssembly bedeit datt den Entwéckler net Systemressourcen muss verwalten an zouginn, hien kann einfach op de Punkt kommen mat senger gewielter Programméierungssprooch.
Dës Features maachen WebAssembly ideal fir Cloud Mikro-Servicer ze lafen, obwuel Docker Uwendungen nach ëmmer bevorzugt sinn fir Uwendungen déi méi Kontroll iwwer d'Betribsëmfeld an de Dateiesystem erfuerderen.
Fir méi Informatiounen, Projeten wéi WasmCloud an WasmEdge entwéckelen WebAssembly zu enger liewensfäeg kéint Rechenplattform.
Wasm Benotzungsfäll
Et gi vill Benotzungsfäll fir WebAssembly, wéinst senger eegener Natur. Si kënnen an dräi grouss Gruppen ënnerdeelt ginn; am Browser, ausserhalb vum Browser, an Hybrid Setups.
Den In-Browser-Typ ass selbstverständlech an ausserhalb vum Browser bezitt sech meeschtens op Server-, IoT- a Cloud-Deployementer, während den Hybrid eng Mëschung vun deenen zwee bezitt.
Folgend ass e Bléck op d'Benotzungsfäll wou Wasm excel kann:
- Schon existéierend High-Performance Code - Alen awer wonnerschéine Code deen Dir just op WebAssembly porte kënnt.
- Neie High-Performance Code - Déi Dir musst vun Null designen an ëmsetzen.
- Portéieren Desktop Uwendungen op de Web - Dëst kéint eng nei Rass vu web-baséiert Desktop-Léisungen opmaachen, wéi z Web-baséiert Video Redaktioun.
- Cloud Computing - Lafen niewent Docker a Kubernetes fir nei Méiglechkeeten.
Folgend ass e Bléck op spezifesch Uwendungen an Szenarie wou Wasm kann exceléieren:
- Video & Bild Redaktioun
- Spilldesign
- AI Uwendungen
- Virtuell & augmentéiert Realitéit Uwendungen
- Musikapplikatiounen
- P2P Uwendungen
- Server-Säit Uwendungen
- Cloud / Cluster Berechnungen
- Computer-Assistent Design
- OS Plattform Simulatioun
- Ausnahme
- Lokale Webserver
- Remote Desktop Uwendungen
- Wëssenschaftlech Visualiséierungen
- Hybrid gebierteg Apps op Smartphones
- Op IoT Apparater
Lëscht vun ënnerstëtzte Sproochen & Frameworks
Iwwer 50 Sproochen kompiléieren op WebAssembly, an hei sinn e puer vun de populäersten:
- C
- C ++
- R
- Rubin
- Swift
- Go
- Kotlin
- Rust
- PHP
- blazer - E Kader fir .NET Entwéckler.
- JwebAssembly - Compiler fir Java Bytecode a verwandte Sprooche wéi JRuby, Jython, Groovy, Scala a Kotlin.
- Yew - E Rust Kader fir Multi-threaded Web Apps mat WebAssembly ze kreéieren.
- AssemblyScript - Eng Sprooch speziell entwéckelt fir WebAssembly Code ze kreéieren.
- Grain - Eng staark getippten funktionell Sprooch.
- Motoko
Dir kënnt méi Sprooche fannen hei.
Lëscht vun WebAssembly Runtimes & Tools
- All gréisser Browser hunn Wasm Support
- Pyodide - Python Runtime am Browser mam Python wëssenschaftleche Stack, dorënner Pandas, NumPy, SciPy.
- waerm
- wagi - Fir Mikroservicer a Webapps
- Wasi - Modulär System Interface
- WasmTime - Schnell a sécher WebAssembly Runtime.
- Wasmer
- Lucet
- wasmCloud - Cloud Ëmfeld
- Krustlet – Kubernetes kublete fir Wasm ze lafen, a Rust geschriwwen.
- WasmEdge - Cloud a Rand Runtime Ëmfeld
Conclusioun
Mir sinn um Enn vun eiser Rees an WebAssembly komm a wat et fir Informatik hält. A wéi Dir kënnt gesinn, et hält vill Verspriechen.
Et ass awer nach ëmmer eng Aarbecht amgaang awer a konstanter Entwécklung. A wann Dir interesséiert sidd, kënnt Dir méi Informatiounen fannen hei, hei, an hei.





