A Gentle Introduction to Rust
Speaking as someone who&#x27;s poked around at the edges of Rust and always come away frustrated, the Rust world does need a &quot;gentle introduction&quot;. But while this document seems to understand that need, it gets messy pretty fast.<p>First of all, the introduction is all over the place, and poorly structured. There first section asks &quot;Why Learn a new Programming Language?&quot; but never answers that question (beyond &quot;it&#x27;s good mental exercise&quot;), and follows it up with a section labelled &quot;Where Rust Shines&quot; that instead vaguely compares its memory management approach to C, calls C a &quot;cowboy language&quot;, lists some of Rust&#x27;s design components (not really even principles, just aspects of the language), and then starts giving advice for how to learn a programming language in general? What?<p>Next is Hello World, and immediately &quot;Rust is a curly-braces language with semicolons, C++-style comments and a main function - so far, so familiar.&quot; Well, to C++&#x2F;Java&#x2F;Javascript programmers, maybe it is familiar. That may well be a huge part of your intended audience, but this gloss of the basics is a big red flag about what assumptions might be made further on.<p>&quot;The exclamation mark indicates that this is a macro call. For C++ programmers, this can be a turn-off, since they are used to seriously stupid C macros&quot;<p>Whoa, there, cowboy! This is Hello World! Mentioning macros at all should probably be reserved for a little later, much less vaguely referencing the C preprocessor&#x27;s bad repuation. Then the tangent about &quot;OMG, you mean I have to type an exclamation point!?&quot; is telling, though. At this point in a gentle introduction, you probably shouldn&#x27;t be already alluding to the trash talking about the language.<p>We aren&#x27;t even past the first example. Further down the page, there&#x27;s some big talk about how Rust favors explicitness, immediately followed by a discussion of how all the types are implicit and how confusing that can be. No mention of how you would remember that `f64` is the default floating point type...<p>This is a worthy attempt and probably a good first draft. It&#x27;s definitely a document that needs to exist, but in its current state, it&#x27;s an gentle intro that only a disaffected C++ programmer could love. But please keep working on it--I need something like this.