I am excitedly learning the language and would like to hear anyone's advice.
What is something that held you back while learning?
What advice would you give to the language, also what about lifetimes, &, mut, scopes, etc?
Any projects you recommend looking at?
At the moment, I am in a hate-love relationship with Rust, but we can manage xD What held me back (and still is)? Definitely the borrow checker. Most of the time,
.as_ref()and.clone()will help you get the job done and LLVM will optimize that abstraction away, as it is zero-cost abstraction helping you get memory management and threading correct.Some advice: try to keep things immutable, use scopes wisely (for example when you need to destroy a mutex, make a scope for whatever you need to do as a kind of critical zone and leave that scope as early as possible to destroy the mutex), when using OO, there often is a better way to do things instead of having a ton of lifetime notations on one trait or struct. All in all, play around with the language!
You might want to check out Rust focus projects, like Servo, Tokio, Redox and try to read some of their source, however, for me at least, that's quite complicated ;)
If you like 3D programming, you might want to give Glutin a try and develop some simple 3D scene or GUI (it's very easy!). I do not recommend using Vulkano to find your way into the language, though. I made that mistake, so believe me, don't do it, that thing is highly experimental!
Other than that, you might want to write a parser (that's one of Rust's most used demo references, after all). Lots of file formats still only have FFI bindings to C libraries, even though a pure Rust lib might be safer and perform better (in many cases, using the Rust iterators in the hot path works wonders). I would love to see a COLLADA importer/exporter, if you are looking for a format :D