Hacker News new | ask | show | jobs
by shawn 2867 days ago
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

2 comments

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.
> The `go get` command was never marketed as a versioned package management tool.

Because the Go team kept pushing the ridiculous idea that versioning doesn't matter.

> `go get` also works just fine if you point it at forked repositories that you control.

And at that point, what value does `go get` add?

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.