Flash…Java…Silverlight…Google Gears…Yahoo BrowserPlus…it seems like the list of additional stuff you need besides your browser just to use the Web keeps on growing. For better or for worse, Google’s latest project announcement adds another contender.
Native Client is Google’s latest plan to change the Web, and this time it comes in the form of a browser plug-in. Admittedly, as a technology, there’s nothing incredibly interesting to the average web surfer, but, like many Google projects, the project’s promise is where this development becomes interesting. The best description I have found of Native Client is on the Google Code Blog post describing the project. The post defines Native Client as “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.” In other words, Google is trying to make a platform for Web developers that does what Java aimed to do back in its heyday. Like Java, Native Client will be completely cross platform and work in almost every browser, with the major difference being that Google’s plug-in will run at native processor speeds, giving programmers access to even unprecedented resources on your computer.
An application framework this powerful could potentially obliterate the defining line between the Web and the desktop, yielding Web applications that are as powerful as nearly any desktop app. I can personally attest that it certainly does give the developer more access to the CPU. Trying out a demo of the plug-in, I ran an impressive 3D simulation of a rotating globe and found that it sent both processors in my Core 2 Duo iMac to 93% of capacity (see image below). The project is still in its infancy, so it has a long way to go before it produces efficient applications.
Besides the performance promises for Web users looking for more powerful apps, there are also possible advantages for those have Internet connections with low bandwidth, long latencies, or small bandwidth caps. Google says “With the ability to seamlessly run native code on the user’s machine, you could instead perform the actual image processing on the desktop CPU, resulting in a much more responsive application by minimizing data transfer and latency.” That makes sensem but I don’t see this point going to Google, since all the major plug-ins theoretically have the same advantage. What is is exciting, however, is the possibility of combining Native Client’s powerful architecture, graphics processing, cross-browser/platform status, and low bandwidth usage into some very interesting projects. In-browser, online multiplayer gaming anyone?
As I read about Native Client it put me in an optimistic mood, but one question festered at the back of mind: why should I care if I already have Silverlight, Java, and/or Flash? The short answer is that you shouldn’t, at least for the moment. This release is not much more than a technology preview (and Google says as much), even though the ability to run native code on a computer could provide fertile ground for fantastic Web applications, the likes of which we have not yet seen. But a framework like Native Code could also be dangerous–Google will need to provide some very strong controls on the limits of this plug-in. One such example will be a sandboxing model similar to the one they used in Chrome. Nobody wants back the days of IE 6, when ActiveX exploits were rampant. Fortunately, Google seems to be taking the security of Native Client very seriously.
If Native client combines a secure software model in combination with ridiculous processing speeds, it could be the Web plug-in of choice someday. For now, though, I’m an excited skeptic–Native Client is one giant “maybe.”
Taken as a whole, Google’s latest offerings should give us some pause about the company’s larger plans. Native Client, Android, Chrome, and Gears are being set up, in large part, to draw developers to a Google platform and get them acclimated to coding for it. Why? With the rumors of a full-blown “Google operating system” still in on everyone’s mind, don’t be surprised if Google takes a page out of Steve Jobs’ book and spends months and months building up momentums before revealing all.