Google Native Client

One of the key features of the web is that it’s pretty safe to click on almost any link. Your browser can fetch code from some unknown server on the internet and run it.

In the browser you can use any language you want – as long as it’s JavaScript. JavaScript is an interpreted, dynamically-typed language, and it was specifically designed to protect netizens from malicious and buggy code. Nowadays you can also program with other languages and convert the result to JavaScript with suitable tools (Java, C/C++, etc..). With browser extensions some more languages are possible (Java, Flash actionscript etc..).

Native Client – a Google open source project more than three years in the making – is specifically designed to run native code securely inside web browsers. It tried to put web applications on “the same playing field” as local applications, providing the raw speed needed to compete with traditional software on 3D games, video editing, and more. Google Native Client: The web of the future – or the past? article gives some more details on this technology. Google’s idea is to create a system that tries to give languages like C and C++ – but eventually others as well – the same excellent level of portability and safety that JavaScript provides on the web today.

As it stands today, Native Client is a software “sandbox” meant to securely run native code inside a browser. Native Client can give you a tremendous improvement in performance compared to other options for running code in the browser. The rub is that Native Client isn’t the web – at least not yet. It will soon be an integral part of Google’s browser and its browser-based operating system.

Chrome will only accept Native Client applications distributed through the Chrome Web Store, and Google will only allow Native Client apps into the store if they’re available for both 32-bit x86 and 64-bit x86 (the ARM version of Native Client is not yet ready for prime time).

The problem for wide adoption is that Native Client hasn’t been integrated with other browsers. It hasn’t been standardized. Is this development direction good or bad for the web I am not sure.

11 Comments

  1. tomi says:

    This interesting outgrowth of Google’s Native Client: a Google engineer has ported MAME 0.143 to the browser-based platform, and written about the process in detail, outlining the overall strategy employed as well as specific problems that MAME presented.

    “The port of MAME was relatively challenging; combined with figuring out how to port SDL-based games and load resources in Native Client, the overall effort took us about 4 days to complete.”

    Case Study: Porting MAME to Native Client
    https://developers.google.com/native-client/community/porting/MAME

    I saw this information first at http://games.slashdot.org/story/12/01/01/0148246/mame-running-in-chrome

    Reply
  2. furniture modern says:

    Simply desire to say your article is as astonishing. The clearness in your post is simply great and i could assume you are an expert on this subject. Well with your permission allow me to grab your RSS feed to keep updated with forthcoming post. Thanks a million and please keep up the gratifying work.

    Reply
  3. great wall china tour says:

    Thank you so much for sharing this article. It was fascinating and in the intervening time you watch it, you surely received’t overlook it Very informative blog. I think many may benefit from studying your weblog due to this fact I’m subscribing to it and telling all my friends

    Reply
  4. martial arts says:

    Thanks for good info. It’s useful for me. Are you able to give me some extra information with particulars? I’ll wait for your next post.

    Reply
  5. what is an ezine says:

    Nice publish, compelled me to upright a comment as an alternative of my uncommunicative itemizing shape. Thanks.

    Reply
  6. mobile tracking software says:

    Just like the publish, it’s fairly to ruminate someone as expectant about shot and hustle over I am!

    Reply
  7. iPad broadband sim card says:

    vital submit, Though I wasn’t completely acknowledge on some points initially, meeting enumeration till end, actual stuff appears nice.

    Reply
  8. Masticating Juicer says:

    Fantastic site. Plenty of useful info here. I’m sending it to several friends ans also sharing in delicious. And certainly, thanks for your sweat!

    Reply
  9. Tomi Engdahl says:

    Google launches Portable Native Client, lets developers compile their code to run on any hardware and website
    http://thenextweb.com/google/2013/11/12/google-launches-portable-native-client-lets-developers-compile-code-run-hardware-site/

    Google today launched Portable Native Client (PNaCl, pronounced pinnacle) as part of its push to bring native code to more and more platforms. The tool lets developers compile their code once to run on any hardware platform and embed their PNaCl application in any website.

    For those who don’t know, PNaCl was recently integrated into Chrome 31 beta, giving developers the ability to execute native code in the browser. It lets them compile C/C++ code into a single executable that runs across all desktop versions of Chrome and Chrome OS with no user installation required.

    PNaCl is based on Google’s Native Client (NaCl)

    There’s still a big caveat, however: PNaCl is Chrome only, though Google hints this may change. Developers can make their PNaCl applications compatible with other browsers via pepper.js, which allows applications to use the Pepper API from JavaScript, but that’s quite the extra work.

    Reply
  10. Tomi Engdahl says:

    Google Chrome 31 Is Out: Web Payments, Portable Native Client
    http://tech.slashdot.org/story/13/11/13/005210/google-chrome-31-is-out-web-payments-portable-native-client

    “Google today released Chrome version 31 for Windows, Mac, and Linux. The new version includes support for Web payments, Portable Native Client, and 25 security fixes. ‘Under the hood, PNaCl works by compiling native C and C++ code to an intermediate representation, rather than architecture-specific representations as in Native Client. The LLVM-style bytecode is wrapped into a portable executable, which can be hosted on a web server like any other website asset.”

    Reply
  11. Tomi Engdahl says:

    Amiga 500 Emulator
    A Portable Native Client demo
    http://pnacl-amiga-emulator.appspot.com/

    Reply

Leave a Comment

Your email address will not be published. Required fields are marked *

*

*