Google’s new language: Go

Google has a new language. The language is called Go, though issue 9 on the bug tracker is from the inventor of another language called Go and asks for a name change. Co-inventor Rob Pike says [PDF] that Google’s Go is a response to the problem of long build times and uncontrolled dependencies; fast compilation is an important feature. It is a garbage-collected language with C-like syntax – echoes of Java and C# there – and has strong support for concurrency and communication. Pike’s examples in the paper referenced above do show a simple and effective approach to communication, with communication channel objects, and to concurrency, with Goroutines.

Go runs only on Linux or Mac OS X. I installed it on Ubuntu and successfully compiled and ran a one-line application. I used the 32-bit version, though apparently the 64-bit implementation is the most advanced.

Pike claims that performance is “typically within 10%-20% of C”. No debugger yet, but in preparation. No generics yet, but planned long-term. Pointers, but no pointer arithmetic.

Go does not support type inheritance, but “Rather than requiring the programmer to declare ahead of time that two types are related, in Go a type automatically satisfies any interface that specifies a subset of its methods.”

Google has many projects, and while Go looks significant, it is dangerous to make assumptions about its future importance.

I don’t think Google is doing this just to prove that it can; I think it is trying to solve some problems and doing so in an interesting way.

Technorati Tags: ,,,
VN:F [1.9.3_1094]
Rate this post
Rating: 0.0/10 (0 votes cast)

Related posts:

  1. Programming language trends: Flash up, AJAX down?
  2. Prism: official Delphi language comes to Visual Studio
  3. What is Microsoft’s new language?
  4. eBay reinvents English language, punishes good sellers
  5. Microsoft Oslo: a tool, a language, a repository

5 comments to Google’s new language: Go

  • David Heffernan

    Personally I wouldn’t want to use any language which named a part of the language “Goroutines”!

  • tim

    @David I know what you mean but it is quite descriptive!

    Tim

  • Alan

    Why oh why does every language nowadays insist on using curly braces as block delimiters, instead of begin/end? Why?

  • He’s obviously never used Turbo Pascal/Delphi then? Fast build times? So what? The difference between a slow and fast build time isn’t going to be hours its going to be minutes anyway.

    I’m interested in how my apps perform when they are *running* not when I’m compiling. And dependancies? Well as soon as you hook up your app to a database, which of course in the real world your going to have to do, regardless of that DB you are going to have dependancies straight-away.

    Seems pretty pointless to me.

  • Expert

    Yet another curly-brace language. After all, if a piece of code was difficult to write, it should be difficult to read.

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>