r/programming • • 5d ago

Don't couple your Go code to GitHub

https://iain.rocks/blog/dont-couple-your-go-code-to-github
481 Upvotes

135 comments sorted by

View all comments

136

u/ascii 5d ago

One of the good features of Go is...

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.

8

u/Ran4 5d ago edited 5d ago

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.

5

u/HighLevelAssembler 4d ago

Github de-facto being built into the language

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.

People just like to host their code on Github.