Est-ce que le rust est mieux que le c pour éviter de faire des bêtises ? Oui. Mais justement un des intérêts de faire du c c'est de comprendre pourquoi ce sont des bêtises, les mécanismes fondamentaux et quand faire attention. Si rust a un mot clé "unsafe", c'est bien parceque parfois on a besoin de traverser en dehors des clous. Apprendre à coder en C c'est comme apprendre à un enfant pourquoi on traverse au bonhomme vert plutôt que de simplement lui dire "c'est interdit de traverser au rouge". Le jour où le feu sera en panne, il pourra toujours traverser par lui même...
À prendre avec de grosses pincettes parce que la sémantique de Rust est beaucoup plus restrictive que celle du C, et du coup, il y a des choses que tu peux très bien faire en C et qui sont interdites en Rust, et si tu les fais en Rust unsafe, ton programme a de l'undefined behavior, alors que ce ne serait pas le cas du programme équivalent en C.
De manière générale, je ne suis pas vraiment d'accord avec le « tu pourras facilement apprendre Rust si tu connais le C » car c'est un langage avec de vrais concepts nouveaux ou importés du monde fonctionnel (lifetimes, borrow checking, mutabilité intérieure, traits, generalized bounds, etc.), mais c'est sûr que l'expérience en C ou tout autre langage de bas niveau va aider largement.
[^] # Re: Le c restera toujours le c
Posté par jeanas (site web personnel, Mastodon) . En réponse au message technos cloud, rust.. Quid d'apprendre le C aujourd'hui?. Évalué à 4.
À prendre avec de grosses pincettes parce que la sémantique de Rust est beaucoup plus restrictive que celle du C, et du coup, il y a des choses que tu peux très bien faire en C et qui sont interdites en Rust, et si tu les fais en Rust unsafe, ton programme a de l'undefined behavior, alors que ce ne serait pas le cas du programme équivalent en C.
Quelques exemples typiques ici : https://lucumr.pocoo.org/2022/1/30/unsafe-rust/. Et ce qu'on a le droit ou non de faire avec les pointeurs est subtil et en cours d'évolution, cf. par exemple https://www.ralfj.de/blog/2023/06/02/tree-borrows.html.
De manière générale, je ne suis pas vraiment d'accord avec le « tu pourras facilement apprendre Rust si tu connais le C » car c'est un langage avec de vrais concepts nouveaux ou importés du monde fonctionnel (lifetimes, borrow checking, mutabilité intérieure, traits, generalized bounds, etc.), mais c'est sûr que l'expérience en C ou tout autre langage de bas niveau va aider largement.