Portable Native Client
blog.chromium.org
blog.chromium.org
PS. From Wikipedia article: In principle it [ActiveX] is not dependent on Microsoft Windows, but in practice, most ActiveX controls require either Microsoft Windows or a Windows emulator
PPS. I'm not really trying to compare them, just pointing out that obsessive idea to run Photoshop in browser is almost as old as browser and photoshop themselves. And so is the idea for a grand platform that will let us "write once, run everywhere". Uncountable attempts were made, yet somehow they all fall short of expectations. Is the idea itself flawed? Perhaps we have different operating systems for a reason?..
1 - https://developers.google.com/native-client/dev/reference/pn...
2 - http://www.chromium.org/nativeclient/pnacl/stability-of-the-...
Granted, this is documentation, not a standards-body spec.
"Under the hood, Java Applets work by compiling Java source code to an intermediate representation, rather than architecture-specific representations as in Native Client. The Java bytecode is wrapped into a portable jar file, which can be hosted on a web server like any other website asset. When the site is accessed, Chrome fetches and translates the portable executable into an architecture-specific machine code optimized directly for the underlying device. This translation approach means developers don’t need to recompile their applications multiple times to run across x86, ARM or MIPS devices."
And Java is controlled by whom?
It's open source, but all committers are Googlers and/or have to sign a copyright assignment. It's controlled by Google (which isn't a bad thing necessarily).
And Java is controlled by whom?
Oracle. They own the Java trademark, so any fork cannot be called Java unless they certify it.
Very importantly it's a copyright (and patent) license, not assignment. And it's the same thing required for any contribution to Chromium[1], and just about every competently run open source project out there, so it's not really an interesting distinction. The important aspect is more that the only "spec" for PNaCl is the documentation, which means that it can be changed by them...but then you break everyone's already compiled apps, so there are some incentives against that. Regardless, it's still open source, and you can still fork it, etc.
[1] http://dev.chromium.org/developers/contributing-code#TOC-Com...
My point was that Google controls the project (so far as it is possible to control an open source project). I don't see that as a bad thing.
Winner, winner, chicken dinner.
After seeing all the web developers of the 90s dump on Java applets all the time, it's fascinating to see the same functionality being reimplemented piecemeal in Javascript.
The ultimate indictment of just how bad a fit java applets was is exactly that people shunned it despite the horrible alternatives.
BTW, as a game developer, it would be nice if this rendering latency issue will be fixed soon.
- http://phoboslab.org/log/2012/06/measuring-input-lag-in-brow...
- https://code.google.com/p/chromium/issues/detail?id=168459
I think this response time issue is a real show-stopper than JavaScript performance.
Adoption really is a big issue, and I think it kind of misses the point to handwave it by saying, "Oh, adoption is such a big issue that it's insurmountable, so let's ignore it." Google hasn't really done a lot to work with anyone else on PNaCl, or even really to address any issues anyone's brought up with PNaCl. They're just sort of creating an island so far. If PNaCl is going to be a thing, they're going to need to get past that.
Can't wait to log into a bank that demands I installed Chrome to use their new 'security' or some web apps that won't run in anything but Chrome.
https://code.google.com/p/chromium/codesearch#chromium/src/c...
People have in fact looked at what it would take to adopt PPAPI. The answer so far seems to be "you have to use Chromium, not another rendering engine".
I also hadn't seen pepper.js before, is that new?
I think so. I just updated to Chrome 31 and it brought up a UAC in windows, which probably means that it was installing the PNaCl runtime since it usually doesn't require a UAC.
I just updated, and in chrome://flags, the "Enable Portable Native Client" option has changed to "Disable Portable Native Client".
So yes, apparently.
Also pepper.js is a fairly recent thing, yes.
http://mozakai.blogspot.com/2013/05/lua-in-javascript-runnin...
So glad to see somebody else saying this. I think you are absolutely correct. The current state of web applications / web browsers is an absolute kludge. Whatever happened to "separation of concerns" or the idea of building tools that do one thing and do it well?
But what "one thing" does a web browser do these days? One might think "browsing hypermedia content" but what does that have to do with becoming the universal application runtime?!?!??
Actually, the more I think about it, the more I think "clusterfuck" would be an even more apt term than "kludge" for what we have now. But I largely blame Sun: IF they had bothered to ship something like the Consumer JRE about 7 or 8 years sooner, and IF they hadn't screwed the pooch so badly on security, we could have something like Java / JNLP for hosting "applications" while the actual browser could stick to, well, browsing.
I'm actually waiting for something to come along and become "the next Java / Flash" but done right. :-(
I'm curious to see to what extent PNaCL can fulfill some of that.
Yes! We'd need a bunch of tooling re-built for each platform, but we could do it with static compilation :)
> instead of kludging your document-format specification up into an application runtime.
Seriously. It's a mess.
Plenty of choice available with 100% full hardware use.
http://blog.awilkins.id.au/2012/12/go-in-browser-llgo-does-p...
Sadly I don't have a lot of time, so progress is quite slow. The PNaCl support isn't working at all at the moment, as I'm going through a fairly major refactoring to make things a bit more solid.
js has plenty of 2d physics sims but i have yet to see a decent 3d one like this.
If you have results showing otherwise for bignums, I would be very interested. Anything special about that particular problem?
Because Mozilla assured us that it was not. Central to Mozilla's case against Dart was the assertion that parts of it - including bignums - could not be implemented efficiently by compiling to JS, leaving native Dart runtimes at a strong advantage.
As I said above, I would expect JS to reach about half of the speed of C. It's possible that having native bignums would have removed some of that difference.
More importantly, the context here is PNaCl. Do you see a reason bignums could be emulated better in PNaCl vs JS? I assumed that's what you were implying, but perhaps I misunderstood you? Sorry if so.
It's quite smart to write a LLVM backend and frontend for a custom (compact) bytecode.
TL;DR: a lot of thought went into it :)
https://groups.google.com/forum/#!msg/llvm-dev/lk6dZzwW0ls/J...
In general I'm really happy that we're getting faster (no-gc) runtimes, but I think I favor asm.js's approach due to its backwards compatibility (though I admit I am not aware of the nuances of each implementation).
IMO NaCl is much more backwards compatible, letting you recompile old code-bases for the web with minimal changes. The javascript approach (even with the speed gains of asm.js) does not have threads/native instructions/etc.
I want chrome to support asm.js, and firefox to support NaCl. Winning all around.
> though I admit I am not aware of the nuances of each implementation
Perhaps a neutral discussion page is needed... I'll see about making one.
What kind of browser do you consider a "non-asm.js platform"? Chrome for example is not detecting asm.js specifically, but still optimizes for the types of patterns in asm.js code. As a consequence it can run asm.js code very well, on par with Firefox in many cases, for example
https://docs.google.com/a/mozilla.com/spreadsheet/ccc?key=0A...
Translation time is one of the highest priorities of the PNaCl team and it should become significantly better in the future.
As google knows loading time really really matters and for such small demos it does not look good that it takes 10(?) seconds to load. Makes me wonder about larger applications.
By the way, Google has already proven their "platform-creation" skills with Android.
I don't have to write JavaScript.
Honest question, I'm a noob at compilers :)
Also, you haven't experienced pain until you've tried to compile C or C++ on a machine other than the author's.