Feeds

Google programming Frankenstein is a Go

Python-C++ crossbreed lands on Goofrastructure

Combat fraud and increase customer satisfaction

Google I/O Google's back-end infrastructure is now running applications built with its new-age Go programming language.

"We're already using Go internally at Google for some production stuff," Robert Pike, one of Go's developers and a former member of the Unix team at Bell Labs, said today during a question and answer session at the company's annual developer conference in San Francisco. "The language is pretty stable."

Speaking with The Reg, Pike declined to describe these systems. "But I'm not lying," he told us. "This is real stuff, and we're using it."

Google open sourced Go in November, describing it as an effort to crossbreed a dynamic web-centric language like Python with a compiled language like C++. "There is a growing rebellion against cumbersome type systems like those of Java and C++, pushing people towards dynamically typed languages such as Python and JavaScript, [but] some fundamental concepts such as garbage collection and parallel computation are not well supported by popular systems languages," the company said in a blog post announcing Go.

"We believe it's worth trying again with a new language, a concurrent, garbage-collected language with fast compilation."

The language was originally designed for server-side applications, but Pike said it could also be put to use on the desktop and even on mobiles. At this point, its desktop options are limited because the graphic libraries "aren't quite there yet," and mobile hasn't really happened yet either. But Pike hinted that Go will eventually be used to build apps for Android. "ARM, after all, is one of the platforms supported," he said.

The idea, Pike told us, was to build a programming language from the ground up that does all the things the project's developers wished other languages did. It borrows a bit from C, Oberon, and Newsqueak, a language Pike developed back in the 80s, he said, but for the most part, it's a new animal.

The development team also includes Unix founding father Ken Thompson.

Go is specifically designed to run software on multicore machines. Pike describes it as concurrent as opposed to a parallel language. The language is built so that an application can restructure itself as it expands across a parallel environment. The idea is to make it easy to build applications that can scale across a distributed infrastructure. In other words, it's very Google.

Go is object-oriented, Go developer Russ Cox explained today, and not type-oriented. The type system has no hierarchy, and there's no inheritance. Unlike with a Java program, where you have to specify a hierarchy, the Go compiler can determine the relationship between types.

Cox said that Go is so different from something like Java or Python that you can't really translate programs written in these languages into native Go. Google also boasts that the language is fast — at compile-time and at run-time. In a video announcing the new language in November, Cox showed off the Go math package, packed with about 1,000 lines of code across about 20 files. It built in about 20 milliseconds, and it could be tested in under a second.

Today, Cox and Pike also said that they have completed a Go compiler for Native Client, the Google plug-in that lets you run native code inside Google's Chrome browser. But it would seem that very little application work has been done here. Native Client is now bundled with Chrome, and the company reiterated yesterday that it would be an "important" part of its upcoming Chrome OS, the netbook operating system based on the browser. ®

Update: This story has been updated to show that Robert Pike told us that Go borrows some ideas from Oberon as well as C and Newsqueak.

High performance access to file storage

More from The Register

next story
Android engineer: We DIDN'T copy Apple OR follow Samsung's orders
Veep testifies for Samsung during Apple patent trial
This time it's 'Personal': new Office 365 sub covers just two devices
Redmond also brings Office into Google's back yard
Batten down the hatches, Ubuntu 14.04 LTS due in TWO DAYS
Admins dab straining server brows in advance of Trusty Tahr's long-term support landing
Microsoft lobs pre-release Windows Phone 8.1 at devs who dare
App makers can load it before anyone else, but if they do they're stuck with it
Half of Twitter's 'active users' are SILENT STALKERS
Nearly 50% have NEVER tweeted a word
Windows XP still has 27 per cent market share on its deathbed
Windows 7 making some gains on XP Death Day
Internet-of-stuff startup dumps NoSQL for ... SQL?
NoSQL taste great at first but lacks proper nutrients, says startup cloud whiz
Windows 8.1, which you probably haven't upgraded to yet, ALREADY OBSOLETE
Pre-Update versions of new Windows version will no longer support patches
Microsoft TIER SMEAR changes app prices whether devs ask or not
Some go up, some go down, Redmond goes silent
Red Hat to ship RHEL 7 release candidate with a taste of container tech
Grab 'near-final' version of next Enterprise Linux next week
prev story

Whitepapers

Designing a defence for mobile apps
In this whitepaper learn the various considerations for defending mobile applications; from the mobile application architecture itself to the myriad testing technologies needed to properly assess mobile applications risk.
3 Big data security analytics techniques
Applying these Big Data security analytics techniques can help you make your business safer by detecting attacks early, before significant damage is done.
Five 3D headsets to be won!
We were so impressed by the Durovis Dive headset we’ve asked the company to give some away to Reg readers.
The benefits of software based PBX
Why you should break free from your proprietary PBX and how to leverage your existing server hardware.
Securing web applications made simple and scalable
In this whitepaper learn how automated security testing can provide a simple and scalable way to protect your web applications.