Programming Google - expressive, concurrent and garbage-collected


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 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?

About the Author

A freelance technology journalist for 30 years, I have been a Contributing Editor at PC Pro (one of the best selling computer magazines in the UK) for most of them. As well as currently contributing to, The Times and Sunday Times via Raconteur Special Reports, SC Magazine UK, Digital Health, IT Pro and Infosecurity Magazine, I am also something of a prolific author. My last book, Being Virtual: Who You Really are Online, which was published in 2008 as part of the Science Museum TechKnow Series by John Wiley & Sons. I am also the only three times winner (2006, 2008, 2010) of the BT Information Security Journalist of the Year title, and was humbled to be presented with the ‘Enigma Award’ for a ‘lifetime contribution to information security journalism’ in 2011 despite my life being far from over...

ChaseNetwork 0 Newbie Poster

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

Nick Evan 4,005 Industrious Poster Team Colleague Featured Poster

Hahaha, no. :)

Check this out : garbage-collection

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.20 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.