This is not intended to be a flame war! We are all grown up and know that every language has it’s pros and cons and we should not negatively criticize other peoples works for no reason.
I keep a very close track of some languages, mostly: Go, Elixir and Rust. Go is by far my favorite, I really like how it works, and even though it’s not perfect, it’s 90% Perfect, 100% of the time .
But I also really like what other languages can bring to the table, like Elixir. While I was browsing the Elixir forum, I came across with this post: Understanding the popularity of Go. And it is what we could expected, everyone complaining about how error handling is wrong, miss of generics and why it got popular because it’s backed by Google.
The reason of this post is to discuss how Go, even not being a rock star language in the sense of what people actually expect today (generics, union types, immutability, …), solves real world problems. For me it’s very clear why i’m using Go, but i have friends that keep asking me why not Elixir, Clojure, Rust, {insert any shiny new thing}, and maybe this still a open doubt for newcomers.
Today I’m working in the biggest ecommerce in Latin America, all projects of my team are made with Go and we handle alot of traffic most of the time with the minimum instances and it’s rock solid, no runtime exceptions, predictable performance and easy to write/read code. At the company, there is group of people that argues that functional programming is the right way, but in the end of the day, my applications are running as good or better then they, consuming lower resources and with a very low start barrier. By the way, the company is based in microservices, so, the applications that i’m talking about are all microservices.