Google software luminaries such as Unix co-creator Ken Thompson believe that they can help boost both computing power and programmers’ abilities with an experimental programming language project called Go.
[ad]
And on Tuesday, they’re taking the veil of secrecy off Go, releasing what they’ve built so far and inviting others to join the newly open-source project.
The computing industry is in constant tension between making a fresh start and evolving the current technology. The limits of today’s hardware designs and programming technology led the Go team to take the former approach.

“We found some of those problems to be frustrating and decided that the only way to address them was linguistically,” said Rob Pike, a principal software engineer working on Go. “We’re systems software people ourselves. We wanted a language to make our lives better.”
So far, Google’s Go project consists of the programming language, compilers to convert what programmers write into software that computers can run, and a runtime package that endows Go programs with a number of built-in features. It’s most similar to C and C++, but, Pike said, it employs modern features and has enough versatility that it could even be used within Web browsers.
[ad]
Go’s assets
There’s a huge step between creating a new programming language and building into a major force in the industry. Sun Microsystems, which succeeded with Java, has had less success with a would-be Fortran successor called Fortress.
But Go has some assets most languages don’t.
First, the project is at Google, which has a powerful incentive to make something useful in order to get more out of its hundreds of thousands of servers and its countless in-house programmers. An experiment at Google could have more commercial relevance than many other company’s actual products, and Go is already graduated from a 20 percent time project to one with formal support.
“We don’t intend it to be experimental forever,” Pike said. “We really want to build stuff for real with this.”
What’s Go for?
Google has high hopes for Go.
It’s designed to address some issues in getting software to take advantage of multicore processors that can perform multiple tasks in parallel. It has an approach to ease some of the pains of object-oriented programming. It has modern language features such as “garbage collection,” which helps programmers deal with mundane but important memory management issues. And it’s designed to be fast–nearly as fast as programs written in C or C++–and enable fast creation of programs in the first place.
“It seems it’s getting much harder to build software than it used to be,” even though computers are vastly faster than in the past, Pike said. “The process of software development doesn’t feel any better than it did a generation ago. We deliberately tried to make a language that focused in part on rapid development, that compiles really efficiently, and that expresses dependencies efficiently and precisely so the compilation process can be controlled well. I find it much more productive to work in.”
When it comes to the speed programs at which programs run, “Our target was to get as close as we could to C or C++,” Pike said. They’re reasonably close–programs run about 20 percent to 30 percent slower right now, he said.
The Go Web site itself is built with Go, but Google has broader ambitions. The software is designed to build server software–Google’s Gmail is one example of what it’s suited for. Google thinks that it could be good for other cases, including running software in a Web browser, a task JavaScript handles today.
“It’s at least an order of magnitude better than JavaScript,” Pike said. Note that Google built its own browser, Chrome, in part to speed JavaScript and Web performance, and that Google already is incorporating its technology such as Native Client and Gears.
Another nice Web-related feature in Go: tasks can be shared by servers and client devices such as PCs or mobile phones that use those services. That makes a service more easily adapted to different amounts of processing power for those clients, Pike said.