What is the best and the worst about Rust programming?
I'm looking for a versatile compiled language that overcomes the limitations of Python/TypeScript in performance and portability, avoiding the need for additional or multiple languages for Unix, Wasm and FFI programming. Go is powerful but limited in those aspects. I've used C, but C feels very archaic sometimes and like everything is going to break at any moment, and not good tooling like Go.
Chatgpt's suggestion from my use cases is usually Rust, however, it always gives very cliché and superficial answers, therefore, I would like you to be honest with me and tell me the things that are shit about Rust and the positive things that make Rust great and that compensate the downsides, I know everything in life is a trade-off.
A priori, some of the things I don't like about Rust are:
- Strange and verbose syntax like
<Arc<Rec<Box<'things>>> - The fact that it doesn't have a complete standard library, like Go or Python, and that you have to rely on dependencies for things like async
- Compilation times
- How much does the borrow checker get in the way when going from idea to functional code? (with Go, my experience is very low friction for expressing ideas algorithmically)
- How often and exactly why is it necessary to use "unsafe" in Rust? I've read that it's one of the least ergonomic things that exists in all systems languages
These are some of the fears or prejudices I have regarding Rust, based on the little I've been able to read about Rust and seen in codebases. But, again, these are prejudices because I've never given it a chance.
My intended use cases are:
- CLI applications
- GPU programming (opengl, vulkan, etc.)
- WASM
- High performance backends
- ML/AI models integration
I would like to know the particularities of the hand language of those who have experience with it to analyze if it is what that I am looking for. Thanks in advance!