Tech Industry

Google: Native Client for mobile devices still alive

It may look like Google ditched a project to bring its native-programming technology to devices using ARM chips, but Google says the project is still under way.

Yesterday, Google appeared to have scrapped a software project to dramatically speed up browser-based games and apps on mobile devices -- but it turns out the project is still alive.

The software in question is called Native Client, and it lets programmers adapt software they've already written so it can be packaged up as a Web app -- one that runs nearly as fast as a regular native app, in Google's aspiration. Native Client today works on personal computers using x86 chips from Intel and AMD, but the company is adapting it to devices using ARM processors -- in other words, just about every tablet and smartphone on the market today.

And then just yesterday Google seemed to have pulled the plug on the ARM effort, marking it with a "won't fix" label and saying "other approaches are being used."

But the Native Client on ARM work continues, spokeswoman Lily Lin said today. "It's definitely not dead," she said.

Native Client, aka NaCl, is a software foundation that lets programmers create or adapt C or C++ software so it runs in a safe compartment within a browser. Its goal is to let browsers download compiled software such as games from Web pages, a high-speed alternative to JavaScript-based programs that prevail today on the Web.

Part of that speed boost comes from the fact that Native Client programs execute directly on a computing device's hardware. For most desktop browsers, that means x86 processors from Intel or AMD, and that's where NaCl got its start. But Google had been working on a version called PNaCl for the ARM family of chips that power iOS, Windows Phone, and Android devices.

However, NaCl for ARM won't be available in Chrome for Android, perhaps the most obvious place a programmer might expect it. Chrome for Android shuns browser plug-ins such as Native Client (essentially an embedded plug-in) or Adobe Systems' Flash Player. And despite Google' enthusiasm, Native Client isn't a common approach to Web programming; only Chrome supports it, and most programmers don't use it. In addition, on Android, applications already can run natively on the device's hardware because Google has released a Native Development Kit that lets Android apps use computing hardware directly rather than relying on the higher-level Java-like Dalvik environment.

"The mobile ecosystem is different," said Dave Burke, an engineering director at Google, in a February interview. "We will use the Native Development Kit and write code there."

But there are other places Native Client might still be relevant on ARM-based systems.

One example is any Chrome OS devices using ARM chips; Chrome OS only can run Web apps. Today, though, Chromebooks only use x86 chips.

Another example is Chrome running on any ARM-based Windows 8 machines. Microsoft's PC operating system is strongly wedded to x86 computers, but with Windows 8, the company is expanding to ARM chips, too, which are favored for their lower power consumption in handheld devices such as tablets.

NaCl is hardly a dominant force among developers. But game programmers in particular, who have written software in C and C++, have released several Native Client-based video games such as Wolf Toss and Bastion through Google's Chrome Web Store.

For those who want an alternative, one option is the Emscripten project that can convert native code to JavaScript.

Updated 2:20 a.m. PT to correct that the project hasn't been canceled.