Someone had to say it. My first impression of Go was that its creators have not worked on a modern, large scale system in decades. And they probably have not. Go skips about 40 years of advances in language design and code maintenance. We have stack traces for a reason. We have exceptions for a reason.
We came to it as software has become more complicated. The fact that you have to assemble the path to the root cause of an error yourself is completely bonkers.
Are you sure about this?? Go is being used to build some of the most important software in devops and databases today. Maybe its the thinking thats different but certainly it doesn't make codebases complex by itself.
Like Terraform? Yes, so? That doesn't change my opinion. It takes serious experience and skill to write good Go code and tests at scale. I don't really understand why people claim that Go is a simple and straight-forward language. For a "Hello, World", maybe, but once you hit the gotchas, the fun begins.
It can be difficult to reconcile comments like this with the reality that Go was designed at Google to address difficulties developing large-scale applications and even Kubernetes is written in it.
I agree with many criticisms of the language but sometimes that criticism seems to enter its own sort of echo chamber.
I don't get the impression that's a conclusion you came to on your own, and I don't find what is essentially hearsay or gossip to have a very high information signal in general.
That boils down to Go needing generics, which I agree with. I don't think we're completely in disagreement. I'm just skeptical that the language is quite as bad as you're sort of suggesting. That article falls short of condemning the k8s codebase and instead just says it could be better with generics.
To be clear I'm not the person who stated K8s has a garbage codebase or whatever. I was just linking relevant material (and I should have clarified that in my post instead of drive-by posting - sorry, was distracted).
We came to it as software has become more complicated. The fact that you have to assemble the path to the root cause of an error yourself is completely bonkers.