Chrome 31 pushes Web apps a step closer to desktop apps

Google's Portable Native Client lets developers deploy C/C++ inside desktop Chrome. Will other browser makers join in?

When Google released Chrome 31 this week, it snuck in an extra goodie under the hood: the Portable Native Client, aka PNaCl ("pinnacle"), which allows C/C++ code to be used in in-browser Web apps.

High-speed gaming, complex video processing and playback, or apps with the power of the desktop edition of Adobe Photoshop are all theoretically possible inside Chrome with PNaCl.

It's the next step in Google's ongoing quest to make it possible for developers to make Web apps into first-class desktop apps, without the limitations of JavaScript or the security problems that have plagued plug-ins like Flash. But it's a Chrome-only -- and so far, Google-only -- technology.

Fast and safe

Google's original Native Client project, which it describes as "a secure sandbox for running untrusted native machine code in the Chrome browser," has already drawn a lot of attention. Before it came along, the options for running high-speed code in a browser were slim pickings: Java (plug-in required), Flash (again, plug-in required), or more recently, JavaScript with the asm.js subset (not supported in Chrome).

Portable Native Client, as the name implies, solves the problem of how to deliver such code across multiple machine architectures. PNaCl compiles C or C++ code into what Google describes as "LLVM-style bytecode," an intermediate stage between the source code and machine code. When you visit a page that uses the app, it's converted from the bytecode into the client platform's native code, a process far faster (and more reliable) than recompiling the app from source. The code also runs in a sandbox that prevents it from harming the surrounding system.

Google's touted the wonders of NaCl-powered applications for a while, but only in the most recent release of Chrome did Google make PNaCl enabled by default. Those on the current iteration of Chrome can fire up one of the PNaCl demos and see several examples of NaCl apps in action. (My favorite: Conway's Life.)

Any other takers?

The biggest drawback to NaCL and PNaCl is that it's exclusive to Chrome -- and likely to remain that way.

Mozilla was never fond of NaCl and pushed asm.js instead. It has criticized Google for breaking from the standards of openness set down by Google when it forked the WebKit rendering engine into Blink. And Kevin Moore of HTML5 game development studio Pixel Lab, which has looked into NaCl as a possible platform, has stated that NaCl "isn't going to [be] bread-and-butter Internet ... I can't imagine a time when Microsoft would take up something like NaCl."

Granted, that was back in 2012, and Chrome's market share remains solid enough to make it difficult to dismiss NaCl as a minimal market share curiosity. But a lot of what'll drive NaCl's acceptance won't lie with Google alone.

If Mozilla and Microsoft decide asm.js or another technology is the better way forward -- or at least the way most directly embraced by Web developers -- Google may have no choice but to follow suit. In the meantime, it's putting NaCl -- and PNaCl -- front and center.

This story, "Chrome 31 pushes Web apps a step closer to desktop apps," was originally published at Get the first word on what the important tech news really means with the InfoWorld Tech Watch blog. For the latest developments in business technology news, follow on Twitter.


Copyright © 2013 IDG Communications, Inc.

InfoWorld Technology of the Year Awards 2023. Now open for entries!