Linked by fran on Sun 20th Feb 2011 19:00 UTC
Google "Over the last few months we have been hard at work getting Native Client ready to support the new Pepper plug-in interface. Native Client is an open source technology that allows you to build web applications that seamlessly and safely execute native compiled code inside the browser. Today, we've reached an important milestone in our efforts to make Native Client modules as portable and secure as JavaScript, by making available a first release of the revamped Native Client .[...]In the coming months we will be adding APIs for 3D graphics, local file storage, WebSockets, peer-to-peer networking, and more. We'll also be working on Dynamic Shared Objects (DSOs), a feature that will eventually allow us to provide Application Binary Interface (ABI) stability."
Permalink for comment 463810
To read all comments associated with this story, please click here.
RE[7]: I still don't get it
by vodoomoth on Thu 24th Feb 2011 09:55 UTC in reply to "RE[6]: I still don't get it"
vodoomoth
Member since:
2010-03-30

"So you saying that Java is not-native code and it's not interpreted? Wow! What kind of logic is that? Having Java byte-code JIT'ed doesn't make it non-interpreted, otherwise it would be compiled which it isn't.
Unless a third option other than "compiled" or "interpreted" has been found just for Java, it is not different from any scripting, VM'ed, or compiled-to-intermediate-code language.


Yes. Please get your facts straight before going off on a rant. Java is *compiled* to Java byte code. It is a form of machine code that is run on a virtual machine. It is *not* interpreted.
"

I wrote:
Unless a third option other than "compiled" or "interpreted" has been found just for Java, it is not different from any scripting, VM'ed, or compiled-to-intermediate-code language.

which means I know the "facts". I know about Java, that's what I use in my professional life. But in a previous life, I was a researcher and academic, so I also happen to know a few things about theory and my judgment is not clouded by a common abuse of language.

If code, whether text or binary, is not machine code, it has to be converted to native machine code before being executed by the CPU. "Interpretation" is the name of that conversion operation when it happens at run-time, which is exactly what the Java VM does and is for. The input format for that operation, whether plain text or binary, is irrelevant: it still is interpretation. Java is interpreted and the "fact" that javac is "the Java compiler" is also irrelevant.

True, strict, compilation is converting anything, text or binary, into native machine code prior to runtime. Any other operation is an interpretation. In other words, compilation is a specific kind of interpretation where the target code is machine code. I can't even believe someone is arguing against that when obviously, Sun and now Oracle agree with me: http://download.oracle.com/javase/tutorial/getStarted/intro/definit...

On the other side, if you so wished, you could "compile" Java to C++ or C to ASM. That's a text to text "compilation" that doesn't mean much except prove a concept. Which is also why nobody bothers to do it. However, to have it run on a CPU, you would need another compiler for the output C++ or ASM code that would then compile to native code. That's two "compilers" chained with only one doing a compilation.

I give up and leave you with your certitudes.

Reply Parent Score: 2