[Oz-teachers] Google 'Go' .. a new programming language

stephen at melbpc.org.au stephen at melbpc.org.au
Thu Nov 12 13:10:37 EST 2009

Google 'Go' 


. a new systems programming language ..

Go is …

… simple

package main
import "fmt"
func main() {
  fmt.Printf("Hello, 世界\n")

… fast

Go compilers produce fast code fast. Typical builds take a fraction of a 
second yet the resulting programs run nearly as quickly as comparable C 
or C++ code. 

… safe

Go is type safe and memory safe. Go has pointers but no pointer 
arithmetic. For random access, use slices, which know their limits.

… concurrent

Go promotes writing systems and servers as sets of lightweight 
communicating processes, called goroutines, with strong support from the 
language. Run thousands of goroutines if you want—and say good-bye to 
stack overflows. 

… fun

Go has fast builds, clean syntax, garbage collection, methods for any 
type, and run-time reflection. It feels like a dynamic language but has 
the speed and safety of a static language. It's a joy to use. 

… open source

Go for it.



Meet Go, Google’s New Programming Language

By Scott Gilbertson, November 11, 2009 

Google has released a brand-new programming language it hopes will solve 
some of the problems with existing languages such as Java and C++.

The language is called Go, and it was released under an open source 
license Tuesday .. Google has considerably upped its investment in free 
software with the release of Go, which is an entirely new programming 

At first glance, Go looks a bit like C++, but borrows some elements, such 
as garbage collection, from scripting languages like Python and 

But Go’s real standout feature is its speed. This (below) demo video 
shows the entire language — over 120K lines of code — compiling in under 
10 seconds.


As a systems language, Go is intended to be used for developer 
applications like, for example, web servers. 

In fact, the http://golang.org website is being hosted by a Go program. 

But as Go developer Rob Pike says in recent Google Tech talk, "although 
Go is designed as a systems language, it has a much broader use than 
that." http://www.youtube.com/watch?v=rKnDgT73v8s

One of the most appealing parts of Go is its ability to handle multicore 
processors and, as Google’s FAQ explains, "provide fundamental support 
for concurrent execution and communication."

Existing systems languages like C++ evolved long before today’s modern, 
and very fast, processors hit the market and make supporting multicore 
chips more difficult. 

While Google could have concentrated on writing libraries that can handle 
those tasks in C++, the developers behind Go say that, "too many of the 
problems — lack of garbage collection, long dependency chains, nested 
include files, lack of concurrency awareness — are rooted in the design 
of the C and C++ languages themselves," and decided it was time for 
something entirely new.

Like many of Google’s open source projects, Go began life as a 20 percent 
time project (the time Google gives its engineers to experiment) and 
evolved into something more serious. 

Go has been in development for over two years now, but Google is hoping 
that, by releasing Go under a BSD-style license, a community will develop 
and build Go into a viable choice for software development.

At the moment, Go is still very young and experimental. 

Even Google isn’t currently using Go in "large-scale production" 
applications. While the site that’s hosting the code is running a server 
built with Go as a proof of concept, the primary purpose of this release 
is to attract developers and help build a community around Go.

Despite its fledgling status, Go already supports many of the standard 
tools you’d expect from a systems language and even includes support for 
other Google tools like Protocol Buffers.

Also, it’s worth noting that Google’s Go is not to be confused with an 
existing language entitled Go! (note explanation point). Google 
Blogoscoped reports that Go!’s developer Francis McCabe would like Google 
to change the name of Go, but thus far Google has not responded to that 

At the moment Go is only available for Linux and Mac OS. 


Cheers, Mark
Stephen Loosley
Victoria, Australia

More information about the oz-teachers mailing list