tl:dr; Tired of .NET, drinking the golang kool-aid.
Go is one of those languages I've been seeing hyped up for a while, almost buzzword-esque, and I shrugged it off as a temporary spike akin to node.js. I've always been relatively happy with .NET ecosphere; it has its pitfalls, but what language doesn't?
Recently I've been working on a project on my own time that's going to be dealing with high concurrency, lots of data and (hopefully!) lots of traffic. My other concerns are getting the first milestone iteration shipped quickly, clean/maintainable/extensible code and keeping cloud costs down to a minimum (read: getting away with a little hardware as necessary).
For the web front end portion (OAuth 2.0 integration and database queries), I figured C# MVC 5 was the no brainer choice. I'm extremely proficient in C# and though I've never had the opportunity to do an MVC project I really liked the razer syntax and the overall idealogy. Starting the new project in Visual Studio 2013 it asks me what type of authentication I'm going to use and a few other items (basically asking if I want to use entity framework); this of course generates a ton of code for me. This is a good thing, right? Less work for me. No, unfortunately not; entity framework is terribly slow and I can't really seem to make sense of how the authentication is working behind the scenes. I'd argue it's too much abstraction; I don't want to inspect the IL code but at the same time I'd like to have a good idea of what my code is actually doing.
So the obvious alternative is to write my own authentication and go to a lower level of database interaction, ala something like Dapper or just manually messing with the SqlDataReader. This is what I do at work, so no big deal, right? I don't know, but working with lower levels of abstraction in C# just isn't... fun. It doesn't quite feel right. Dealing with dependencies in Visual Studio kind of sucks. The projects have a ton of overhead and even though it's a small complaint and easy to work around version controlling visual studio projects sucks as well. The implicitness of the language kind of sucks as well, but I suppose that depends on your perspective. I'm sure it's nice being able to rapidly deploy things and avoiding a lot of boilerplate but it can really bite you in the ass.
So what does that leave me with? C? No thanks. Ruby/Python? Too slow, no thanks. Java? I'd rather just stick with C# at that point. PHP? hah. hah. node.js? Maybe, but with my concurrency needs and the fear of callback hell I'm skeptical.
Enter Golang. I feel like for a long time I was trying to bend .NET into something it wasn't intended... and that something is go. The package management is great, it's fast, it's explicit... I don't think I can really articulate much more than what I've said. Try it, you'll like it.