Go doesn’t attract mediocrity it attracts pragmatism.
I worked on a Scala team for a couple years, had a lot of devs that were “smart”, problem was they wrote really fancy code no one could understand.
I then switched to a Go team and it was night and day. I was wildly more productive and the people in the community were not lacking intelligence.
Go prioritizes community, it believes that “us” is more impactful than “me”. This is its biggest strength, and is often lost on people looking in from the outside.
In my experience Go's relatively constrained language and standard library coupled with gofmt mean Go code written by entirely different people tends to read fairly consistently.
When worked on Go projects, I found that I was far more likely to read library code to see how to use it than other languages I used. Cannot be too "fancy" is definitely a strength of Go as a programming language.
I don’t dislike Go and have worked with it professionally on and off over the years. It occupies a weird liminal space between low level languages like C and medium level languages like Java. It was built to solve a set of in house problems that Google faced and it does so well. On the other hand if you end up needing to do lower level work the lack of power renders Go unsuitable. And if you need to do higher level work the lack of expressiveness is almost as frustrating.
> Go doesn’t attract mediocrity it attracts pragmatism.
It attracts "pragmatism" and "simplicity" in my experience, but in the prescence of cheap optimal solutions the worse alternative is chosen to preserve that pragmatic image.
I worked on a Scala team for a couple years, had a lot of devs that were “smart”, problem was they wrote really fancy code no one could understand.
I then switched to a Go team and it was night and day. I was wildly more productive and the people in the community were not lacking intelligence.
Go prioritizes community, it believes that “us” is more impactful than “me”. This is its biggest strength, and is often lost on people looking in from the outside.