4 ms·
> Rust as we know it stops if this one particular web service goes down. True that, but that is only because we got used to not having to download dependencies
by qalmakka 3y ago
> Rust as we know it stops if this one particular web service goes down.
True that, but that is only because we got used to not having to download dependencies manually (like with C). The option of "download all of your dependencies by hand and slap them in a directory" is always there, only instead of invoking ./configure with --with-libxyz=PATH or setting XYZ_PATH you modify a Cargo.toml.
> 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.
That's rich. If that was the case, there would be no Docker. What about Windows? On Windows installing C/C++ libraries is a massive PITA. What about if your distro packages the wrong library version, or it's been built with a set of flags you can't use? The whole point is moot IMHO. A small part of why we ship libraries through package managers is because disk space was scarce years ago and it's arguably "safer" to build shared objects (at least for C libraries, C++ has templates so shared objects is a recipe for disaster and requires rebuilding everything anyway). The critical reason why we have a `libxyz` package in the average distro is because _C/C++ build system is a massive mess_, and that's the only sane way to distribute and allow people to build packages without wasting several hours to find and gather all dependencies.
This approach has considerable downsides, so that's why we now have Flatpak and the like.
- uecker 3y agoI don't agree. IMHO Building on top of shared libraries with stable interfaces managed by a distribution package manager is the better approach. All this fast changing dependencies where you then end up having multiple installed at the same time in different containers, statically linked programs, or whatever is a complexity, security, and long-term maintenance nightmare.