== Using _go get_ alone is a bad way to keep track of interesting packages When I was just starting with Go, I kept running into interesting Go packages that I wanted to keep track of and maybe use someday. 'No problem', I thought, 'I'll just _go get_ them so I have them sitting around and maybe I'll look at them too'. Please allow yourself to learn from my painful experience here and don't do this. Specifically, don't rely on '_go get_' as your only way to keep track of packages you want to keep an eye on, because in practice doing so is a great way to forget what those packages are. There's no harm in _go get_'ing packages you want to have handy to look through, but do something in addition to keep track of what packages you're interested in and why. At first, there was nothing wrong with what I was doing. I could easily look through the packages and even if I didn't, they sat there in _$GOPATH/src_ so I could keep track of them. Okay, they were about three levels down from _$GOPATH/src_ itself, but no big deal. Then I started getting interested in Go programs like [[vegeta ../web/VegetaLoadTesting]], [[Go Package Store http://blog.gopheracademy.com/updating-your-go-packages-with-go-package-store/]], and [[delve https://github.com/derekparker/delve]], plus I was installing and using more mundane programs like [[goimports https://github.com/bradfitz/goimports]] and [[golint https://github.com/golang/lint]]. The problem with all of these is that they have dependencies of their own, and all of these dependencies wind up in _$GOPATH/src_ too. Pretty soon my Go source area was a dense thicket of source trees that intermingled programs, packages I was interested in in their own right, and dependencies of these first two. After using Go seriously for not very long I've wound up with far too many packages and repos in _$GOPATH/src_ to keep any sort of track of, and especially to remember off the top of my head which packages I was interested in. Since I was relying purely on _go get_ to keep track of interesting Go packages, I have now essentially lost track of most of them. The interesting packages I wanted to keep around because I might use them have become lost in the noise of the dependencies, because I can't tell one from the other without going through all 50+ of the repos to read their READMEs. As you might guess, I'd be much better off if I'd kept an explicit list of the packages I found interesting in some form. A text file of URLs would be fine; adding notes about what they did and why I thought they were interesting would be better. That would make it trivial to sort out the wheat from the chaff that's just there because of dependencies. (These days I've switched to doing this for new interesting packages I run across, but there's some number of packages from older times that are lost somewhere in the depths of _$GOPATH/src_.) PS: This can happen with programs too, but at least there tends to be less in _$GOPATH/bin_ than in _$GOPATH/src_ so it's easier to keep track of them. But if you have an ever growing _$GOPATH/bin_ with an increasing amount of programs you don't actually care about, there's the problem again.