FreeBSD : Go :: Linux : Rust
FreeBSD : Go :: Linux : Rust
It's much harder to manage a large codebase/application with Python, but it excels at data science and research programming, which Go and Java do not.
(Obviously, there is overlap between all, and you could do anything in any language.)
Rust’s close alternative is C++. Maybe also C? I don’t know if Rust can fill its niche of ultra-portable libraries that are relatively easy to import and use in tons and tons of other languages & systems.
Sure, there will be a small C ABI shim but the developer experience writing in Rust I think is worth it.
Also, nowadays whenever I want to write a fast Python extension, I don't think twice before using pyo3, super simple to write and build.
Rust and Linux are changing rapidly and aren’t as worried about completely uprooting entire systems. See for example sys v init vs systemd.
Go didn’t get generics until 1.18 and promises backwards compatibility.
In Rust, the popular command line parser Clap completely changed its API between 3 and 4 such that you’ll need to update your code.
As much as I like predictably and simplicity, I think Rust will largely be more successful similar to Linux winning over FreeBSD.
I will admit that because the library ecosystem in Rust is younger, you do see things like Clap's breaking changes more often than in other languages.
In contrast, Linux and Rust are both smaller core systems with more exposed complexity, but also require a large user space to make the core useful. Linux is just a kernel so you gotta bring everything else in the OS. Rust you need libraries for things most other languages (including Go) include, like regex, async, etc. However both Linux and Rust have a culture of adapting the system to work exactly how you like, in Linux again you bring everything you want - want systemd? Cool. Don’t want systemd, that’s cool too. In rust, people go absolutely crazy with macros and abstractions and likely it will still be plenty fast at runtime.