Let me begin by saying that WASM is not a silver bullet. I know this doesn’t 
happen on our community, and that David is not mentioning WASM as a magical 
solution for HTML5 deployment.

A bit of context is needed to understand why WASM is important and cool. In the 
past, many C/C++ to Web solutions were based on emscripten which is a toolset 
based on LLVM that can output C/C++ code in something called “ASM.js” which is 
a very compact JavaScript source code that kinda does what the C/C++ was doing. 
This is how people ported the “Unreal Engine” to the web for example. Be aware 
that ASM.js doesn’t deal with graphics and stuff, that still web technologies. 
It is just very good at number crunching and makes it possible to reuse C/C++ 
code.

The main drawbacks from ASM.js (which can be felt on the HTML5 deployment) is 
that the file sizes are huge. Just imagine a compiler that instead of 
generating native binary code is generating actual equivalent JavaScript code. 
This presents two problems for the user, first is the lengthy file transfer 
needed to download all that content to the users browser, second is the time it 
takes for the JS engine to actually parse those large files.

These problems are mitigated by WASM. WebAssembly grew out of the working 
groups that were developing ASM.js. It is a bytecode format, so it is smaller 
than the equivalent JS file. It is also a standardized VM, which means it 
executes the same in all browsers that support it. Another cute trick it can do 
is that is can start loading the bytecode in the VM while it is transferring 
(aka loading while streaming) which means that by the time the transfer 
completes, a huge portion of that code is already loaded.

Not only this speeds up the user experience, but having a well-defined VM makes 
it easier for language developers to target it instead of the ASM.js hacks.

The same toolset that produces ASM.js can produce WASM. It should be natural 
evolution for the HTML5 deployment to switch from ASM.js based to WASM based. 
This doesn’t make it magical though, this switch alone will not make LC work on 
the browser beyond what they’re currently doing. It needs more work, but it 
should yield smaller files which makes it a better experience.

> On 17 Feb 2021, at 15:30, Graham Samuel via use-livecode 
> <use-livecode@lists.runrev.com> wrote:
> 
> Well done Klaus, I was still Googling it! I am in fact looking at articles 
> (e.g. https://blog.bitsrc.io/whats-wrong-with-web-assembly-3b9abb671ec2 
> <https://blog.bitsrc.io/whats-wrong-with-web-assembly-3b9abb671ec2>)  that 
> suggest that despite some very significant users (Google Earth is one), wasm 
> hasn’t exactly conquered the universe in the three years since it was 
> launched.
> 
> Would LC users benefit and/or would it be a massive diversion of scarce 
> development effort? Anyone have any idea?
> 
> Graham
> 
>> On 17 Feb 2021, at 15:19, Klaus major-k via use-livecode 
>> <use-livecode@lists.runrev.com> wrote:
>> 
>> To all who are also not familiar witht the gazillion abbreviations,
>> David is talking about -> WebaSseMbly :-)
>> 
>>> Am 17.02.2021 um 16:13 schrieb David Bovill via use-livecode 
>>> <use-livecode@lists.runrev.com>:
>>> 
>>> Anyone know the wasm plans?
>>> 
>>> I’m Woking on a project in collaboration with a number of other platforms 
>>> and partners that are using wasm. Would like to play in the same place with 
>>> LiveCode.
>>> 
>>>         ********
>>>   ****************
>>> *******************
>>> ********************
>>>  ********************
>>>     \\   //  ********
>>>      \\\//  *******
>>>        \\\////
>>>         |||//                       ,
>>>         |||||                    __/
>>> ,,,,,,,,,,,//||||\,,,,,,,,,,,,,,,,,,o==o
>>> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>>> 
>>> Schedule a meeting using this link.
>>> Writing and media work on Media Garden.
>>> 
>>> LinkedIn: David Bovill
>> 
>> 
>> --
>> Klaus Major
>> https://www.major-k.de
>> https://www.major-k.de/bass
>> kl...@major-k.de
>> 
>> 
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode@lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription 
>> preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to