| ▲ | awesome_dude 2 hours ago | ||||||||||||||||
Package management is the bane of nearly every language/technology Nobody has "solved" it, and I don't think that there will ever be one (never say never, though, right?) For Go we rely on developers of libraries to adhere to the semver versioning scheme accurately, and we cannot "pin" versions (a personal bugbear of mine) There is a couple of workarounds - using SHAs not unlike the git commit hash to provide a pseudo version, and, vendoring (which is a cache of known dependencies - which brings with it cache management problems) I had the misfortune of having to use Python with a virtual env on the weekend - it did not end well, and reminded me why I migrated away from Python. Look at Perl (cpan) Java (maven, gradle) Ruby (gems) Go (dep, glide, vgo, modules) Rust (cargo) Node (npm, yarn, etc) OSes too Redhat (yum, rpm, etc) Debian (apt) Ubuntu (snap - god why????) And so on | |||||||||||||||||
| ▲ | corndoge 2 hours ago | parent [-] | ||||||||||||||||
Nix solved it. Languages could choose to adopt Nix as their packaging system. | |||||||||||||||||
| |||||||||||||||||