> Unlike other languages where you can just create a directory and get started, Go wants you to put things in $GOPATH.<p>I've seen this complaint a lot and don't agree with it. Go just want everything to be accessible through $GOPATH, it doesn't have to _be_ there. Here's how I organize my code:<p>- I have all my dev in ~/dev. Anything goes here, whether it's go, ruby,... it's my workspace<p>- I put $GOPATH where it should be, in ~/.local/share/go<p>- Whenever I need to go get something, it ends up in ~/.local/share/go/src/domain.com/author/package, as expected<p>- When I need my package to be in $GOPATH, I just symlink ~/dev/project to ~/.local/share/go/src/github.com/rakoo/project, so it is visible in $GOPATH<p>After that everything works as expected (modulo some minor quirks I have to do at go install time), and you don't have to have a specific workspace just for go. It's also minimal enough (once per new project) that I'm not too bothered by it.