npm creates node_modules, package.json and package.lock locally, when `npm install` is ran, whichever directory you may be in. pip lets you "capture" each dependency and write them to a file which someone else can install dependencies from. go lets you use `go mod init` and related commands to create a Go file where all dependencies will be tracked. Running `go get` will update this file, but only if you ran `go mod init` before. With zef, you have to write manually a JSON file. That sucks.