Nikoli, knihovny nativních aplikací, které používáte na počítači, se distribuují ve formě binárek. To, že máte vedle binárky k dispozici i zdrojové kódy, je jiná věc – a u WebAssembly to může být úplně stejně. Distribuce ve formě zdrojových kódů je běžná např. v Gentoo nebo Linux From Scratch, ale na Windows, Macu i většině linuxových distribucí se distribuují už přeložené binárky.
Tohle je ale způsob, jak dělat nativní aplikace. Když se webový svět dostal do stavu, že v něm jde nějak udělat aplikace, vznikl postupně Node.js a pak Electron, které umožňují webovou aplikaci zabalit a spouštět jako nativní. Tahle iniciativa podle mne řeší to samé, jako Node.js pro JavaScript, akorát pro WebAssembly.
WebAssembly je bajtkód a potřebuje k běhu virtuální stroj. Je to tedy velmi podobné, jako Java. A jde o to, aby ten virtuální stroj nutný pro běh nebyl implementovaný jen v prohlížeči, ale aby byl dostupný samostatně – jako je to u té Javy. Takže si pak budete moci spustit aplikaci přeloženou do WebAssembly přímo ve svém systému, nebudete ji spouštět v prohlížeči. Nativní možná není úplně to správné slovo, ale jde o to, že je to aplikace spuštěná přímo v systému, ne v prohlížeči.
1. Hadam sa dozijem obdobia, kedy sa prestanu zneuzivat webove technologie na desktope (uz tu mame neskutocne hrozny Electron).
2. Ja by som bol radsej keby dana Aliancia zatlaci na vyvoj dalsej funkcionality WebAssembly ako pristup k domu a tym zrusi monopol javascriptu na webe.
3. Sandboxyng sa nerovna bezpecnost. Casto sa stava, ze prinesie viac komplikacii pre serioznych vyvojarov ako pre tych, co by vam chceli skodit, lebo ti si najdu cestu, hoci nebude fungovat u vstekych.
"1. Hadam sa dozijem obdobia, kedy sa prestanu zneuzivat webove technologie na desktope (uz tu mame neskutocne hrozny Electron)."
nevypadá to tak, popularita elektronových aplikací roste.
"2. Ja by som bol radsej keby dana Aliancia zatlaci na vyvoj dalsej funkcionality WebAssembly ako pristup k domu a tym zrusi monopol javascriptu na webe."
v čem to bude jiné než současné transpilery?
14. 11. 2019, 09:31 editováno autorem komentáře
"nevypadá to tak, popularita elektronových aplikací roste."
Zial exponencialne rastie aj zratie RAM, velkost isntalaciek, znizuje sa responzivita programov.
Ja chapem, preco si ho niektori deveopery vyberaju, ale pre pouzivatela vyhody neprinasa.
"v čem to bude jiné než současné transpilery?"
Tranpilery stale narazaju na to, ze je pod nimi javascript, ze sa ti moze stat ze v jazyku co ani nepozna NULL ti vyhene undefines zo strasnou chybou. Ak sa nebyvime len o supersete javascriptu (ako Flow alebo typescript) tak aj na vykon.
Ked sa bavime o prenosilnosti, tak je stale problem vyvjat pre vsteky browsre, lebo kazdy implementuje ine featury a niektore dropne (v tomto je Chrome majster), takze ostatni musia dohanat co si Google vymsli. Takze mas na jednej strane roztiepenost JS enginov a transpilerov ci babelu na druhej strane mas jednoduchu VM na interpretaciu bytecodu a vsteky ostatne jazykove a runtime featury si uz riesi samotny prekladac do bytecodu.
Podla mna by to prinieslo jednoduchsiu konsolidaciu a stabilitu medzi prehliadacmi a sucasne vyvojaom slobodu.
"Javascript NULL samozřejmě "pozná"."
"A nevím, jaký je rozdíl mezi " undefines zo strasnou chybou" a třeba Javovou NullPointerException."
V tom, ze javascript ma plno nepeknych vlastnosti, ktore presakuju do prekladaneho kodu (null/undefined, volanie veci co nejstvuju, runtime chyby, porovnavanie,...).
Skusal som vela prekladacov do JS, fable, Elm, TypeScript, Flow, ale pri kazdom presakuje javascript vysie a neumoznuju tak vyuzit plny potencial jazyka. K tomu nechcem mat len prekladac do nedebugovatelneho javascriptu, chcem mat plnohodnotny jazyk a slobodu jeho vyberu. Co WebAssembly umozni.
Myslíte projekt Watt ( https://github.com/dtolnay/watt )? Pokud ano, tak bych tomu úplně webassembly plugin neříkal. Pokud to chápu správně, tak se to používá pouze při kompilaci a výsledná binárka WASM runtime vůbec neobsahuje.