6 ms·
Native Client: A Technology for Running Native Code on the Web
- andr 18y agoI guess metaprogramming is out of the question.
- wmf 18y agoNot necessarily, although you won't be doing any JIT.
- frogger 18y agoYahoo! has already released a very similar "BrowserPlus" ... http://browserplus.yahoo.com/ http://browserplus.yahoo.com/
- wmf 18y agoThey don't look that similar, since BrowserPlus doesn't appear to run arbitrary untrusted native code.
- tptacek 18y agoNaCL doesn't run "arbitrary" native code; it runs a strictly controlled subset of x86, with all bblock edges verified, in a per-process environment that uses segment access controls to prevent code from overwriting code, and without access to the full system call table. It is basically a faster version of the Java applet sandbox.
- wmf 18y agoMaybe "arbitrary" wasn't the right word; my point is that it looks like BrowserPlus lets you run a small selection of native things approved by Yahoo, while NaCl lets you run whatever you want in a sandbox. Most of the restrictions of NaCl are inconsequential since they only block things that well-behaved code doesn't do anyway.
- tlrobinson 18y agoI believe BrowserPlus will allow 3rd party plugins, though I'm not sure if they will require Yahoo approval. Also, there's already a "RubyInterpreter" plugin, though assuming it's sandboxed there's not much advantage over JavaScript, unless you prefer Ruby (JS appears to be faster than Ruby, in most cases: http://shootout.alioth.debian.org/debian/benchmark.php?test=all&lang=javascript&lang2=ruby http://shootout.alioth.debian.org/debian/benchmark.php?test=...)
- andreyf 18y agoA coworker: "Yay! Google is re-imlementing ActiveX!"
- pierrefar 18y agoI hope it's a bit more stable than that!
- stcredzero 18y agoNaCl is very stable. Just don't get it wet.
- tptacek 18y agoYour coworker doesn't really understand ActiveX; ActiveX controls execute unchecked native x86 code with full access to the system call table. NaCL falls somewhere in between VMWare and the Java Bytecode Verifier.
- tlrobinson 18y agoI like your abbreviation for it, but that's not an official name, right? Are you just hoping it will catch on? I'll join you in calling it NaCl.
- pierrefar 18y agoIt's game over for Microsoft. The OS will become even more irrelvant. Adobe should be really worried too - they both just might disappear into a silvery lit air :) Let's just hope Google doesn't mess this opportunity up. This is the silver bullet and they get to shoot it only once and they must not miss. No beta tags.
- brandonkm 18y agoI wouldn't say game over just yet, there is still much to be determined in this space and with this recent technology. I first thought the same thing also, but looking at it more objectively we have to see how users adopt native client.
- tptacek 18y agoIt was game over long before NaCL, which is why I'm not bullish on this particular browser plugin: very, very few information problems people need solved require native code, and those few problems are already pretty well represented. If this was a killer problem, the JVM applet plugin would have evolved faster.
- stcredzero 18y agoThis could be a huge boon to casual multiplayer gaming. You may be able to implement games that are as fast as desktop clients, but which require zero installation. (Once the plugin is installed the first time, of course.) The same benefits would also be a huge boon to browser office apps. Actually, this is the architecture that should be used to distribute plugins, period.
- tptacek 18y agoYou say that as if you knew it to be true. But we don't really even know if it's going to work; it's a new x86 verification scheme, and if it's somehow broken, it won't work at all. I see how a near-native-performance plugin interface is valuable, but it's still just not clear to me why, if this was that important, it wouldn't be in the Java applet plugin's bailiwick. The same CS disciplines that make NaCL possible can also drastically accelerate the JVM. It's also not totally clear that, when NaCL is actually fielded, the end user experience will be that much better than the applet plugin. NaCL forks off a seperate process and sets up a special runtime with a sidecar debug monitor; once it's up in steady state, I'm sure it's faster than Java, but the big issue with Java is setup time.
- tlrobinson 18y agoIt seems like NaCl should be part of Gears, no?
- tocomment 18y agoCould you run a Python interpreter in this, or Perl?
- socksandsandals 18y agoHistory will judge this to be our day's version of VBA.