In accordance with our meta agreement, since one candidate received more votes than the others, we have a new featured language! Throughout December 2020, our Language of the Month, nominated by myself (Technohacker, a.k.a K3v1n) will be:
Rust
What's a Language of the Month?
See the meta post for nominations. In short, during December, those who wish to participate should learn (at least the basics of) Rust, and use it to solve challenges. Participation is completely optional, but is anticipated to be fun!
Information about Rust
Verbatim from their homepage:
A language empowering everyone to build reliable and efficient software.
It may not be a language built for golfing, but it'll surely be interesting to see it being used as such!
It's a language designed to prevent memory-unsafe operations at compile time, to the point where (using safe Rust), "If it compiles cleanly, it's memory-safe". It does so by employing move semantics and references tagged with lifetimes, which also leads to writing programs that don't require a garbage collector
As a welcome side effect from its memory safety, Rust programs can easily be parallelized due to data-races being eliminated
It has a robust type system (which is interestingly also Turing complete provided limits are removed, similar to Prolog) which handles null using an Option type and program exceptions with a Result type, forcing exceptions to be handled explicitly
It has a very consistent toolkit, with cargo managing dependencies and working as a build, test, benchmark and documentation system, clippy providing suggestions to help Rustaceans of any experience level write idiomatic Rust, and more
It has excellent documentation and ensures examples provided in docs are tested as part of the test suite
It can run on a variety of environments, all the way from bare metal to WebAssembly
It has zero-cost implementations of iterators and asynchronous programming
Resources
- General information about Rust the language
- Rust home page and The Rust Book, a first-principles introduction to the language
- Documentation for the std crate, describing the language with detailed descriptions
- TIO, Golfing tips
Bounty
Answers in Rust will be eligible for a bounty of 50 rep if you have not posted an answer in Rust before. Sorry, but if it's a question that I (user) have already answered, I'll only award the bounty to an exceptional answer, since it starts at 100 rep.