Why You Should Learn Go

by redshift

I’m pretty excited about Go, the new programming language from Google. It’s been my obsession over the last few weeks, and I think if you’re a programmer, you should learn it.

Why did I start? Out of respect for its creators, Rob Pike and Ken Thompson. They helped create and popularize Unix, C, UTF-8, Plan 9, and many other things. It may seem like they’ve been under the radar lately in their research wing at Google, but I think they’ve just been building up a foundation of code and ideas.

Why is it exciting? It seems to have solutions for concurrency, compilation speed, and safety, while still looking somewhat familiar. You can run hundreds of thousands of concurrent goroutines. The entire Go library compiles in ~5 seconds. Go code runs almost as fast as C, without even being optimized yet. It’s type-safe without being too verbose.

It’s not as high level as Ruby or Python, but it can be more mentally satisfying in an OCD geek kind of way. It’s C without the pain.

Sure, it took ideas from Alef, Limbo, Newsqueak, and other languages (watch this then this for proof, and for enlightenment) – but how else can you make progress? Go has the momentum those languages never got.

And I, for one, am glad that the legacy of Bell Labs lives on.

Read the rest of this entry »