Google Native Client - The internet has changed

05/15

For starters, I have a love hate relationship with the big G. Google is like a benevolent dictator that controls a society looking to build a utopia. Glassy eyed, cultishly fervent employees work tirelessly to help build the Google empire; they crank out awesome features to existing products or build entirely new stuff all the while improving Google’s bottom line or expanding it’s foot print. This cycle of awesome continues for 2-3 years, then they burn out and go to Facebook or Twitter.

Google has become a factory of innovation and it’s gotten so good at building cool stuff that if Henry Ford were around today he’d give Eric and Sergey a HI-5 (though he would’ve made sure Sergey wasn’t a Jew).

That brings me to their newest cool creation, the Google Native Client (or as I like to call it Google OS Alpha).

In it’s potential ramifications, this thing is absurd.

Remember when Microsoft completely dominated the browser market? They spoke of a future where the web browser could run these things called “ActiveX components”, X86 native code and software could be delivered right in the browser without the need of installation. Sounds really cool huh! Well turns out their security model was garbage. The browser ran as administrator of the system, this brought the advent of the “browser toolbar”, which later caused the creation of the spyware removal market. It’s kind of silly when you think about it, an entire highly lucrative market segment was created cause Microsoft screwed the pooch.

While the ActiveX idea turned out to be a mess from an execution standpoint the core idea remained sound. It’s just cool to find a way to run native code in a browser. Sun tried for years to get Java to play well but inconsistencies in the JVM made it difficult to get widespread adoption. Adobe has tried with Flash (which I am a fan of) which won the adoption battle but still lost the performance race. And let’s just face it, Flash apps aren’t respected by “real” engineers. Adobe has tried to remedy that buy creating a new Flash VM and a whole new language specification AS3, which is a step in the right direction but still not enough. Recently Adobe has also released a product called Alchemy that allows for C based execution in the VM, but again because Flash is seen as the programming language for designers, wide spread use of the tech may never happen.

Enter Google Native Client:

A browser plugin that allows people to port C code and run it in a safe manner WITHIN the web browser. Now, Adobe still holds the claim that they were first to port Quake into the web browser. But now that Google has done it, lots of “real” engineers are going to give this tech a look. Will this change the interwebs as we know it? Maybe, but one thing is certain it is a step int he right direction.

For the engineering minded, a really good writeup was by Matasano Security and they do a great job of explaining how it all works.
http://www.matasano.com/log/1674/the-security-implications-of-google-native-client/