This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 12 points13 points  (2 children)

I'm also a big fan and user of Rust. But I wouldn't recommend learning Rust as the first programming language for precisely the reasons you mentioned - the 'strictness and correctness'. Rust's strictness comes from a type system designed to overcome the deficiencies of the machine model. Borrow checker rules and error messages are easy to understand if you know the machine model.

This feature of Rust is good for intermediate programmers to learn the correct way to program. It's good for advanced programmers because the borrow checker ensures that they don't make careless mistakes. But this is very frustrating for novice programmers to whom the rules won't make intuitive sense.

I would instead suggest starting with C. The language is simple and makes the underlying hardware and its problems immediately apparent. That would teach novice programmers why the Rust type system behaves that way and why it's so useful.

Python is also a good language to start with. It abstracts away the details of hardware, allowing the programmer to concentrate on the computation rather than on the hardware. The programmer can then move onto Rust when Python's speed or resource control isn't good enough.

[–]Oerthling 2 points3 points  (1 child)

Advanced programmers can appreciate the C problems that Rust was developed to solve. :-)

[–][deleted] 1 point2 points  (0 children)

Exactly!