Will move to a platform-agnostic technology in the future

Mar 19, 2010 15:36 GMT  ·  By

Web apps are becoming more powerful and more complex, but they're still far behind what native applications, running on desktops or other devices, can provide. Google is a big believer in the cloud, perhaps because the vast majority of its services and apps are online, and is doing everything it can to convince anyone else that this is the way to go and to make its own offerings as compelling as possible.

One way it's doing this is with the Native Client technology, which enables web apps to have native code modules that execute several times faster than regular web code like JavaScript. Google has now ported Native Client to all major mobile and desktop architectures, 32-bit and 64-bit x86 and ARM. But that's not all, Google is now working on a technology that will allow Native Client to run any processor architecture out there.

"Today, we’re happy to say that you can build and run Native Client binaries for all of the most popular processor architectures: x86-32, x86-64, and ARM. Even better, our initial benchmarks indicate that Native Client executables perform at 97% of the speed of an unmodified executable on both ARM and x86-64 processors," Brad Chen from Google's Native Client Team wrote.

Google uses a couple of neat tricks to create a sandbox environment for these web apps to run in, but there aren't that many differences between a native app and a web app running in Native Client. The technology is built into Chrome and will be available in Chrome OS when it launches later this year. It hasn't seen too much adoption so far, but this is expected to change in the short term.

And, to be better prepared for when the Native Client starts being used by more developers, Google is now working on a new technology that will allow Native Client apps to run on any platform. "[I]f a new processor architecture emerges, it should be able to run all Native Client modules already released without requiring developers to recompile their code. That’s why we’re also developing technology that will enable developers to distribute a portable representation of Native Client programs using LLVM bitcode," Chen explained.