It has almost been a year since I posted my thoughts on go. Since then I’ve used go for several small projects. Here are my updated thoughts on the language.

The Good

Compiling into a binary

By having a binary, the deployment process can be as simple as updating a binary on the server. Also, having the ability to cross compile come with the tools you get with the language takes care of a majority of cross platform concerns.

Excellent Coding Experience

With Vim as my primary editor, vim-go has been fantastic. Probably one of the best editing experiences on Vim I’ve had due to the seamless integration with the built in go tools.

Code Confidence

The more go code I write, the more I appreciate the small things the compiler catches. Although not go specific per-se, having a modern statically typed language is a breath of fresh air. Countless time’s have I switched back to a dynamic language (especially ones I’m less familiar with) only to end up wishing that the language had some kind of checker for dumb mistakes I’ve made (ie: the things a compiler would catch).

The Meh

No “right way” of doing things

The fear of not writing things the “right way” still sticks with me today while I write Go code. I believe it stems from the fact that Go has such a fantastic standard library. I know this is a weird thing to be complaining about, but indirectly this is sort of what the Go team intended. They built a standard library so powerful that most people would only need it to build whatever it is they wanted to build. The standard library propagated an ecosystem of custom software solutions which naturally meant there is “no right way of doing things”.

Overall I’ve been fairly satisfied with Go. It is actually now my “go-to” language now when I’m not doing any front-end work.