Google Native Client: ActiveX for the other browsers

Today, Google announced 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.” Basically it’s a browser plugin that hosts a sandbox for native x86 code. So instead of writing a web page, you’d write a normal application and execute it in the browser.

I admit that I’ve only scanned the documentation and research paper so perhaps I’m missing the details, but Native Client seems entirely unnecessary for a bunch of reasons:

  • There are lots of ways to accomplish this already – Java, ActiveX, Flash/Flex, Silverlight 2, Alchemy, etc. Why do we need another one? Will it be very different or better? Heck even ClickOnce seems better than this.
  • What’s the point of running native code inside a sandbox inside a browser? Unless the sandbox is super efficient and our browsers improve by an order of magnitude, it would seem to me that the benefits of native code would be erased.
  • Similarly, with the performance of Javascript/HTML/CSS in browsers consistently improving, why write native code at all? Web apps are becoming very fast.
  • I don’t really want to install yet another plugin. The classic “chicken and egg” plugin problem will be in effect here (users won’t install the plugin without great apps and developers won’t create great apps if no one has the plugin).

This project feels a lot like Google is reinventing the wheel. Or at the very least, throwing something else out there to see if it sticks. I hope developers think about this before jumping in. A bunch of the comments on Google’s post suggest that will happen, such as this one:

Um, isn’t this called desktop software?

That kinda says it all, I think!

When you get right down to it, Native Client is just ActiveX for browsers other than Internet Explorer. Sorry Google, but that doesn’t sound very appealing to me.