1. 6
  1. 2

    I’ve only played with Rust, but I guess I can talk about getting started with it going on that.

    Like the commenter there I was a bit bemused by the statement that Rust isn’t a beginner language. It’s a huge language, but The Rust Programming Language tries to minimize use of unnecessary programmer jargon and to step through topics and examples in detail. You do need to go through the book slowly, even if you are used to picking up new vaguely-C-ish languages quickly. I would rather start off learning Rust than some other systems languages, compiler errors and all.

    I do think a nice editor setup is handy when getting started; I liked VSCode with either the Rust plugin or rust-analyzer (which is newer with neat features like displaying inferred types live, but was slightly glitchy when I tried it). Autocomplete looks up some of those method names and so on that you don’t know yet, and the compiler’s helpful error messages are even more helpful right there in the editor. It’s handy to get used to searching around docs.rs and crates.io, and sometimes play.rust-lang.org can help you resolve confusions about details of the language. Also, users.rust-lang.org seems to be the most used question-and-answer site. Clippy(!) is a linter and seems particularly helpful for getting conventions and idioms down (I admit I didn’t use it much).

    Though Rust folks do amazing work to make the language approachable, it’s still nontrivially more work to write a program when when it has to also contain the raw material for a proof that memory use and concurrency are correct, and when so much detail is made explicit. A question I have about the next years is how much that difficulty is addressed through Rust folks just continuing to chip away at ergonomics bit by bit, or whether more progress happens through some other language finding an intermediate point (see also) that errs towards safe and efficient but isn’t quite zero-overhead, full-control, and explicit like Rust. Obviously we have lots of other workable compromises out there (daily Python user here!), but I think the surprising usefulness of Rust in many domains suggests there is some fertile design space around it.

    1. 1

      I find it funny how in their explanation of Rust not being a beginner language, they have a link to “beginner languages”, which includes Rust. Your own source contradicting yourself? That’s pretty damn amateurish.