What’s interesting is that this problem is largely solved for C and C++: Linux distributions like Debian
[closes tab]
I don’t understand the complaint here. It sounds like the complaint is that there is a single source for libraries… but the solution provided is “use apt-get”.
Today, I refuse to use any language that doesn’t ship with a dependency resolver like crates or rubygems. Python taught me that I really want dependencies to be a first class citizen.
What’s interesting is that this problem is largely solved for C and C++: Linux distributions like Debian package such a wide range of libraries that for many things that you want to develop or install, you don’t need any third-party libraries at all.
This person has made some very different experiences to myself. How does C++ handle versioning? How do you compare versions across distros or even OSs? How do you control which features are included? How do you make sure your chosen build tools finds these files?
Projects like conan try to do what crates.io does for Rust and it’s not the greatest experience. The other direction is something like Buck2 that puts the whole dependency in your project so you can have hermetic builds.
I have no idea how any of this can be seen as an advantage in a development workflow.
I assume you are talking about dependency versioning. That’s hard on regular Linux distros. However, it’s easy on nix and guix.