- From: Rahman USTA <rahman.usta.88@gmail.com>
- Date: Tue, 26 Jan 2016 12:35:52 +0200
- To: Cristian Vanti <cvanti@gmail.com>
- Cc: John Henry <john@iamjohnhenry.com>, Derek Schuff <dschuff@google.com>, "Beyler, Jean Christophe" <jean.christophe.beyler@intel.com>, "public-webassembly@w3.org" <public-webassembly@w3.org>
- Message-ID: <CAGe7fv09D0GM+o=oteE7sEARoQH7tx7p3MWEhJ1=GGRfEBfCWA@mail.gmail.com>
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