If you have questions about Rust, suggestions for concepts that should be clarified via the FAQ, or any other ideas related to this issue, feel free to share them here.
More specifically:
What questions do you or have you had about Rust?
What problems have you encountered during your experiences programming in Rust?
What topics or concepts in Rust do you feel deserve clarification?
Do you have any other ideas or comments about what the Frequently Asked Questions page on the Rust website should include?
Thanks for any and all input you can offer! Each answer helps make the Rust learning experience better.
OK, son now that I have some experience with the language and more or less both questions have been answered, but in my beginning I had some trouble with them
How do lifetimes work? When do I need to put them and why?
I had to try almost every combination to figure out how the syntax was. Did I have to put them in impl? only in the struct definition? in impl and after the struct name? and in methods? why so many lifetime specifiers? As an example:
I even had suggestions from the compiler of putting the lifetime specifier in the Planet::new() function definition I get that they are important to the language now (even if with one definition should be enough) but for a newbie, the compiler messages were troublesome, well, nothing like the thread in the Internals forum to understand it.
Why no exceptions? I get that the Result structure can do pretty much the same thing, but propagating exceptions through the call stack could be great to keep loose coupling between some modules.
In my opinion the FAQ list should include also the following questions:
Why when I pass a struct to a function I cannot use it anymore (compiler complains about moved value), while when I pass an integer everything is fine?
Lifetime: when it is required to be defined?
Why the compiler cannot find modules from an imported crate? (see my question)
When it is possible to avoid writing the *?
How the deref coercion works?
Can I override operators? Which ones and how?
How can I implement something like C++ struct X {static int x;};?
Go and Rust are constantly compared as both languages are "low-level" languages. While you can find a lot of third-party blog post on the topic an official comparison would be fantastic!
Many people try to compare Rust to Go, but this is flawed. Go is an
ancient board game that emphasizes strategy. Rust is more appropriately
compared to Chess, a board game focused on low-level tactics.
Nice try, but while chess entirely uses your analytical left brain side, Go needs both the analytical left side and the artistic/pattern recognition right side . Besides of that computers have beaten humans in chess, but not in Go.
Your chess/go comparison would lead to the conclusion that Go (the language) is superior to Rust
The linguistic side of my brain says that the quote doesn't even cover the option of Go being a programming language ;). (quote taken from Rust for Clojurists, btw.)