Google coding tool advances cloud computing

The developer kit is designed to ease use of its Native Client technology, which is at the vanguard of Google's cloud-computing effort.

Stephen Shankland Former Principal Writer
Stephen Shankland worked at CNET from 1998 to 2024 and wrote about processors, digital photography, AI, quantum computing, computer science, materials science, supercomputers, drones, browsers, 3D printing, USB, and new computing technology in general. He has a soft spot in his heart for standards groups and I/O interfaces. His first big scoop was about radioactive cat poop.
Expertise Processors | Semiconductors | Web browsers | Quantum computing | Supercomputers | AI | 3D printing | Drones | Computer science | Physics | Programming | Materials science | USB | UWB | Android | Digital photography | Science Credentials
  • Shankland covered the tech industry for more than 25 years and was a science writer for five years before that. He has deep expertise in microprocessors, digital photography, computer hardware and software, internet standards, web technology, and more.
Stephen Shankland
4 min read

Google has released a programming tool to help move its Native Client project--and more broadly, its cloud-computing ambitions--from abstract idea to practical reality.

The new Native Client software developer kit, though only a developer preview version, is designed to make it easier for programmers to use the Net giant's browser-boosting Native Client technology.

"The Native Client SDK preview...includes just the basics you need to get started writing an app in minutes," Google programmer David Springer said Wednesday in a blog post announcing the SDK, a week before the developer-oriented Google I/O conference. "We'll be updating the SDK rapidly in the next few months."

Henry Bridge, Google product manager for Native Client
Henry Bridge, Google product manager for Native Client Google

Native Client, or NaCl, is designed to let browsers run programs at nearly the speeds of those compiled to run natively on a computer system. It's fast enough to handle tasks such as video decompression and first-person shooter video games, and it's designed to handle adjusted versions of existing software, not just programs written from scratch.

Native Client is one of several efforts at Google to weave the Web deeply into the fabric of computing. That mission will be on center stage at the company's I/O conference, set for May 19 and 20 in San Francisco.

The conference will feature a host of related projects embodying Google's fervent belief in cloud computing: its Chrome browser, its Chrome browser-based operating system, its App Engine foundation for Python and Java programs on the Net, its higher-level Google Apps services for word processing and the like--even things as nitty-gritty as the Google Web Toolkit and Closure Tools for Web-based JavaScript programming. Another Google I/O centerpiece, the Android operating system, is designed to make mobile phones first-class citizens on the Net. NaCl has been re-engineered to support the ARM processors used widely in smartphones, although the SDK can't take advantage of that support yet.

To let people download Native Client modules from Web pages without security problems, NaCl prohibits various operations and confines NaCl program modules to a sandbox with restricted privileges. NaCl lets programmers write in a variety of languages, and a special compiler converts their work into the NaCl modules.

The ultimate promise of NaCl is that Web-based applications could run much faster than those of today that typically use JavaScript or Adobe Systems' Flash. If Google can attract developers, the Web and cloud computing could become a much more powerful foundation for programs.

Google argues that it profits by increased use of the Web, since that drives more search traffic and therefore search-ad revenue. But Google also has a growing Google Apps subscription business to support--a service that CEO Eric Schmidt calls Google's next billion-dollar opportunity. More powerful tools for Web-based word processing, presentations, spreadsheets, image editing, and the like could help that business grow.

Google has been working hard on fleshing out the NaCl promise. One step has been expanding from 32-bit modules for x86 chips only; NaCl now supports ARM processors and NaCl modules also can take advantage of 64-bit x86 processors. Some of this work has been through a project called PNaCl, or Portable Native Client.

Another move was adding NaCl support for OpenGL ES 2.0, a standard interface for tapping into hardware-accelerated graphics. That could help modules such as games that use 3D graphics.

A software developer kit could help NaCl become more useful, but only if there's a way to run the modules. Google early on released a Native Client browser plug-in, but potentially more interesting is its work to build Native Client into Chrome and into the browser-based Chrome OS it plans to release later this year on Netbooks.

Indeed, projects like NaCl illustrate why Google is so interested in Chrome. With its own browser, it can push its agenda much faster, even if it's only through projects such as Gears or O3D that didn't live beyond the experimental stage.

To use the NaCl developer kit, programmers need a browser with a new plug-in technology called NPAPI Pepper. (Nomenclature nuts will note that NaCl is the chemical symbol for sodium chloride, or salt. NPAPI stands for Netscape Plug-in Application Programming Interface.) Guess which browser is the only one to support Pepper? Chrome, of course, though Adobe and Mozilla are backing the project, too.

The NPAPI Pepper project and NaCl SDK show one of Google's biggest challenges in bringing its cloud-computing vision to reality, though: getting others to come along for the ride.

To make NaCl real, it must convince programmers to use the software, convince browser makers to include it or at least support it as a plug-in, and convince the general public to upgrade their browsers to use it.

With Chrome and Google Apps, Google can ensure its technology is used in the real world. But especially as Google's dominance brings it into competition with more computing companies, extending its ideas beyond its own products and services can become tougher.