When writing #Rust code as if it were a high-level language, what is your biggest annoyance/roadblock?
Put another way, what is the biggest thing that gets in the way of Rust feeling like Python or Swift to you?
#RustLang

@ekuber Disclaimer that I'm relatively new to rust. I usually use go as my "high level language", but sometime python, shell, typescript or scheme depending on the context.

In go interfaces are satisfied automatically, without a declaration, when you implement all the methods. Meaning you can print your types without #[derive(Debug)] and if you add a String() string method you can change how it prints automatically.

I also don't love some syntax choices like impl blocks.

@ekuber The other big thing holding me back from using rust for higher level tasks is the stdlib. In go you get a vast collection of reasonable implementations which is often what I want for higher level tasks. However, Rust's type system is so good that and many of the popular libraries are excellent so I've been using Rust more for higher level things lately anyway. Python's stdlib is obviously way too big. Maybe just a blessed list of reasonably good crates would help for Rust?
@kota @ekuber The automatic satisfaction of interfaces in go is called Structural Typing. And tbh I don’t like it. The fact that some struct is a proper implementation of a particular interface needs to be checked manually (especially if you aren’t using an IDE or LSP and is reviewing someone’s code), and you have to know about the existence of such an interface to know why a particular struct is implemented with a particular set of methods.
@kota @ekuber In Rust, instead of using `#[derive(Debug)]` to print your obj instance the default way, you could `impl Debug for YourStruct` yourself to print it in whatever way works best for you. It’s more verbose than go’s String() for sure, but verbosity is just Rust’s thing.