WebAssembly: společný projekt Googlu, Microsoftu, Mozilly ad. zrychlí JavaScript
JavaScript se potýká s podobným problémem jako kupříkladu PHP. Dovolím si udělat takové hrubé přirovnání, kdy čisté PHP je pomalé, ale lze používat některé frameworky, které práci zjednodušují a urychlují. Ale výkonnostní špičku, na kterou nebude podle všeho stačit ani chystané PHP 7, představuje projekt facebooku zvaný HipHop Virtual Machine (HHVM), což je virtuální stroj starající se o JIT kompilaci PHP (či Hack) kódu,. který facebook používá na běh kódu svých projektů/stránek. Díky tomuto mezistupni mu vše běhá o poznání rychleji a přesně toho se nyní Apple, Microsoft, Mozilla, Google a další pokusí docílit u JavaScriptu.
WebAssembly je zjednodušeně řečeno pokus o univerzální binární formát, ve kterém budou JavaScriptové věci (které narozdíl od PHP nevykonává server, ale váš prohlížeč) poněkud „předžvýkány“ a následně tak vykonávány na stránkách rychleji. WebAssembly je šancí na zrychlení běhu webových stránek, o to více, čím více je na nich JavaScriptu. Ale za určitou cenu.
Tou cenou je pochopitelně fakt, že vašemu prohlížeči nebude servírován textový zdroják JavaScriptových prvků, ale binární data, která nejsou přímo člověkem čitelná. Ale kolik z nás se zabývá zkoumáním desítek kilobajtů až jednotek megabajtů JavaScriptového kódu, který dnešní moderní weby používají, nás s Drupalem nevyjímaje?
WebAssembly je cestou jak sjednotit až dosud roztříštěné pokusy o urychlování běhu JavaScriptu právě „předžvýkáním“, ať již šlo o projekt TypeScript od Microsoftu, který je nadstavbou JavaScriptu, nebo asm.js od Mozilly, nebo Dart od Googlu, který z (mimo jiné) JS vychází.
Vlastně bychom se na WebAssembly neměli dívat jako na „předžvýkaný“ JavaScript, nýbrž jako na nový univerzální binární formát, který bude schopen vykonat libovolný webový prohlížeč. V prvotní fázi se ostatně WebAssembly zaměřuje hlavně na C/C++.
Do budoucna dává tento násobně rychlejší nástupce JavaScriptu šanci na vylepšený běh věcí psaných v HTML5, WebGL a podobně. Ostatně třeba systému Firefox OS by tohle mělo hodně prospět, jelikož v něm vše běží webovou cestou a rychlost chodu tak v mnoha aspektech za nativními věci á la Android či iOS a WP v mnohé zaostává. Totéž může platit i pro další budoucí zařízení, třeba televizory Panasonic, či … ehm … automatické pračky :-).