[freebsd banner]

Go - Speed of C, power of concurrency, clean syntax

After playing for some years with Ruby — and I still am for everything I need to prototype or use as a script — I’ve come to realize that a better language than C was needed for some tasks, especially for network-related or one that need concurrency. As I’m not really ready to go into Functional programming with things like Haskell or go full way with the fast-evolving but too strict (for me) Rust, I started playing with Go.

The fact that Go is not OO (Object-oriented) and does not have exceptions clearly bothered me at the beginng as I was used to play with Ruby but in the end, the drawbacks are not that important.

Go is a very nice language, clearly geared toward high concurrency but can be used as a replacement for C in many ways and I like it a lot now. I have replaced a few of my utilities (like my LDAP/search proxy in Sinara with a much faster version in Go erc-search) and libraries like the Flightaware client with its Go counterpart — Flightaware-go.

You can also cross-compile between Linux, OS X and Windows which is very nice.

I even created the Go version of leftpad after the Node.js package of the same name was hit by disaster… :)

I’m currently writing a Go version of the RIPE Atlas REST v2 API here. This is a Work In Progress, far from complete.

Our friends at JetBrains have created a version of the famous IDE specifically for Go, it is called Gogland and is now in beta. It is as awesome as RubyMine is.


The Gopher logo was created by Renee French and is used under license CC-BY 3.0.