Comment by no_wizard

8 years ago

I find laying out a go project with dependencies to be miserable though. I write a lot of go and python code and why on God’s green earth did google decide to handle dependencies by having you effectively git clone a library and then have these huge tree deps subdirectories and so on I don’t know. It’s mess. I vastly prefer the approach of either having one canonically designated folder to install dependencies to where each dependency is a top level directory that can be scanned or having them all stored in a project folder relative to root of the workspace similar to node_modules then the current mess.

Drives me nuts. Look at this layout if you don’t know what I’m referencing:

https://golang.org/doc/code.html#remote

Yes I have used dep

And yes I have all kinds of shortcut commands for navigating my Go workspace

But look at this canonical example From the docs and it’s easy to see this is a giant mess that is utterly unnecessary. No other language I’ve used has had such a gross problem with dependency layout. It also leads to gross import strings.

It’s one of my biggest criticisms of Go to be honest.

Thst and it’s reliance on environmental variables that have to be set perfectly in order to actually do anything (thank god for direnv https://direnv.net/)

Isn't what a dependency folder like node_modules pretty much what the vendor folder is to go. Have you tried using a dep mangement tool like glide before?

  • Thst is one I haven’t tried I tried a few others whose names I forgot because most alt managers seemingly stopped development but this looks active. Thank you!

    I now would shift my argument to the fact that Google should really just adopt this as their standard if it works as advertised.

    Link for those who haven’t seen it:

    https://glide.sh