The only bad design I see is the missing generics.
The path, modules, and error handlings are features to me, not drawbacks.
The path, modules, and error handlings are features to me, not drawbacks.
The problem is, why did it take almost a decade for a modern language, at Google nonetheless, to get a proper dependency management feature?
To me it says that the Go vetting process at Google is seriously constipated, perhaps because people there just say "this does not look right, but who am I to question the decisions of Rob Pike and Ken Thompson?". And then we end up with these language design decisions from the 1970s.
And also, amazingly, error management in Go may have actually been made worse in 1.13: https://www.reddit.com/r/golang/comments/biexq0/go_113_xerro...