4 ms·
One of my favorite things about Rust is that it uses the file system as the basis for a fast, reproducible, and composable developer environment. I can unzip a
by RcouF1uZ4gsC 3y ago
One of my favorite things about Rust is that it uses the file system as the basis for a fast, reproducible, and composable developer environment.
I can unzip a directory, cd into it and cargo build it and for the most part it just works.
The fact that we have added shared libraries and environmental variables and so many other magic incantations that we need massively complicated second systems is an indictment of our culture of complexity.
I believe Go also embraces that level of simplicity.
And when it comes to deployment, instead of needing a simulation of a whole operating system (containers), I can just remote copy a directory and just have it work.
- anotherhue 3y agoAssuming that you're happy with whatever cargo is available on that machine, and that that version won't change?
- School-Cotton 3y agoLots of rust software has dependencies on non-rust software and build scripts that need various things to be in the path or in other environment variables. For example, anything using bindgen needs libclang, and to make matters worse, doesn't look in the conventional LIBRARY_PATH but requires a special environment variable LIBCLANG_PATH.
- ceving 3y agoThere was a time where shared libraries were necessary, because otherwise the programs would not fit into memory.
- JonChesterfield 3y agoThere may still be arguments around shared cache between programs though the security inspired rearranging things might thwart that. I like static binaries a lot. Whole load of failure modes just gone. Building a clang that targets musl by default on glibc systems is loosely practical these days. That builds self contained binaries that only depend on syscall. (It took me a few days, a lot of cursing at cmakes ideas about cross compilation and patching trunk slightly, but it can be done and enough of the patches stuck.)
- JustLurking2022 3y agoYou appear to misunderstand containers.
- duped 3y agoNow cross compile something that has a dependency on a system library
- JustLurking2022 3y agoDownvote though you may, you misunderstand containers - they are not simulating a whole operating system (that would be a VM), they are using features built into Linux to isolate tasks running on the same OS kernel to be isolated from each other.