Marc Clifton wrote:
I don't mind dependencies, but I want them locked down in the configuration that they initially work in, I don't want something auto-updating because there's a newer version out there, and I want to be in total control of what/when I update.
I agree with you on that (I commit source code of dependencies in with the code of my C++ apps where I have no packet manager) - which is why I favour [Paket for .NET dependencies](https://fsprojects.github.io/Paket/) - [it understands that you might want to lock versions of packages...](https://fsprojects.github.io/Paket/lock-file.html). Similarly, Rust (which I dabble with now and again) has a package manager, [Cargo](http://doc.crates.io/guide.html), with the same concept.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p