Re: WebAssembly and Bytecode question

WebAssembly's position is now clear for me. Thank you all of your valuable
explanations.

2016-01-26 12:22 GMT+02:00 Cristian Vanti <cvanti@gmail.com>:

> I would add that WebAssembly format will be binary so that the amount of
> data transferred to the browsers will be much lower.
> Moreover, the browser would skip the first compilation step that is a big
> help for low power CPU (think about mobiles)
>
>
> On Mon, Jan 25, 2016 at 7:59 PM, John Henry <john@iamjohnhenry.com> wrote:
>
>> Hi Rahman,
>>
>> I think I see the confusion, so I'll try to clear it up. Hopefully, I
>> don't create any more confusion.
>>
>> JavaScript, has traditionally been an interpreted language -- meaning
>> that the engine reads code directly. From the diagram above, this would
>> have looked like this:
>>
>> Java Source ------> Java Source AST -------> Java ByteCode
>> JS Source
>>
>> This might be easier to reason about if we add "interpreters" to the
>> diagram. Interpreters are the part of the code that reads code directly and
>> preforms actions based on it.
>>
>> [Traditional Java]
>> Java Source ------> Java Source AST -------> Java ByteCode => Bytecode
>> Interpreter
>>
>> [Traditional JavaScript]
>> JS Source => JS Interpreter
>>
>> When google introduced V8 as a just-in time compiler, JavaScript could
>> now be compiled into binary code that can be read more efficiently by a
>> computer, though as far as I can tell, this doesn't follow any standard and
>> and is likely specific to the V8 Engine
>>
>> [JavaScript on Chrome]
>> JS Source  ------> V8-Specific Binary Code => V8 Binary Interpreter
>>
>> I believe that other engines follow a similar pattern:
>>
>> [JavaScript on Edge]
>> JS Source  ------> Chakra-Specific Binary Code => Chakra Binary
>> Interpreter
>>
>> [JavaScript on Firefox]
>> JS Source  ------> Spider-Monkey-Specific Binary Code => Spider Monkey
>> Binary Interpreter
>>
>> The idea behind Web Assembly is not to act in the place of Java Source
>> AST, but rather in the place of the source language (JavaScript) when the
>> source language in the target for another language.
>>
>> JS Source  ------> Engine-Specific Binary Code => Engine Binary
>> Interpreter
>>
>> WebAsembly  ------> Engine-Specific Binary Code => Engine Binary
>> Interpreter
>>
>> This is easier to understand when you consider ASM.js, (http://asmjs.org/),
>> a subset of JavaScript that's currently used as a compile target for other
>> languages.
>>
>> Hopefully, it's also now clear that JavaScript isn't meant to compile to
>> WebAssembly -- rather WebAssembly is way of running other languages in the
>> browser by converting them into something that is more efficient than
>> JavaScript.
>>
>> To revisit your original diagram,
>>
>> Java Source ------> Java Source AST -------> Java ByteCode
>> JS Source   -------> WebAssembly    --------> ???
>>
>> "JS Source" should be replaced by any generic language that compiles to
>> WebAssembly.
>> "???" will not be a standard associated with WebAssembly, but rather
>> binary code specific to the engine in which it's running.
>>
>> Java Source ------> Java Source AST -------> Java ByteCode
>> {Generic Source}   -------> WebAssembly    -------->  Engine-Specific
>> Binary Code.
>>
>> Best,
>> -- John
>>
>> On Mon, Jan 25, 2016 at 11:38 AM, Rahman USTA <rahman.usta.88@gmail.com>
>> wrote:
>>
>>> Thank you all so much, it is now more clear for me. WebAssembly has a
>>> brilliant future 👍
>>>
>>> *Btw*: I'm Voxxed Days Istanbul <http://istanbul.voxxeddays.com/>
>>> conference organizer. As Voxxed team We would be happy to see WebAssembly
>>> talk at our event. If anyone interested to talk at our conference, we will
>>> be happy :)
>>>
>>> Many thanks.
>>>
>>> 2016-01-25 21:06 GMT+02:00 Derek Schuff <dschuff@google.com>:
>>>
>>>>
>>>>
>>>> On Mon, Jan 25, 2016 at 10:42 AM Rahman USTA <rahman.usta.88@gmail.com>
>>>> wrote:
>>>>
>>>>> Hi Jean;
>>>>>
>>>>> I'm a Java developer and I try to relate WebAssembly from my viewpoint
>>>>> :)
>>>>>
>>>>> For example;
>>>>>
>>>>> Java Source ------> Java Source AST -------> Java ByteCode
>>>>> JS Source   -------> WebAssembly    --------> ???
>>>>>
>>>>>
>>>> It's more like:
>>>> JS Source ---> (nothing, it still goes directly into the browser as
>>>> source)
>>>> C Source (or other languages in the future) -----> WebAssembly binary
>>>> format (call it a bytecode if you want) ---> (goes into the browser as
>>>> binary data)
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Rahman USTA
>>> Istanbul JUG
>>> https://github.com/rahmanusta <http://www.kodcu.com/>
>>>
>>
>>
>


-- 
Rahman USTA
Istanbul JUG
https://github.com/rahmanusta <http://www.kodcu.com/>

Received on Tuesday, 26 January 2016 10:36:43 UTC