Hacker News new | ask | show | jobs
by Walkman 2865 days ago
Can you tell at least one specific example where they broke the standard library?
1 comments

It figures that my critique would be undermined by the choice of a single word.

Look, maybe the stdlib is rock solid. But every time I try to build a Go project, `go build` finds ten ways not to work.

Case in point: https://github.com/cretz/tor-dht-poc

Try building this. I have no idea what's wrong with it, but it doesn't work. It's cool tech, I want it, but I don't want to immerse myself in the world of hurt^WGo just to get it.

I did however at least attempt to fix the problem: https://github.com/cretz/tor-dht-poc/pull/2

It has nothing to do with Go the language itself. There are tools for that and lazy authors have the same problem with other languages also.
The 'problem' is that the authors did not use dep (soon to be modules) and add the Gopkg.[toml|lock] files.
Or that such tools aren't shipped and part of the standard Go experience.

Fortunately that's changing.

ant, maven and gradle are not shipped with the JVM, yet the java community figures out how to do a build system somehow.
Java doesn't bundle and market a `java get` command that works fine until it suddenly dosn't.
The `go get` command was never marketed as a versioned package management tool. `go get` also works just fine if you point it at forked repositories that you control.
in fairness, Java has an excuse that it’s ancient in language terms and expectations were different then.

Go, not so much - it came out in 2012. Pip and CPAN and Gem had been around for years. Go’s lack of a sane packaging solution this far into its lifetime remains a serious weakness of an otherwise solid platform.

One could argue that golang is a solid platform because they focused on the platform first, instead of the package management. It is all about priorities.