Embrace change

«The best way to predict the future is to invent it» — Alan Kay 
« Back to blog

First Go Programming Language experiences

I'm currently doing some first steps in Googles new programming language Go just for evaluation. The compilation on OS X is simple and there's also an integration into XCode. But even if XCode has some nice features it's such a rudimentary integration that I switched back to my favorite editor TextMate. The package provided by Google contains also an integration into this editor.

The first impression showed nothing really new, nothing spectecular. Go is a C-style language, statically typed, together with some stuff helping to write less code, with maps as first class types like in Python, with interfaces and methods bound to types but with no inheritance. Coroutines - Go calls them goroutines - can be spawned and the communication between them is done using channels. Go knows lambdas, garbage collection, run-time reflection, multiple return-values, and a very simple export of constants, variables, functions, and channels - just wirte the first letter in uppercase. Beside the basic language Google provides a set of useful packages and some tools with Go.

In many aspects my favorite languages Erlang, Smalltalk, and Scheme are more clean, somehow more elegant in their specific domain. So what makes Go anyhow interesting? Why digging deeper? It's just the mix. Not a mix of brand new features but a mix of well known features. The C-style may attract all C, C++, D, Java, C# developers, the maps and the short variable declarations are fine for users of dynamically typed languages, interfaces and type-bound methods provide a basic OO, and goroutines together with message passing are OK for Erlang or Scala developers.

So Go is not really imperative, functional, object-oriented or concurrency oriented, it's more or less a pragmatic language. I'll do a bit more with it and then write about my experiences and the comparison to other languages here.

Loading mentions Retweet

Comments (2)

Dec 16, 2009
rodrigo3n said...
I really ain't investing in Google's new language, firstly because I didn't like Google marketing on Go, and it seems to be more a COPY with bunches of stuffs from other languages, I'd call "Languages Juice". Oh .. http://monoc.mo.funpic.de/go-rant/ read.
Dec 17, 2009
Frank Mueller said...
You're right, there's nothing innovative in Go. If one expects something like that he should choose a different language. But on the other hand, which language introduces real innovations since Lisp, Smalltalk, Erlang, or Prolog? And they are all really old.

Go isn't invented for innovations, it's just pragmatic, a copy of stuff from other languages, yes. And it's ok so for Google.

Leave a comment...

 
Got an account with one of these? Login here, or just enter your comment below.
Posterous-login    twitter