In the most recent stable build of Google Chrome (version 14, if you’re keeping track) an exciting and slightly alien feature has been added: Native Client, or NaCl (sodium chloride, salt) for short. Native Client has been coming down the pipe for over a year in various alpha and beta forms, but the fact that it has finally emerged in a consumer-facing version of Chrome could announce a shift in direction for Google.

Native Client is a browser plug-in that lets websites execute compiled, native C and C++ code. The basic premise is that JavaScript, the industry-standard in-browser language, just isn’t fast enough — and in all fairness, Native Client programs can perform some operations in one tenth (or one hundredth) of the time that JavaScript takes. The main advantage of Native Client, though, is that it lets developers re-use existing C and C++ libraries — math, graphics, audio libraries — which are very fast and very feature-complete.

Like Chrome itself, Native Client is sandboxed — in fact it is double-sandboxed! — and it uses a modified version of the GCC compiler toolchain that further restricts apps from making illegal and insecure calls. NaCl runs on every platform that Chrome runs on, too, so developers can write one program in C or C++ and it will run in any Chrome browser on Windows, Mac, Linux, and Chrome OS.

Native Client, then, is a high-speed alternative to web apps written in HTML, JavaScript, and CSS — and indeed, the only place you can currently pick up Native Client apps is from the Chrome Web Store (and apart from ScummVM and Nethack there aren’t many NaCl apps you can try out). Native Client is an open-source project, though, and other browsers like Firefox and Internet Explorer could implement NaCl if they wanted to — but the chances of that happening are very, very slim.

Mozilla has said on numerous occasions that Native Client is the spawn of the devil and that JavaScript is the way forward — and Microsoft, after its whole HTML5 Open Web Standards 4 Evarr! marketing push with IE9, certainly won’t jump into bed with a plug-in that sounds a lot like the much-maligned ActiveX.

What’s the purpose of yet another browser plug-in, then? On the face of it, Google is admitting that JavaScript and HTML don’t have what it takes to make Real Apps and games — and the first bullet point on the NaCl website extols its virtues as dynamic, multimedia-capable “plug-in free” plug-in. If you push a little further, NaCl is almost certainly a way of bringing compiled, desktop-like apps to Chrome OS, which only runs web apps. Ultimately, though, Google is yet again playing the closed-open game, where open source and standards are fantastic while they help the web giant’s bottom line — but if Mozilla and Microsoft start to head in a direction that isn’t remuneratively amenable to Google, then pseudo solutions like Native Client will emerge.

Native Client is certainly a cool piece of tech, but unfortunately it is just like Flash, Java, Silverlight, Unity, or any number of browser plug-ins: it is not equally supported across every browser and platform, and it distracts developers from working with truly open technologies like JavaScript and HTML. Google might put NaCl in Chrome, Chrome OS, Android, and Google TV — but HTML and JavaScript can target all of those platforms plus 100 others. Don’t be lured in by NaCl’s promises of faster performance and warm, soft, compiled library crutches: it is not the way of the Open Web; it is the way of Google, and those are two very different things.

Read more about Native Client