One of the core value propositions of Google’s Android, because of its integration of Java, has been the “write once run everywhere” credo Java claims, but has not delivered so far. Though Java, Flash and HTML5 are trying for ubiquity as technology platforms so that applications written by a programmer can run across all devices, none has achieved complete success yet.
Google has updated its Native Client (NaCl) programming technology with the latest version 25 SDK release, enabling it to run apps on ARM-based devices such as smartphones and tablets. According to Chromium, Google has
taken a step further as the NaCl technology has been updated to allow it also run apps on ARM-based devices, which powers most of the smartphones, tablets and other devices. NaCl allows developers to write web applications that run nearly as fast as native desktop applications as NaCl allows compiled C and C++ code to run in its browser using an API called Pepper. As Native code is compact and faster, it will accelerate the typical browser performance and allows users to have audio and video capabilities without a plug-in.
Though Google wants to expand NaCl from Chrome to the Mozilla and Opera browsers, Mozilla and Opera have opposed NaCl as they think NaCl will add complexity and security issues and take away focus from the web platform. Mozilla thinks NaCl will actually kill the browser optimization efforts. JavaScipt can enhance the performance of a program by improving the browser which is not possible in the case of NaCl, according to Mozilla’s Open Source Evangelist Chris Blizzard.
Architecture Independence
Though NaCl will increase the number of apps compatible with ARM devices, it would not bring complete architecture independence. But, the next version of NaCl, called Portable Native Client (PNaCl), aims to provide true architecture independence. Likely to be launched this year, PNaCl will use an intermediate bitcode called LLVM as the wire format, according to an article on Chromium dated 22 January 2013. LLVM bitcode is architecture independent and will be compiled to the native code by a compiler built in the web browser and can be executed in any device.
What is at stake in this war is ubiquity; pervasive computing, a far larger and broader addressable and serviceable market than smartphones and tablets alone.