My experience with Go is positive. I transitioned to Go from Python (which we still use in some projects), but overall I started to prefer Go over python.
What I like about Go:
- explicit error handling, one is forced to write correct code and think how exactly the errors will be handled. I now prefer Go's approach over exceptions.
- code is readable, I can look at the code of my coworker and very quickly see what exactly it does.
- surprisingly, I found myself not missing OOP features
- If project is compilable on localhost, it will be compilable on the server... this is easy to achieve and also deployment is straightforward.
- it forces to write "stupidly simple" code. for example, it doesn't allow function parameters with default values. The consequence is, that I sometimes need to spend a little extra time on refactoring, but then have more readable code.
What I like about Go:
- explicit error handling, one is forced to write correct code and think how exactly the errors will be handled. I now prefer Go's approach over exceptions.
- code is readable, I can look at the code of my coworker and very quickly see what exactly it does.
- surprisingly, I found myself not missing OOP features
- If project is compilable on localhost, it will be compilable on the server... this is easy to achieve and also deployment is straightforward.
- it forces to write "stupidly simple" code. for example, it doesn't allow function parameters with default values. The consequence is, that I sometimes need to spend a little extra time on refactoring, but then have more readable code.