2024: The year of desktop FreeBSD?

I ran Alpine Linux on my desktop. It offered a great OpenBSD-like experience with the benefits of Linux. But many large open-source projects don’t compile on musl without custom patches. Rust with aarch64 on musl throws a bunch of strange errors.

I dislike the entire Rust ecosystem as much as I appreciate the design of the language. I made the mistake of following their recommended installation method. They created a script that installs rustup, which polluted my environment variables in over 10 places. After a failed rustup installation, my shell kept showing “file not found” errors from the $PATH environment variables. I had to manually locate these files and remove the lines it added to .bashrc, .profile, .config/fish, etc. Rust doesn’t even support aarch64 properly. I can't just use rustc by itself (maybe there's a way); I'm forced to use Cargo.toml and configure everything there just to compile a simple program with a basic syscall. Then, there’s the linker issue with LLVM lld. I ended up having to use the libgcc runtime and GNU linker and be done with it. It was f*ckin ridiculous amount of work, or maybe just maybe I suck at it.

Note: Apologies for my words, but I really needed to vent. I despise __GLIBC__ with my passion but it's probably too late
The best way to deal with Rust, with its bloated and messed up toolchain, is throwing it away and don't use it.
 
The best way to deal with Rust, with its bloated and messed up toolchain, is throwing it away and don't use it.
Good luck with that. Even in FreeBSD's ports, a lot of upstream projects (which FreeBSD doesn't control) have dependencies on rust somewhere. Once you finish dependency resolution, there's gonna be a dependency on rust, just a few hops away from the origin. An unfortunate cancer of Open Source, because removing dependency on rust will require that everybody agree to do that - and good luck going one by one. You'll end up needing to redo the whole computing stack from ground up, because even basic compilers have rust dependencies, even LLVM.

I think GCC managed to escape depending on rust, but other projects were not that stubborn. 😩
 
The best way to deal with Rust, with its bloated and messed up toolchain, is throwing it away and don't use it.

I'm in a dilemma:

* Give up on Rust: Manually handle memory in C and wrestle with cryptic template errors in C++

* Stick with Rust: Hope for a less bloated language and improved toolchain, without adding a bunch of environment variables to my local profile.

Or maybe I should try C++ with Rust-like features. Rust is also currently embroiled in a trademark dispute after python and GNOME. Business as usual I guess. I saw it already with BitKeeper, GPL3, MySQL and Maria, Nvidia binary blobs, Debian non-free, Amazon crap in Ubuntu, secure boot, etc

This is embarrassing.
 
Good luck with that. Even in FreeBSD's ports, a lot of upstream projects (which FreeBSD doesn't control) have dependencies on rust somewhere. Once you finish dependency resolution, there's gonna be a dependency on rust, just a few hops away from the origin. An unfortunate cancer of Open Source, because removing dependency on rust will require that everybody agree to do that - and good luck going one by one. You'll end up needing to redo the whole computing stack from ground up, because even basic compilers have rust dependencies, even LLVM.

I think GCC managed to escape depending on rust, but other projects were not that stubborn. 😩

I think the way rustc is designed feels great, but then Cargo and rustup happened. You end up with even worse than Python-like package management and an installation script that modifies your `.bashrc`, `.profile`, `.config/config.sh` (or Zsh related files), adds custom shell completions for Fish, Zsh, and Bash, and messes with your environment variables.

Who thought it was a good idea to write a POSIX-compliant script with over 4,000 lines just to do all of this and distribute it over the internet? Why? Many Rust crates also depend on C libraries, creating circular dependencies - rust crates depends on C libraries, C libraries again depends on python scripts, then these scripts also call Rust toolchain components. Combine that with Linux distributions, where everything is dumped into `/bin`, `/lib`, and over 2,000 distributions do the same thing with different package management systems or just a different theme.

It's absurd.

Also WTF!
 
Back
Top