4 ms·
I don't think GOPATH is poorly thought out at all. Dependency-environment-locating is a PITA. Off the top of my head, I can't think of a single package manageme
by kortex 6y ago
I don't think GOPATH is poorly thought out at all. Dependency-environment-locating is a PITA. Off the top of my head, I can't think of a single package management system that doesn't use universal installs, FOO_PATH or "giant local dump per project".
Universal:
- apt, yum, brew
Team PATH:
- GOPATH
- CMAKE_PREFIX_PATH
- PYTHONPATH (which Conda, virtualenv, etc modify)
- CARGO_HOME
Team redundant local blob:
- Node
- pipenv
Rust is probably the least-half-assed (most full-assed?) model, with both a sane user-wide default for cache (~/.local/cargo), a way to edit that default, and project location flexibility.
But I actually love the Go notation that I've opted to organize most of my code around the ~/namespace/src/domain/repo scheme. I never lose track of where a folder is :)
- mssundaram 6y ago> 've opted to organize most of my code around the ~/namespace/src/domain/repo scheme. I never lose track of where a folder is Yes I do the same! I don't lately write any Go but I really appreciate the organization this way
- lookdangerous 6y agoIs your home dir chock full of namespace folders?
- kortex 6y agoNope, just two or three. Most lives in ~/ao (easy to type on dvorak), some is in ~/rd (random), some is in ~/tmp. I don't really work on enough variety of projects to deal with collisions.
- fiddlerwoaroof 6y agoNix isn’t any of these? It installs each replicable version of a package once, but it’s not visible outside of the project that uses it.
- kortex 6y agoNever worked with Nix, though it looks interesting.
- fiddlerwoaroof 6y agoIt has rough edges, but I find it one of the better developer experiences.