{{ !articles[0].partner.isSponsoringArticle ? "Platinum" : "Portal" }} Partner

Wake Me Up Before Google's Go Goes

Itching to try a new programming language?  Google has you covered.  They just released an open source, experimental language called "Go".  Google says their open source language has the performance and security of a compiled language like C++ and the speed of a dynamic language like Python.  According to "The Go Team" blog, the typical builds are very fast.  Large binaries compile in a few seconds and compiled code runs almost as fast as C.  

The Go Team's focus is to provide systems developers with "a fresh and lightweight take on object-oriented design."  Go responds to the advent of multicore computers with well-supported garbage collection and parallel computation.  Here are some key features of Google's Go:
  • True closures and reflection
  • Easy dependency analysis and avoids much of the overhead of C-style
  • No pointers or pointer arithmetic; offers bounded slices for random access to memory
  • Unicode support and run-time reflection
  • Introduces goroutines to write systems as lightweight communicating processes.
  • Fast 6g compiler for for 64 bit x86 code; the alternate gccgo compiler is slower but generates more efficient code

You know it wouldn't be a proper Google release if without any weird marketing gimmicks (e.g. Baked good names for versions of Android).  Go is no exception.
On the right you'll see Gordon, the Go Gopher.

And, no programming language would be complete without the obligatory "Hello World" program:

 package main

import fmt "fmt" // Package implementing formatted I/O.

func main() {
fmt.Printf("Hello, world; or Καλημέρα κόσμε; or こんにちは 世界\n");

There's even a video of Go in action.  Go and its compilers are being offered under a BSD-style license.
{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks