Here are some quick points I’m jotting down on what I think/feel about Go.
Things I like about Go
- Gofmt and GoImport for code consistency / productivity
- Functions can return multiple values
- Go’s interface system and duck typing
- “Production Ready”
Basically the language itself is pretty awesome. The tools built for development are fairly good. Google says the things built into Go are production ready so you can build/run Go code with confidence.
Things I dislike about Go
No “right way” of doing things
- Everyone talks about how Go is awesome but no one talks tries to identify ways people are using Go correctly / incorrectly.
Having to write boilerplate code for each project
- Go has an amazing standard library but we’re back to an argument similar to browserify v.s. webpack; do we want logs or do we want a cabin? Go gives us logs.
Lack of community recognized frameworks
- Communities help distinguish good ideas and bad ones. Frameworks help drive standards. A lack of community recognized frameworks for Go means everyone is basically on their own when they want to start a new project. One Go developer can’t really jump in to help another Go developer without having to first develop complete understanding of the code base.