First Google expressed an interest in the web browser client market, and then the operating system market and now it has launched its own open source systems programming language.

Google Go is being touted as 'expressive, concurrent, garbage-collected' and promises to produce fast code, fast. According to Google a typical build takes but a fraction of a second while the resulting programs run almost as quickly as comparable C or C++ code.

Go has, we are told, pointers but no pointer arithmetic (for random access Google says use slices which know their limits) and promotes writing systems and servers as sets of lightweight communicating processes which it has called goroutines. You can "run thousands of goroutines if you want and say goodbye to stack overflows" Google insists.

So why this and why now? Well, Google argues that while the computing landscape has changed significantly over the last decade there has not been a major systems language that has emerged alongside to exploit the increasing speed of computers, to address the dependency management that is such a big part of software development today, to counter the growing rebellion against 'cumbersome type systems' such as Java and C++, and to properly support fundamental concepts of garbage collection and parallel computation.

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

It tells us that a large Go program will compile in just a few seconds on a single computer and that Go provides a software construction model that makes dependency analysis easy peasy while at the same time avoiding much of the overhead of C-style include files and libraries.

It reveals that the open source Go type system has no hierarchy and so there is no time wasted defining relationships between types. Unlike typical OO languages, Go makes its static types feel lightweight, apparently.

Of course, it remains to be seen just how this programming language experiment, for that is what it undoubtedly is, will work out. It's one of those things that has emerged from an internal project, initially conceived to make it easier to write Google server software. But Google admits it isn't actually ready for any kind of large-scale production use yet, although the server behind the golang.org site is a Go program I am told.

There's an in-depth tutorial here so take a look and let me know what you think. How far can Google Go, er, go?

As Editorial Director and Managing Analyst with IT Security Thing I am putting more than two decades of consulting experience into providing opinionated insight regarding the security threat landscape for IT security professionals. As an Editorial Fellow with Dennis Publishing, I bring more than two decades of writing experience across the technology industry into publications such as Alphr, IT Pro and (in good old fashioned print) PC Pro. I also write for SC Magazine UK and Infosecurity, as well as The Times and Sunday Times newspapers. Along the way I have been honoured with a Technology Journalist of the Year award, and three Information Security Journalist of the Year awards. Most humbling, though, was the Enigma Award for 'lifetime contribution to IT security journalism' bestowed on me in 2011.

8 Years
Discussion Span
Last Post by Nick Evan

I'm stumbling around trying to understand what it means by garbage. Is Google calling their own Go language garbage???

Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.