Google’s Native Client is a set of tools that developers can use to write web apps that can interact with your device as if they were native apps, using your CPU, GPU, and other hardware. Now Google is taking Native Client a it further with Portable Native Client, or PNaCL.
It basically lets developers write web apps that will run on a range of different devices, regardless of what type of processor your system has.
PNACL is platform-agnostic, supporting x86, ARM, and MIPS processors, which means developers don’t have to target a specific chipset when writing apps that are designed to take advantage of your device’s hardware.
Web apps created using the technology will support an ARM-based Chromebook like the HP Chromebook 11 or a Windows, Linux or Mac PC — as long as you have the Chrome web browser installed. PNaCL is still a Chrome-exclusive feature, so those apps won’t work with Firefox or other browsers unless developers user pepper.js to allow them to run in Javascript.
Google soft launched PNaCL earlier this year, allowing developers to start creating apps and users to access them by enabling a flag in your browser settings. Now it looks like Google is getting ready to take the technology to the masses.
I’m not familar with PNaCL but how much resources are used up running apps within a browser. This is like virtualization. You have the host OS doing its bookkeeping then you have the guest OS (Chrome) keeping track of it’s own apps and processes.
Wasn’t Java supposed to solve the whole cross-platform development issue :)? Well, maybe PNaCL will turn out better. Maybe Google will come out with a minimal runtime interpreter like Java but actually good.
Everything I’ve read about NaCL (and by extension PNaCL) suggests that it is just a rewarming of the JITted VM concept. It just works with a lower level source language (C or C++). This might allow slightly better performance for well written code than using JITted Java, JavaScript, or a .Net language which all suffer more from garbage collection, fat runtimes, and other overhead in Java-era programming languages.
Linux too
https://developers.google.com/native-client/faq?hl=en#OSAndDevelopmentEnvironment