What is Native Client?

This post is for the readers that just have heard about Native Client. Here, we’ll first explain NaCl for the non-savvy users, and than bring some quotes that explain what is it. You will also find other information you probably want to know, enjoy!

Feel free to leave a reply with your own question(s).

Nowadays, the browser (any browser, chrome, firefox, opera and all the rest of them) can’t handle heavy web apps efficiently. It’s already possible to do many things using only a browser, including tasks that used to require a desktop software (e.g. games, image editing). But for heavy tasks like video editing and 3D games it’s still nearly impossible or inapplicable. Mainly because of the low computational power of the browser. Javascript and Flash are very good technologies but are just not strong enough to handle such tasks.

And here comes Native Client, with this new technology, Google claims that it’s possible to run code in performance comparable to desktop softwares, almost the same performance.

For the more knowledgeable users, here are some more quotes that describe Native Client pretty well.

Here is a short description from Wikipedia, our first source for general information:

Google Native Client is a sandboxing technology for running a subset of Intel x86 native code using software-based fault isolation.  it is proposed for safely running native code from a web browser, allowing web-based applications to run at near-native speeds

via Google Native Client – Wikipedia, the free encyclopedia.

The following is a description of Native Client by Brad Chen, Native Client Team:

Modern PCs can execute billions of instructions per second, but today’s web applications can access only a small fraction of this computational power. If web developers could use all of this power, just imagine the rich, dynamic experiences they could create. At Google we’re always trying to make the web a better platform. That’s why we’re working on Native Client, a technology that aims to give web developers access to the full power of the client’s CPU while maintaining the browser neutrality, OS portability and safety that people expect from web applications.

via Native Client: A Technology for Running Native Code on the Web – The official Google Code blog.

Here is another interesting source, this article talking about many important aspects of Native Client, I think I’ll quote this source at least once more:

Native Client enables the browser to harvest immense CPU power for games, HD films and computing-intensive applications. The Native Client (NaCl) runs programming code downloaded by the browser from the internet. Its main attraction is that such code can be written in C or C++, typically the former, which would enable even standalone applications like Nero or Photoshop. Native Client executes web applications on the PC in order for these applications to work as fast as local programs, Native Client must have direct access to the CPU and RAM without putting the system at risk.

NaCl converts code into machine language, stores it in the RAM, and allows it to be processed by the CPU. It therefore achieves high performance while making it appear as if the applications are being executed by the operating system. Furthermore, as compared to the browser, it also features multithreading and can use the processor instruction sets. As proof, Google compiled the Quake game engine for its client and compared the performance against the standalone version. The result: both versions achieve the same frame rate. According to Google’s calculations, even a worst-case scenario will show only a five percent loss in performance. These are values which other environments for Web code like Java, Silverlight, and AIR cannot even come close to. Additionally, the programs will have to be written freshly since the C languages do not cope well with them.

Native Client could operate in every browser, Google offers Native Client along with examples to demonstrate its efficiency under an open source license to the web community. It is now up to other browser developers to port it for their applications. At present, Native Client operates successfully on all browsers with the only exception being Internet Explorer. The final version, however, should not be bigger than 400 KB and will most likely to function in IE.

Google completely denies that Native Client is the core of an independent operating system. “Although NaCl uses a computer’s CPU and RAM resources, it is not allowed to write data to the hard disk”

Processed from the source – Google Native Client | Compute in the browser with NaCl | Techplore.com.

So, we hope you’re now understand what is Native Client, what is its purpose and how it’s compared to other solutions. If you still have any other question, just leave them as a comment.

, , , , , , , , , , , , , ,

  1. #1 by Ryan on June 26, 2011 - 02:22

    One thing is still obscure to me, does google implements this only in Google Chrome and hope that every body in the worlds will use Chrome? or does Google hope other browsers to implements similar functionality?

  2. #2 by nacl expert on June 26, 2011 - 18:09

    Well of course, Google just hope to conquer the world, as they did with their search engine, and as they did with gmail, and google docs etc…
    They just develop good products & services and hope that world will be smart enough to adopt them.
    In my opinion Google just improving Chrome again and again in a hope for a better web experience, the web is the way google make money.

  3. #3 by nclient on June 26, 2011 - 19:24

    No, Google isn’t trying to conquer the world and I don’t think they hope the whole world will use Chrome, especially not in the near future.

    Native Client is an open source project, that the developers of other browsers can implement (look at the links in the sidebar).

    NaCl started as a downloadable NPAPI plugin for multiple browsers, including Firefox, Safari, Opera and Chrome and was designed to transparently load and run other NPAPI plugins compiled as nexes and embedded into the page …

    via Getting Started: Background and Basics – The Chromium Projects.

    The only popular browser that isn’t in this list is IE, but we already know that IE is the last browser to implement new technologies.

    In the following url you can see a reported issue with Firefox under the Native Client project, the development team was responsive and solved the issue, http://code.google.com/p/nativeclient/issues/detail?id=14

    Whether other browsers will adopt that technology, and deliver it out-of-the-box like Chrome or not is still unknown.

  4. #4 by Boldarvo on July 13, 2011 - 17:08

    Nice Post! thank you 😀

Leave a comment