Monday, April 30, 2012

Go-ing for a speedy new programming language

Here at Google, one of the things we care the most about is speed. We are loud and enthusiastic advocates for ubiquitous high-speed broadband access, and we even have a Make the Web Faster team that looks for ways to speed up Google products and the web as a whole.

One of the projects we work on here in the Sydney office is also about speeding things up. It’s called the Go programming language, and it’s been developed by Google and the open source community. And we have a great team mascot: the Go gopher.


Go was inspired by the lessons we've learned building the software that runs behind the scenes at Google. One of the key drivers was speed. We were sitting around one day waiting for a program to compile, and we realized there must be something we could do to speed things up. We wanted to try to design a language that could take full advantage of the power of modern computer networks, machines, and engineering.

Go was designed for big software: large programs written by many developers, growing over time to support networked services in the cloud: in short, server software. Go enables programmers to develop software quickly and maintain and adapt it easily as it grows. With its blazing fast tool suite, Go lets programmers get more done in less time. Their code runs fast, too.

Since it was released, the Go team and the open source community have been actively developing the language to create something that exceeded our original goals: it's become a great general-purpose language, useful and productive for everything from servers to scripting. Today, besides server software, Go is being used for web applications, statistical analyses, image processing, bioinformatics, and even games.

For more information, see the Go blog. For more information about Go in general, visit golang.org, which has documentation, references, articles and an interactive tour of the language.

Posted by Rob Pike, Distinguished Engineer, on behalf of the Go team