For me it's my choice when I'm facing the following cases:
- a customer facing web service, so fast responses are appreciated
- I'm crunching numbers from some data store
- I need a low footprint for my data structure
use cases I faced was:
- I need a service for customers to service resized versions of images, in that case this is computationally expensive and sensitive to any language overhead
- I needed a fulltext search for more than 20M records, Go can crunch them faster than any other language I have in my skill set.
- I need to crunch more than 3M records in less than a minute, generating analytics and serving them to users
use cases I didn't choose go for:
- I needed a service that takes periodic backups of the database maintaining a fixed set of old backups (it's not customer facing and delay isn't that problematic)
- a website that serves HTML pages to the user depending on database tables...etc, I used rails for that as it was more flexible/productive for me (I had thoughts to rewrite it in Go, but then thought it's not worth it, as rails productivity was over Go speed in that case)