Feeds

Google hooks Native Client into Visual Studio, Eclipse

'Threat to Mozilla vision' rolls on

Security and trust: The backbone of doing business over the internet

Google I/O Google is building an interactive Native Client debugger that will integrate with various popular IDEs. According to Google engineer David Springer, the company will begin with Visual Studio before moving on to Eclipse and others.

"We're starting with Visual Studio because a lot of client programs are already built there," Springer said this afternoon at Google's annual developer conference in San Francisco. Part of Google's Native Client pitch is that it will allow developers to easily move their existing client applications into the browser.

Still in the "experimental" stage, Native Client – aka NaCL – is a Chrome browser plug-in designed to securely run C, C++, and other native code inside the browser. It's included with the current stable version of Chrome – Chrome 11 – but it must be manually turned on. The idea is not only to move existing code into the browser, but also to improve the speed of web applications.

"While the [Chrome] team has made JavaScript tremendously faster over the last two years, there's a lot of applications out there that have existing audiences that are [written in native code, such as C and C++], and there are a few that are specialized applications that need every last bit of performance the hardware can offer. Native Client is a way of addressing both those issues," Google engineering director Linus Upson told us in December.

Spinger said that the platform brought the web's "write once, run anywhere" setup to native code. The trouble is, that at this point "anywhere" means "anywhere that you have Chrome running on a 32- or 64-bit x86 processor". Both Mozilla and Opera have strongly opposed Native Client because it bypasses web standards such as HTML, CSS, and JavaScript. You can eventually achieve comparable speeds with JavaScript, they say, and with JavaScript, you can maintain the world-flattening simplicity of web programming.

Opera CTO Håkon Wium Lie reiterated his Native Client opposition to The Reg just yesterday, and in a public document, Mozilla lists Native Client among the things that "threaten" its vision.

When, following Springer's talk, we mentioned this opposition to Google engineer Eric Kay, he told us it was more accurate to say that the likes of Mozilla and Opera were "taking a wait-and-see attitude. To them, it just looks like black magic, and it's hard to tell if it really works," he said.

When we made the same mention to Upson in December, he pointed to a new version of the plug-in known as Portable Native Client, which will allow Native Client apps to operate independent of the processor. Portable Native Client – aka PNaCl, pronounced "pinnacle" – compiles C, C++, and other languages into the Low Level Virtual Machine (LLVM) bitcode format, and this allows for client-side translation into the client's native instruction set.

"When it comes to running programs over the web in Native Client, we're very sensitive to maintaining the qualities of the web that have made it so successful," Upson said. "One of those things is that you can write applications that can run on any computer. One of the reasons we haven't widely deployed Native Client so far is we're working on something called Portable Native Client, so you're not tied to any one particular instruction set, so people can build whole new CPUs, whole new chip architectures, and [applications] won't get tied to those."

But Wium Lie questions whether Portable Native Client will achieve the same speeds as the non-Portable version. When applications are ported to standard Native Client, David Springer said today, they already take a 5 per cent performance hit, and presumably they'll slow even more on Portable Native Client.

Eric Kay told us it's too early to tell whether Portable Native Client will introduce a second performance hit, but he believes that if it does, this will mostly affect startup time.

In any event, Google is moving ahead with the project. Springer said that the company is also working on JIT support, and it has already built a Mono port that runs C#. ®

Security and trust: The backbone of doing business over the internet

More from The Register

next story
New 'Cosmos' browser surfs the net by TXT alone
No data plan? No WiFi? No worries ... except sluggish download speed
'Windows 9' LEAK: Microsoft's playing catchup with Linux
Multiple desktops and live tiles in restored Start button star in new vids
iOS 8 release: WebGL now runs everywhere. Hurrah for 3D graphics!
HTML 5's pretty neat ... when your browser supports it
Mathematica hits the Web
Wolfram embraces the cloud, promies private cloud cut of its number-cruncher
Google extends app refund window to two hours
You now have 120 minutes to finish that game instead of 15
Intel: Hey, enterprises, drop everything and DO HADOOP
Big Data analytics projected to run on more servers than any other app
Mozilla shutters Labs, tells nobody it's been dead for five months
Staffer's blog reveals all as projects languish on GitHub
SUSE Linux owner Attachmate gobbled by Micro Focus for $2.3bn
Merger will lead to mainframe and COBOL powerhouse
prev story

Whitepapers

Providing a secure and efficient Helpdesk
A single remote control platform for user support is be key to providing an efficient helpdesk. Retain full control over the way in which screen and keystroke data is transmitted.
WIN a very cool portable ZX Spectrum
Win a one-off portable Spectrum built by legendary hardware hacker Ben Heck
Saudi Petroleum chooses Tegile storage solution
A storage solution that addresses company growth and performance for business-critical applications of caseware archive and search along with other key operational systems.
Protecting users from Firesheep and other Sidejacking attacks with SSL
Discussing the vulnerabilities inherent in Wi-Fi networks, and how using TLS/SSL for your entire site will assure security.
Security for virtualized datacentres
Legacy security solutions are inefficient due to the architectural differences between physical and virtual environments.