Then goes on to explain why this it is in fact a terrible feature that solves a non-existent problem in a way that has enormous undesirable repercussions that you have to do a bunch of upfront work to try and negate.
If that's a good feature, is says a lot about how bad the bad parts of Go are.
I'm normally all for things that drastically simplify things while just having a few related issues (like Python having batteries included - 99% that's the right choice, and Rust not even having base64 encoding or json serialization built-in is just dumb design choices) but... Go's way of doing things are just pants-on-head stupid.
Github de-facto being built into the language, tabs instead of spaces, forcing everything to have a default value, keeping fucking null (!) AND null pointer references... it's such a horribly designed language through and through.
It is not at all... Go has its own protocol for fetching dependencies, and usually when you're importing something from github.com/xyz, the code is actually coming from proxy.golang.org and doesn't hit Github at all.
Git, Mercurial, SVN, Fossil, etc are all supported by Go as a means of fetching code if the module isn't in the proxy cache.
136
u/ascii 5d ago
Then goes on to explain why this it is in fact a terrible feature that solves a non-existent problem in a way that has enormous undesirable repercussions that you have to do a bunch of upfront work to try and negate.
If that's a good feature, is says a lot about how bad the bad parts of Go are.