For many years I have organized my projects in a single directory like this:<p><pre><code> |-- projects
|-- project_0
|-- project_1
|-- project_2
</code></pre>
A project regardless of programming language will get a directory under 'projects', that contains all files releated to this particular project.<p>Some time ago I started learning Golang and have since written many utilities in it as I like it very much. Golang requires a special directory layout for all it's tools to work, and this layout is incompatible with the one I'm using.<p>What is the best way to organize Golang and non-Golang projects? Should I just bite the bullet and start organizing my projects by language?
You could use a Go "project" that is in fact the $GOPATH, like so:<p><pre><code> |-- projects
|-- project_0
|-- project_1
|-- project_2
|-- go
|-- src
|-- pkg
|-- bin
|-- project_4
|-- project_5
</code></pre>
Your other projects would then not be affected at all.<p>Or consider using a tool like `gb` (<a href="https://github.com/constabulary/gb" rel="nofollow">https://github.com/constabulary/gb</a>) that does not depend on $GOPATH. (But ensure to understand the caveats of this tool before switching to it.)