Sort:  

Yeah, Go is a great little language. Easy to learn and very productive.

The only thing I didn't like about go was, as you said, it's anti-idiomatic to use frameworks. Often when I'm getting a prototype together I want something I can quickly build things with even if they're built poorly or slowly, rather than taking the time to roll my own. If I wanted something production ready I'd be more apt to reach for an older, or, more safe language. Go exists in a very unique space in my opinion.

It may not be idiomatic to use frameworks in Go but there are plenty of them if you want to follow a pattern. The basic style that comes with the net/http library is fairly straight forward and fast to prototype in. I actually find it fairly easy to prototype in a language like Go as opposed to something like Rails but maybe that's just me.

Frameworks like Rails and Django maybe more battle tested but Go has been around long enough to prove its muster and has been in production for rather large projects as well (since google uses it for a lot of things). Not to mention that Go naturally uses a level of concurrency that requires a lot of work in some of these other more mainstream frameworks.

That being said, I would tend towards using Go for Microserves and smaller applications because that is where it really shines (Serverless and Lambda style stuff). If I wanted to build something that had a ton of different features then one of these "batteries included" frameworks would be the obvious choice.

Well said, 100% agree.