Odpovídáte na názor ke zprávičce Servo Engine už umí renderovat HTML tabulky vícevláknově.
>> Ty stránky musí fungovat i na ostatních a starších verzí prohlížečů, takže původní řešení stejně musí mít.
> Nemusí.
Osobní projekt nemusí, ale zákazník nebude mít radost.
> Já ale píšu o schválených standardech.
> Setkal. Akorát že Gecko nic neemuluje.
A o těch standardech jsem vám řekl, že někdy nejdou do takových detailů, aby nemusel Firefox upravit svoje chování podle majoritního Chrome kvůli nějakému webu. Emulovala i Opera a Edge a Firefoxu nic jiného nezbývá s 1% podílem.
>> Proto jsou technologie, které pro web generuji HTML+JS a nativní kód pro mobily,
> Žádná taková technologie se masivně nepoužívá.
https://www.google.com/search?q=react+native+is+web+engine+on+mobile+or+not
* Is React Native just a WebView?
"React Native WebView is a node package that introduces a WebView component that allows developers to display web content seamlessly within a React Native application. Earlier, the component was part of React Native, but now it's its package and is community-driven."
Takže se skutečně pro mobily kompiluje a webview (pro doplňující funkce) už ani není v základním balíku.
> Vážně byste si nejdřív měl nastudovat, co je WebAssembly.
Jak sjem psal předtím, rád porovnám svoji znalost s vaší.
> Když ten kód přeložíte JSX kompilátorem, dostanete JavaScript používající JavaScriptové knihovny (třeba React). Ovšem JSX je pouze syntaktický cukr, jenom jiný zápis volání JavaScriptových funkcí. A React sice používá JSX, ale není to nutné (můžete psát ručně to volání funkcí, akorát je to méně pohodlné, než JSX). A naopak JSX můžete používat bez Reactu.
Pro web přeloží do HTML+JS, pro mobily do nativní app (nepoužívá webové jádro - příslušná komponenta ani neni v základní instalaci, viz část odpovědi výše).
> Já jsem o žádných starých frameworcích nepsal.
React: 11 let, Angular: 7 let, Vue: 10 let, Svelte: 8 let.
> Teď už vám zbývá jen vyřešit, jak spouštění aplikací na mobilu souvisí s webovými stránkami.
Uvedl jsem pro srovnání z pohledu uživatele.
> To jsem nepsal. Ale prohlížeč pořád je zobrazovač dokumentů založených na značkovacích jazycích, stylovaných pomocí CSS a modifikovaných JavaScriptovým kódem. K tomu pak podporují prohlížeče (často až na Safari) různá další API, která lze volat z JavaScriptu.
+ WebAssembly, které nahrazuje klasické pluginy.
> (...) Proto vznikla myšlenka udělat něco jako univerzální javascriptový bajtkód přenositelný mezi prohlížeči. Takový assembler pro webové prohlížeče.
WebAssembly není JS bajtkód. A ani bajtkód Flashe, Javy, C#, ... Byl navržen od nuly ("from scratch"). Pro zajímavost, WebAssembly není nový ani z pohledu bajtkódu (kromě ActiveX spouštěly pluginy svůj bajtkód), ani z pohledu sandboxingu (NaCl pluginy v ChromeOS).
> Který ovšem nebude mít přístup k ničemu jinému, než k čemu má dnes přístup JavaScript.
Tzn. má přístup ke všemu, co JS.
> Naposledy byla přidána vrstva automatické správy paměti, v prohlížečích je to implementováno pár měsíců.
I bez podpory prohlížeče už předtím existovala rozpracovaná komunitní implementace a implementace Javy to vtipně (ale pomalu) obcházela alokováním porměnných vně, v JS glue vrstvě.
> WebAssembly v prohlížečích ještě nemá přístup k žádným webovým API (takže ani k DOMu), veškerá webová API lze zatím z WebAssembly používat pouze voláním JavaScriptu, který teprve může volat ta webová API.
To je ta glue vrstva. Stejně jako nativní aplikace pro Android a iOS musí volat API OS skrze primární jazyk(y). Nebo třeba .NET/Java/Python na desktopu.
> WebAssembly v prohlížečích nikdy nebude mít přístup k ničemu navíc oproti JavaScriptu.
A proč by měl? Jde o náhradu JS, pokud chci programovat frontend v nečem jiném než JS (glue vsrtva je v mnoha řešeních generovaná automaticky).
> který s okolním světem bude komunikovat jenom prostřednictvím webových API, nebude volat libovolný nativní kód.
Pro zajímavost, v rámci rozšíření prohlířeče (extenzí) může JS/WebAssembly volat nativní kód (nativní aplikace) vně prohlížeče.
> Proto se to nedá přirovnávat k pluginům v prohlížečích, jako byly Java Applety nebo Flash, což byl nativní kód spouštěný vedle prohlížeče, který mohl dělat naprosto cokoli.
Toho jsem se záměrně zbavili tím sandboxingem.